主要内容

从检查点网络恢复培训

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

加载示例数据

将样本数据加载为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

图;烫= randperm(大小(XTrain, 4), 20);我= 1:20子图(4,5,i);imshow(xtrain(::::,perm(i))));结束

定义网络体系结构

定义神经网络架构。

layers = [imageInputLayer([28 28 1])卷积2dlayer (3,8,“填充”,'相同的'maxPooling2dLayer(2,“步”,2)卷积2dlayer(3,16,“填充”,'相同的'maxPooling2dLayer(2,“步”32岁的,2)convolution2dLayer (3“填充”,'相同的')BatchnormalizationLayer Ruilulayer普通Pooling2Dlayer(7)全连接榜(10)SoftmaxLayer分类层];

指定培训选项和火车网络

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

checkpointPath = pwd;选择= trainingOptions (“个”,“InitialLearnRate”, 0.1,“MaxEpochs”, 20岁,“详细”,错误的,“阴谋”,“训练进步”,“洗牌”,'每个时代',“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岁的“详细”,错误的,“阴谋”,“训练进步”,“洗牌”,'每个时代',“CheckpointPath”, checkpointPath);

使用您加载的新培训选项的检查点网络层重新进行培训。如果检查点网络是DAG网络,则使用分层图(网)作为论据而不是net.layers.

net2 = trainNetwork (XTrain YTrain、net.Layers选项);

另请参阅

|

相关的例子

更多关于