動的計算グラフと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+教育はさまざまなシナリオに適用されていることをご存知ですか?

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

人工知能を使用して自動化されたデータセンターを構築する方法

現在、人工知能 (AI) に関する議論のほとんどは、自動運転車、チャットボット、デジタル ツイン、ロ...

...

AI支援ツールを使用してソフトウェア要件を定義する

Userdoc は、ソフトウェア要件ド​​キュメントの作成を支援する AI 支援サービスです。最近の...

マイクロソフトがAIコンテンツレビューツール「Azure AI Content Safety」を正式にリリース

10月18日、マイクロソフトは健全で調和のとれたコミュニティ環境を作り、写真やテキスト内の偏見、憎悪...

考えてみましょう: なぜ AI が必要ないのでしょうか?

[[270404]] [51CTO.com クイック翻訳] 人工知能(AI)は今ホットな話題であり...

現在世界で最も重要な古典的アルゴリズムトップ10

今日の世界では、数え切れないほどの古典的なアルゴリズムが発見または作成されてきました。最も価値あるア...

...

基礎知識がない人でも機械学習に切り替えることは可能ですか?

基礎知識がない人でも機械学習に切り替えることは可能ですか?機械学習には一定の数学的基礎が必要であり、...

...

人工知能は今後10年間で世界の成長を12%押し上げるだろう

[[206942]]国内外の権威ある20の機関のEconomic Information Daily...

...

AIは人間の雇用を脅かすものではなく、成長と革新の触媒である

何十年もの間、ニュースの見出しやSF小説では、トラック運転手やショッピングモールの警備員から芸術家や...

...

MetaのAIディレクターは、AIスーパーインテリジェンスがすぐに実現するとは考えておらず、量子コンピューティングにも懐疑的だ。

メタの主任科学者であり、ディープラーニングの先駆者であるヤン・ルカン氏は、現在のAIシステムが、山の...