動的計算グラフとGPU対応操作

動的計算グラフとGPU対応操作

[[409431]]

動的計算グラフ

ディープラーニングに PyTorch を使用する主な理由の 1 つは、定義した関数の勾配/導関数を自動的に取得できることです。

入力を操作すると、計算グラフが自動的に作成されます。この図は、動的な計算プロセスが入力から出力までどのように進行するかを示しています。

計算グラフの概念を理解するために、次の関数のグラフを作成します。

ここにパラメータがあり、出力を最適化(最大化または最小化)したいと考えています。これを行うには、勾配を取得する必要があります。

次のコードでは、[1,2,3]を入力として使用します。

  1. # 浮動小数点テンソルのみが勾配を持つ
  2. x = torch.arange(1,4, dtype=torch.float32, requires_grad= True )
  3. print( "X" 、x)
  4.  
  5. # X テンソル([1., 2., 3.], requires_grad= True )

ここで、計算グラフを段階的に構築し、各操作が計算グラフにどのように追加されるかを理解しましょう。

  1. a = x + 2
  2. b = a ** 2
  3. c = b + 3
  4. y = c.mean()
  5. 印刷( "Y" , y)
  6. # Yテンソル(19.6667, grad_fn=<MeanBackward0>)

上記のステートメントを使用して、次のような計算グラフを作成します (Tensorboard で表示)。

入力 x と定数 2 に基づいて a を計算し、b は a の 2 乗、などとなります。計算グラフは、多くの場合、逆方向に視覚化されます (矢印は結果から入力を指します)。

最後の出力で backward() 関数を呼び出すことで、計算グラフでバックプロパゲーションを実行できます。この関数は、属性 requires_grad=True を持つ各テンソルの勾配を計算します。

  1. y.後方()

最後に、x.grad を印刷して対応するグラデーションを表示します。

GPUサポート操作

Pytorch では、GPU は数千の小さな操作を並行して実行できるため、ニューラル ネットワークで大規模な行列演算を実行するのに最適です。

「CPUとGPUの違い」

PyTorch は GPU を使用するため、NVIDIA の CUDA と cuDNN をインストールする必要があります。

次のコードは、GPU が使用可能かどうかを確認します。

  1. gpu_avail = torch.cuda.is_available()
  2. print( "GPUは利用可能ですか? %s" % str(gpu_avail))

次に、テンソルを作成し、それを GPU デバイスにプッシュします。

  1. デバイス = torch.device( "cuda" ) torch.cuda.is_available() の場合、そうでない場合はtorch.device( "cpu" )
  2. print( "デバイス" , デバイス)
  3. x = x.to (デバイス)
  4. print( "X" 、x)
  5.  
  6. # デバイスcuda
  7. # X テンソル([1., 1., 1.], デバイス= 'cuda:0' )

cuda の横のゼロは、これがコンピューター上の 0 番目の GPU デバイスであることを示します。したがって、PyTorch はマルチ GPU システムもサポートします。

以下は、CPU での大規模な行列乗算の実行時間と GPU での操作の比較です。

システムの構成に応じて、GPU アクセラレーションによりモデルのトレーニング速度が向上します。

<<:  市場規模は100億を超え、マシンビジョンはブルーオーシャンの傾向を示す

>>:  AI+教育はさまざまなシナリオに適用されていることをご存知ですか?

ブログ    

推薦する

データ分析 VS アルゴリズムモデル、どのように作業を分割し、効率的に連携するか?

[[438791]]この記事はWeChat公式アカウント「地道学院」から転載したもので、著者は地道...

Python か Java か? 2020年、優秀なプログラマーが習得すべき7つのプログラミング言語

どのプログラミング言語が最適ですか?この質問には答えがないかもしれません。人によって好みは異なります...

顔認識がコミュニティに登場: 「顔スキャン」の背後にあるプライバシーとセキュリティの問題

李静さん(仮名)は、団地内の自分のアパートのドアを開けることができなくなった。ドアには「顔認識」装置...

興味深い質問です。2025年までに自動運転車が普及したとしても、運転免許証を取得する必要はあるのでしょうか?

以前にも似たような質問に回答したことがありますが、コメント欄には大きな意見の相違があります。自動運転...

GNN初心者必読! Google Research が、SOTA グラフ ニューラル ネットワークをゼロから構築する方法を教えます

[[422426]]近年、ニューラル ネットワークは自然言語、画像、音声、その他のデータで大きな進歩...

機械学習による建物のエネルギー効率の向上

エネルギー効率などの複雑な建物の問題を、人間の介入なしに解決するにはどうすればよいでしょうか。建物の...

...

...

データサイエンスと人工知能はヘルスケア業界をどのように変えるのでしょうか?

データサイエンス、機械学習、人工知能は、ヘルスケア業界に大きな変革をもたらす可能性があります。このイ...

ハンズフリーロボットがゴミ分別の問題解決に役立つ

地球は私たちの共通の家であり、地球環境を保護するために私たちは協力しなければなりません。したがって、...

...

...

...

Microsoft が Copilot の統合バージョンをリリース、Windows、Edge、その他のプラットフォームにも近日登場

マイクロソフトは米国現地時間9月22日木曜日、人工知能アシスタント「コパイロット」の最新バージョンを...