trainNetwork 関数で学習させると、メモリ不足のエラーが出るのはなぜですか?
11 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2019 年 8 月 27 日
編集済み: MathWorks Support Team
2024 年 4 月 23 日
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
2024 年 4 月 23 日
編集済み: MathWorks Support Team
2024 年 4 月 23 日
GPU のメモリサイズが小さいことが予想されます。
trainNetwork 利用時にGPU のメモリを増やす代わりに、MiniBatchSizeオプションの値を調整することをご検討ください。
この値を小さくするとメモリの消費を小さくすることができます (性能も変わります)。
GPU のメモリを増やす以外の方法として、trainNetworkの関数を呼び出す際、'MiniBatchSize' オプションの値を調整することをご検討ください。
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Parallel and Cloud についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!