ニューラル ネットワークを正確かつ効率的に構築する能力は、ディープラーニング エンジニアの採用担当者が最も求めるスキルの 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 はデータ サイエンス愛好家の作業を容易にする多くの関数を提供します。 |
ケンブリッジ大学の「AIパノラマレポート」2020年版がこのほど正式に発表された。ケンブリッジ大学の...
ガートナー曲線について聞いたことがあるかもしれません。新しい技術が初めて導入されたとき、誰も興味を示...
[[435329]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...
翻訳者 |ブガッティレビュー | Chonglou誰もが生成AIと大規模言語モデルの力を活用したいと...
テクノロジーが飛躍的に進歩するにつれ、AI はスピード、スケーラビリティ、品質、柔軟性を求めるあらゆ...
大規模モデルの事前トレーニングには膨大な量のコンピューティング リソースとデータが必要となるため、事...
ChatGPTは来週Android版をリリースすることを公式に発表し、Google Playストアで...
編纂者:Xing Xuan企画 | ヤン・ジェン制作:51CTO テクノロジースタック(WeChat...
人工知能は今年もテクノロジー分野で人気を博し続けています。特に、大規模モデルはソフトウェア開発を含む...
機械学習アプリケーションが増加するにつれて、多くの人が機械学習トレーニング データを使用する利点を理...
ディープラーニングでは、PyTorch と NumPy はデータの処理と変換によく使用される 2 つ...
諺にあるように、人がいるところには川や湖があり、さまざまな立場や利害の争いがあるものです。科学研究の...