ニューラル ネットワークを正確かつ効率的に構築する能力は、ディープラーニング エンジニアの採用担当者が最も求めるスキルの 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 はデータ サイエンス愛好家の作業を容易にする多くの関数を提供します。 |
大規模モデルの時代における言語モデル (LLM) は、サイズが大きくなるだけでなく、トレーニング デ...
こんにちは世界!プログラマーが初めて新しいプログラミング言語に触れるとき、その言語が世に登場したこと...
[[205570]]深層線形ネットワーク (浮動小数点演算を使用して実装) は実際には線形ではなく、...
[[188736]]アルゴリズム1: クイックソートアルゴリズムクイックソートは、Tony Hal...
[[419606]]昨年、アメリカ人のカップル(スティーブン・フランクとアンドレア・フランク)が、...
データ共有は依然として課題ですが、多くの組織はすでに AI の力をサプライ チェーン管理の 2 つの...
MITコンピュータ科学・人工知能研究所(MIT CSAIL)は3月3日、現段階では人間はAIに仕事を...
インテリジェントな都市変革の活発なトレンドの中で、AI を使用して交通渋滞を管理することは、誰もが多...
[[266831]]臨床医は世界で最も困難な仕事の一つです。彼らは、高齢の患者層に対応するために24...
約1週間の不安が去った後、国内のiOSアプリ開発者はようやく落ち着くことができた。中国におけるApp...
ソフトバンクによる英国の半導体事業アームのエヌビディアへの660億ドルでの売却計画は、米国、英国、欧...
2018年12月8日、中国国家管弦楽団コンサートホールで、中国工業情報化出版メディアグループが主催し...