主要内容

从Checkpoint Network恢复培训

这个例子展示了如何在训练深度学习网络的同时保存检查点网络,并从先前保存的网络恢复训练。

加载样例数据

将样例数据加载为4-D数组。digitTrain4DArrayData将数字训练集加载为4-D数组数据。XTrain是一个28 × 28 × 1 × 5000数组,其中28是图像的高度,28是图像的宽度。1为通道数,5000为手写数字合成图像数。YTrain是包含每个观察值的标签的分类向量。

[XTrain,YTrain] = digitTrain4DArrayData;大小(XTrain)
ans =1×428 28 1 5000

中显示一些图像XTrain

图;perm = randperm(size(XTrain,4),20);I = 1:20 subplot(4,5, I);imshow (XTrain(:,:,:,烫(我)));结束

定义网络架构

定义神经网络架构。

图层= [imageInputLayer([28 28 1])卷积2dlayer (3,8,“填充”“相同”maxPooling2dLayer(2,“步”2) convolution2dLayer(16日“填充”“相同”maxPooling2dLayer(2,“步”32岁的,2)convolution2dLayer (3“填充”“相同”) batchNormalizationLayer reluLayer averagePooling2dLayer(7) fullyConnectedLayer(10) softmaxLayer classificationLayer];

指定培训选项和培训网络

指定带有动量的随机梯度下降(SGDM)的训练选项,并指定保存检查点网络的路径。

checkpointPath = pwd;选项= trainingOptions(“个”...“InitialLearnRate”, 0.1,...“MaxEpochs”, 20岁,...“详细”假的,...“阴谋”“训练进步”...“洗牌”“every-epoch”...“CheckpointPath”, checkpointPath);

培训网络。trainNetwork如果有GPU可用,则使用GPU。如果没有可用的GPU,则使用CPU。trainNetwork每个纪元保存一个检查点网络,并自动为检查点文件分配唯一名称。

net1 = trainNetwork(XTrain,YTrain,图层,选项);

负载检查点网络和简历培训

假设训练中断并且没有完成。您可以加载最后一个检查点网络,并从该点恢复训练,而不是从头开始重新开始训练。trainNetwork保存带有表单上文件名的检查点文件net_checkpoint__195__2018_07_13__11_59_10.mat,其中195为迭代数,2018年_07_13日期和11 _59_10是时候了trainNetwork拯救了网络。检查点网络有变量名

将检查点网络加载到工作区中。

负载(“net_checkpoint__195__2018_07_13__11_59_10.mat”“净”

指定训练选项并减少最大epoch数。您还可以调整其他训练选项,例如初始学习率。

选项= trainingOptions(“个”...“InitialLearnRate”, 0.1,...“MaxEpochs”15岁的...“详细”假的,...“阴谋”“训练进步”...“洗牌”“every-epoch”...“CheckpointPath”, checkpointPath);

使用新训练选项加载的检查点网络层恢复训练。如果检查点网络是DAG网络,则使用layerGraph(净)作为论点而不是网层

net2 = trainNetwork(XTrain,YTrain,net.Layers,options);

另请参阅

|

相关的例子

更多关于