trainNetwork 関数で学習させると、​メモリ不足のエラーが​出るのはなぜですか?

22 次查看(过去 30 天)
trainNetwork 関数を用いて CNN(深層ニューラルネットワーク)による学習をさせると、以下のエラーが発生します。
ERROR: エラー: nnet.internal.cnngpu.convolveForward2D
デバイスのメモリが足りません。GPU で利用可能なメモリの詳細を表示するには、'gpuDevice()' を使用します。問題が解決しない場合は、'gpuDevice(1)' を呼び出して GPU をリセットしてくださ
い。
ERROR: エラー: nnet.internal.cnn.layer.FullyConnected/forward (line 73)
Z = nnet.internal.cnngpu.convolveForward2D(...
エラー: nnet.internal.cnn.SeriesNetwork/forwardPropagation (line 133)
[layerOutputs{currentLayer}, memory{currentLayer}] = this.Layers{currentLayer}.forward( layerOutputs{currentLayer-1} );
エラー: nnet.internal.cnn.SeriesNetwork/gradients (line 73)
[layerOutputs, memory] = this.forwardPropagation(data);
エラー: nnet.internal.cnn.Trainer/train (line 58)
[gradients, miniBatchLoss, miniBatchAccuracy] = net.gradients(X, Y);
エラー: trainNetwork (line 92)
trainedNet = trainer.train(trainedNet, dispatcher);
エラー: samp (line 26)
net = trainNetwork(XTrain,TTrain,layers,opts);

采纳的回答

MathWorks Support Team
MathWorks Support Team 2024-4-23,0:00
编辑:MathWorks Support Team 2024-4-23,0:50
GPU のメモリサイズが小さいことが予想されます。
trainNetwork 利用時にGPU のメモリを増やす代わりに、MiniBatchSizeオプションの値を調整することをご検討ください。
この値を小さくするとメモリの消費を小さくすることができます (性能も変わります)。
GPU のメモリを増やす以外の方法として、trainNetworkの関数を呼び出す際、'MiniBatchSize' オプションの値を調整することをご検討ください。

更多回答(0 个)

标签

尚未输入任何标签。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!