ニューラルネットワークの学習を途中保存する方法はありますか?
9 views (last 30 days)
Show older comments
MathWorks Support Team
on 18 Apr 2018
Edited: MathWorks Support Team
on 27 Sep 2021
ニューラルネットワークやディープラーニングの学習の途中経過を保存して一度停止し途中から再開するにはどうすればよいでしょうか。
Accepted Answer
MathWorks Support Team
on 18 Aug 2021
Edited: MathWorks Support Team
on 27 Sep 2021
ニューラルネットワークの関数には、計算途中で結果を保存しておける 'CheckpointFile' オプションがあります。このオプションについては、浅層のニューラルネットワーク、深層ネットワーク両方にあります。
Shallow Network の場合、train 関数のオプションで以下のように保存場所と一緒に定義します。
net2 = train(net,x,t,'CheckpointFile','MyCheckpoint.mat');
また、保存の頻度は通常60秒に1回、それより短い場合は学習開始時と終了時に1 回ずつ保存されますが、保存の頻度を変更することも可能です。例えば以下の例では10秒ごとにチェックポイントを設けるために 'CheckpointDelay' オプションで10と指定しています。
net2 = train(net,X,T,Xi,Ai,'CheckpointFile','MyCheckpoint.mat','CheckpointDelay',10);
Deep network の場合、trainingOptions 関数の 'CheckpointPath' オプションで保存場所を指定します。
options = trainingOptions('sgdm','CheckpointPath','C:\Temp\cnncheckpoint');
オプションを指定後、trainNetwork を実行すると、学習結果がエポックごとに convnet_checkpoint__351__2016_11_09__12_04_23.mat のようなmatファイルとして保存されます。保存された mat ファイル名には、チェックポイント保存時の反復回数とタイムスタンプが含まれています。
CNN (trainNetwork 関数) の場合には、デフォルトでは変数 net に保存されます。RCNN系 (trainRCNNObject / trainFastRCNNObject / trainFasterRCNNObject 関数) の場合には、変数 detector に学習途中のネットワークが保存されます。
この mat ファイルを読み込んで学習を再開するには、通常の mat ファイル同様、load 関数を使用します。
load convnet_checkpoint__351__2016_11_09__12_04_23.mat
以下のドキュメントも参考にしてください。
0 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!