複数のGPUでネットを訓練する
訓練時間の削減のために,ニューラルネットをCPUではなくGPUで訓練することができる.Wolfram言語は,さらに訓練速度が上げられるように,(同じマシンからの)複数のGPUを使ったニューラルネットの訓練をサポートするようになった.次の例ではT6-CPUの4-NVIDIA Titan X GPUマシンでの訓練を示す.
CIFAR-10訓練データ集合の部分集合をロードする.
Wolfram Neural Net Repositoryから"Wolfram ImageIdentify Net V1"の構造をロードする.
ネットの訓練速度のCPU前処理のボトルネック推定を避けるために,ネットNetEncoderを使って入力データを前処理する.
不要になったNetEncoderを削除し,ネットヘッドと最終のNetDecoderを置き換えて,両者がデータ集合中のクラスと一致するようにする.
6コアCPUを搭載したマシンで訓練を開始する.
この訓練は1秒間に8例の速度で実行される.
単一のGPU(表示を担当するGPUの使用は勧められないので,4番目のもの)で訓練を開始する.
今回の訓練は1秒間に200例の速度で行われた.
次に,4つすべてのGPUで訓練を開始する.
今回の訓練速度は1秒間に約500例である.
測定された3つの訓練速度を可視化する.