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

ブログ    

推薦する

...

AIoT分野におけるセキュリティリスクを知っておく必要があります!

現在、AI医療、スマートホーム、自動運転、スマート取引などの人工知能の発展は、企業のビジネスモデルを...

...

人工知能: Web3 の救世主か破壊者か?

ブロックチェーン技術の発展に伴い、Web3(分散型Webとも呼ばれる)が徐々にWeb2(集中型Web...

赤ちゃんのように学習するディープマインド社の新モデルは、28時間で物理世界のルールを学習します

Deepmind は、直感的な物理学を学習できるモデルを構築し、モデルがなぜこの能力を実現するのか...

世界シミュレーターはAGIの最終成果、12の状況予測です!チーフエキスパートによる1万語の記事がソラのマイルストーンを専門的に解釈

私はここ数日、Sora の技術レポートと Sora のさまざまな技術分析を読んできました。基本的な視...

インタビュアー: 負荷分散アルゴリズムを理解していますか?

前回の記事では、ポーリング、ランダム、最小接続の 3 つの負荷分散アルゴリズムについて説明しました。...

クラウドAI市場は2028年までに2,700億ドルに達すると予想

デジタル時代の到来により前例のない進歩がもたらされ、人工知能(AI)はさまざまな業界でイノベーション...

大型模型のレイアウトは何度も変わります!

ChatGPT の Android バージョンが登場します。 OpenAI は今年 5 月に早くも...

スタンフォード大学: 人工知能に関する 4 年間の学部課程一覧

最近、数年間業界で働いているスタンフォード大学の AI 卒業生が、AI と機械学習のキャリアのために...

...

ChatGPTの背後にある技術的進化を分析する

1. 自然言語理解と言語モデル1.1 自然言語処理自然言語処理 (NLP) は人工知能 (AI) の...

SFが現実になる?偉大な劉慈欣がAI企業に入社

[[411067]]サイエンスフィクションと現実がこれほど近づいたことはかつてありませんでした。 「...

マイクロソフトがML.NET 3.0をリリース、ディープラーニング機能を拡張

11月29日、海外メディアの報道によると、マイクロソフトは最近、機械学習モデルを.NETアプリケーシ...

...