ニューラルネットワークの関数には、計算途中で結果を保存しておける '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
以下のドキュメントも参考にしてください。