ニューラル ネットワークを正確かつ効率的に構築する能力は、ディープラーニング エンジニアの採用担当者が最も求めるスキルの 1 つです。 PyTorch は、主にディープラーニングに使用される Python ライブラリです。 PyTorch の最も基本的で重要な部分の 1 つは、数値、ベクトル、行列、または任意の n 次元配列であるテンソルを作成することです。ニューラル ネットワークを構築する際の計算速度を下げるには、明示的なループの使用を避ける必要があります。このようなループを回避するには、ベクトル化された操作を使用できます。ニューラル ネットワークを構築する場合、行列演算を十分速く計算する能力が重要です。 「NumPy ライブラリを使わないのはなぜですか?」ディープラーニングでは、モデルパラメータの導関数を計算する必要があります。 PyTorch はバックプロパゲーション中に導関数を追跡する機能を提供しますが、NumPy にはこの機能がありません。これは PyTorch では「Auto Grad」と呼ばれます。 PyTorch は、GPU を使用した高速実行のための組み込みサポートを提供します。これはモデルのトレーニングにおいて非常に重要です。 Numpy には計算を GPU にオフロードする機能がないため、モデルのトレーニングにかかる時間が非常に長くなってしまいます。 PyTorch を使用したすべてのディープラーニング プロジェクトは、テンソルの作成から始まります。ニューラル ネットワークの構築を含むあらゆるディープラーニング プロジェクトのバックボーンとなる、知っておくべき機能をいくつか見てみましょう。
Pytorch をインストールしたら、コードに直接インポートできます。
トーチ.テンソル()まず、テンソルの型、テンソルの次元、テンソルの内容など、テンソル x のさまざまなプロパティを要約するヘルパー関数 describe(x) を定義します。
torch.Tensor を使用して PyTorch でテンソルを作成する PyTorch では、torch パッケージを使用してさまざまな方法でテンソルを作成できます。 テンソルを作成する1つの方法は、次元を指定してランダムテンソルを初期化することです。
Python リストを使用して宣言的にテンソルを作成する Python リストを使用してテンソルを作成することもできます。 リストを関数の引数として渡すだけで、テンソル形式が得られます。
NumPy 配列を使用してテンソルを作成する NumPy 配列から PyTorch テンソルを作成することもできます。 テンソルの型は、デフォルトの Float Tensor ではなく Double Tensor です。 これは、以下に示すように、NumPy データ型 float64 に対応します。
テンソルでできないことは何でしょうか? テンソルは実数または複素数である必要があり、文字列や文字であってはなりません。
torch.tensor() はテンソルであるため、文字通りあらゆる PyTorch プロジェクトの中核を形成します。 トーチ.合計()この関数は、入力テンソル内のすべての要素の合計を返します。
NumPy に精通している場合は、2D テンソルの場合、行を次元 0、列を次元 1 として表すことに気付いたかもしれません。 torch.sum() 関数を使用すると、行と列の合計を計算できます。 また、結果の次元を保持するために、keepdims に True を渡します。 dim = 1 を定義することで、関数に配列を列ごとに折りたたむように指示します。
この関数は、メトリックと損失関数の計算に非常に役立ちます。 トーチ.index_select()この関数は、indices のエントリを使用して次元 dim に沿って入力テンソルをインデックス付けする新しいテンソル (LongTensor) を返します。
インデックスをテンソルとして渡し、軸を 1 と定義できます。この関数は、サイズが rows_of_original_tensor x length_of_indices_tensor の新しいテンソルを返します。
インデックスをテンソルとして渡し、軸を0と定義すると、関数はサイズが columns_of_original_tensor x length_of_indices_tensor の新しいテンソル。
この関数は、テンソルの非連続インデックスなどの複雑なインデックス作成に役立ちます。 トーチ.スタック()これにより、新しい次元に沿ってテンソルのシーケンスが連結されます。
連結したいテンソルを dim 0 のテンソルのリストとして渡し、行に沿って積み重ねることができます。
連結したいテンソルを、dim が 1 のテンソルのリストとして渡し、列に沿って積み重ねることができます。
この関数は、行列を平坦化するために torch.index_select() と組み合わせて使用すると便利です。 トーチ.mm()この関数は行列間の乗算を実行します。
行列を引数として渡すだけで簡単に行列乗算を実行でき、関数は 2 つの行列の積として新しいテンソルを生成します。
上記の例では、NumPy 配列を定義し、それを float32 テンソルに変換しました。 これで、テンソルの行列乗算を正常に実行できるようになりました。 操作が成功するには、2 つのテンソルのデータ型が一致している必要があります。
行列の乗算演算を正常に実行するには、行列 1 の列と行列 2 の行が一致している必要があります。 torch.mm() 関数は行列乗算の基本的な規則に従います。 行列が同じ順序であっても、別の行列の転置と自動的に乗算されるわけではないので、ユーザーが手動で定義する必要があります。 バックプロパゲーション中に導関数を計算するには、行列の乗算を効率的に実行できる必要があります。ここで torch.mm() が役立ちます。 要約するこれで、5 つの基本的な PyTorch 関数の学習は終了です。 基本的なテンソルの作成から、torch.index_select() のような特定のユースケースを持つ高度であまり知られていない関数まで、PyTorch はデータ サイエンス愛好家の作業を容易にする多くの関数を提供します。 |
[[418112]]テスラは月曜日に駐車中の緊急車両との一連の衝突事故が発生した後、オートパイロット...
人工知能は、大企業が従業員を管理する方法に大きな影響を与えています。 [[360624]]世界経済は...
パンデミックの影響で、医療業界は世界中で医師、看護師、その他の医療スタッフの深刻な不足に直面していま...
固定小数点アルゴリズムを開発する場合、設計機能、数値的に正確なモデリング、検証 (シミュレーション)...
[51CTO.com からのオリジナル記事] 画像学習は高度なアルゴリズムであり、画像への高い適応...
著者 | 宋涛、尚賢、小斌 他アプリガイダンスは端末上でのマインドセット構築の重要な手段です。私たち...
CNN というと、最初は特定のテレビ局を思い浮かべる人が多かったのですが、数年後にはディープラーニン...
10月17日のニュースによると、人工知能はプログラマーのプログラミング速度を上げ、ドライバーの安全...
人工知能に必要な条件:ディープラーニングモデル、ビッグデータ、計算能力著者: マイケル・チャン201...
スマートホーム セキュリティに関しては、テクノロジーは最先端技術を駆使し、住宅の保護方法に革命をもた...
出会いは幻想的で、窓の外はまた夜明けだった。弦楽器の音とかすかな笑顔をいつも思い出すが、世の中に花が...
エネルギーの状況は劇的な変化を迎えようとしており、今は機械学習と電力網を組み合わせる絶好の機会です。...