このブログでは、「」の使い方について説明します。 トーチ.no_grad PyTorch の「メソッド」。
PyTorch の「torch.no_grad」メソッドとは何ですか?
” トーチ.no_grad 」メソッドは、PyTorch 開発フレームワーク内のコンテキストの管理に使用されます。その目的は、深層学習モデルの後続の層間の接続のための勾配の計算を停止することです。この方法の有用性は、特定のモデルで勾配が必要ない場合に、勾配を無効にして、モデルのトレーニング ループの処理により多くのハードウェア リソースを割り当てることができることです。
PyTorch で「torch.no_grad」メソッドを使用する方法?
勾配は、PyTorch のバックワード パス内で計算されます。デフォルトでは、PyTorch ではすべての機械学習モデルに対して自動微分が有効になっています。勾配計算の非アクティブ化は、十分なハードウェア処理リソースがない開発者にとって不可欠です。
「」の使用方法については、以下の手順に従ってください。 トーチ.no_grad 」メソッドを使用して、PyTorch での勾配の計算を無効にします。
ステップ 1: Colab IDE を起動する
Google Colaboratory は、専用 GPU を備えているため、PyTorch フレームワークを使用したプロジェクト開発のためのプラットフォームとして最適です。コラボに行く Webサイト そして「」を開きます 新しいノートブック 」に示すように:
ステップ2:Torchライブラリをインストールしてインポートする
PyTorch のすべての機能は「」によってカプセル化されています。 松明 ' 図書館。作業を開始する前に、そのインストールとインポートが不可欠です。 ” !ピップ Python のインストール パッケージはライブラリのインストールに使用され、「」を使用してプロジェクトにインポートされます。 輸入 ' 指示:
!pip インストールトーチ輸入トーチ
ステップ 3: 勾配を使用して PyTorch Tensor を定義する
「」を使用して PyTorch テンソルをプロジェクトに追加します。 torch.tensor() ' 方法。次に、「」を使用して有効なグラデーションを与えます。 Required_grad=True 」メソッドを次のコードに示します。
A = torch.tensor([5.0]、requires_grad=True)
ステップ 4: 「torch.no_grad」メソッドを使用してグラデーションを削除する
次に、「」を使用して、以前に定義したテンソルから勾配を削除します。 トーチ.no_grad ' 方法:
torch.no_grad() を使用:B = A**2 + 16
上記のコードは次のように動作します。
- ” no_grad() ” メソッドが” 内で使用されています と 』のループ。
- ループ内に含まれるすべてのテンソルの勾配が削除されます。
- 最後に、以前に定義したテンソルを使用してサンプル算術計算を定義し、それを「 B ” 変数を上に示します。
ステップ 5: グラデーションの除去を確認する
最後のステップは、何が行われたかを確認することです。テンソルからの勾配「 あ 」は削除されたため、「」を使用して出力でチェックする必要があります。 プリント() ' 方法:
print('torch.no_gradによる勾配計算: ', A.grad)print('\n元のテンソル: ', A)
print('\n算術計算の例: ', B)
上記のコードは次のように動作します。
- ” 卒業生 「このメソッドはテンソルの勾配を与えます」 あ ”。 「」を使用してグラデーションが削除されているため、以下の出力には何も表示されません。 トーチ.no_grad ' 方法。
- 元のテンソルは、「」からわかるように、勾配があることを示しています。 Required_grad=True ” ステートメントが出力に含まれます。
- 最後に、算術計算のサンプルは、前に定義した方程式の結果を示しています。
注記 : ここから Colab ノートブックにアクセスできます リンク 。
プロのヒント
” トーチ.no_grad 」方法は、勾配が必要ない場合、またはハードウェアの処理負荷を軽減する必要がある場合に最適です。モデルは新しいデータに基づいて予測を行うためにのみ使用されるため、このメソッドのもう 1 つの用途は推論時です。トレーニングが関与していないため、単に勾配の計算を無効にすることは完全に理にかなっています。
成功! 「torch.no_grad」メソッドを使用して PyTorch のグラデーションを無効にする方法を説明しました。
結論
使用 ' トーチ.no_grad ” メソッドを PyTorch 内で定義します。 と ” ループとその中に含まれるすべてのテンソルの勾配が削除されます。これにより、処理速度が向上し、トレーニング ループ内での勾配の蓄積が防止されます。このブログでは、これがどのように行われるかを紹介しました。 トーチ.no_grad 」メソッドを使用して、PyTorch で選択したテンソルの勾配を無効にすることができます。