このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
この例では,深層学習ネットワークの学習時にチェックポイントネットワークを保存する方法と以前に保存したネットワークから学習を再開する方法を説明します。
標本データを4次元配列として読み込みます。digitTrain4DArrayData
は数字の学習セットを4次元配列データとして読み込みます。XTrain
は28 28 x 5000 xの配列で,28はイメージの高さ,28は幅です。1はチャネルの数で,5000は手書きの数字の合成イメージの数です。YTrain
は各観測値のラベルを含む直言ベクトルです。
[XTrain, YTrain] = digitTrain4DArrayData;大小(XTrain)
ans =1×428 28 1 5000
XTrain
のイメージをいくつか表示します。
图;烫= randperm(大小(XTrain, 4), 20);为I = 1:20 subplot(4,5, I);imshow (XTrain(:,:,:,烫(我)));结束
ニューラルネットワークアーキテクチャを定義します。
layers = [imageInputLayer([28 28 1])]“填充”,“相同”maxPooling2dLayer(2,“步”2) convolution2dLayer(16日“填充”,“相同”maxPooling2dLayer(2,“步”32岁的,2)convolution2dLayer (3“填充”,“相同”) batchNormalizationLayer relullayer averageepooling2dlayer (7) fulllyconnectedlayer (10) softmaxLayer classificationLayer];
モーメンタム項付き確率的勾配降下法(个)の学習オプションを指定し,チェックポイントネットワークを保存するためのパスを指定します。
checkpointPath = pwd;选择= trainingOptions (“个”,...“InitialLearnRate”, 0.1,...“MaxEpochs”, 20岁,...“详细”假的,...“阴谋”,“训练进步”,...“洗牌”,“every-epoch”,...“CheckpointPath”, checkpointPath);
ネットワークに学習させます。trainNetwork
は,利用可能なものがある場合はGPUを使用します。利用可能なGPUがない場合,CPUを使用します。trainNetwork
は,エポックごとに1つのチェックポイントネットワークを保存し,チェックポイントファイルに一意の名前を自動的に割り当てます。
net1 = trainNetwork (XTrain、YTrain层,选择);
学習が中断され,完了しなかったとします。学習を最初からやり直すのではなく,最後のチェックポイントネットワークを読み込んで,その時点から学習を再開できます。trainNetwork
は,net_checkpoint__195__2018_07_13__11_59_10.mat
の形式のファイル名でチェックポイントファイルを保存します。195年ここでは反復回数,2018年_07_13
はtrainNetwork
がネットワークを保存した日付,11 _59_10
はその時刻です。チェックポイントネットワークの変数名は净
です。
チェックポイントネットワークをワークスペースに読み込みます。
负载(“net_checkpoint__195__2018_07_13__11_59_10.mat”,“净”)
学習オプションを指定して,エポックの最大回数を減らします。初期学習率などのその他の学習オプションも調整できます。
选择= trainingOptions (“个”,...“InitialLearnRate”, 0.1,...“MaxEpochs”15岁的...“详细”假的,...“阴谋”,“训练进步”,...“洗牌”,“every-epoch”,...“CheckpointPath”, checkpointPath);
新しい学習オプションで読み込んだチェックポイントネットワークの層を使用して,学習を再開します。チェックポイントネットワークがDAGネットワークの場合,网。层
の代わりにlayerGraph(净)
を引数として使用します。
net2 = trainNetwork (XTrain YTrain、net.Layers选项);