主要内容

监控深度学习训练进度

当你为深度学习训练网络时,监控训练进度通常是有用的。通过在训练期间绘制各种指标,您可以了解训练是如何进行的。例如,您可以确定网络准确性是否以及有多快在提高,以及网络是否开始过度拟合训练数据。

当你指定“训练进步”随着“阴谋”价值trainingOptions并开始网络培训,trainNetwork在每次迭代中创建一个图形并显示训练指标。每次迭代都是对梯度的估计和网络参数的更新。中指定验证数据trainingOptions,然后图中显示了每次的验证指标trainNetwork验证网络。该图描述如下:

  • 训练精度-每个小批量的分类精度。

  • 平滑训练精度-平滑训练精度,通过对训练精度应用平滑算法得到。它比未平滑的精度噪音更小,更容易发现趋势。

  • 验证准确性-整个验证集的分类精度(指定使用trainingOptions).

  • 培训损失平滑训练损失,确认损失- - - - - -分别是每个小批、其平滑版本和验证集上的损失。如果你的网络的最后一层是classificationLayer,则损失函数为交叉熵损失。有关分类和回归问题的损失函数的更多信息,请参见输出层

对于回归网络,该图描绘的是均方根误差(RMSE)而不是精度。

这个数字标志着每一次训练时代使用阴影背景。epoch是对整个数据集的完整遍历。

在训练过程中,单击右上角的停止按钮,可以停止训练并返回网络的当前状态。例如,当网络的准确率达到一个平台期,并且很明显准确率不再提高时,您可能想要停止训练。单击停止按钮后,可能需要一段时间才能完成训练。一旦训练完成,trainNetwork返回经过训练的网络。

训练结束后,查看结果显示最终验证的精度和训练结束的原因。如果“OutputNetwork”培训选项设置为最后一次迭代的(默认),最终的指标对应于最后的训练迭代。如果“OutputNetwork”培训选项设置为“best-validation-loss”,最终的度量标准对应于验证损失最小的迭代。计算最终验证指标的迭代被标记最后在情节中。

如果您的网络包含批处理归一化层,则最终验证指标可能与训练期间评估的验证指标不同。这是因为在训练完成后,用于批量归一化的均值和方差统计值可能不同。例如,如果“BatchNormalizationStatisics”培训选项为“人口”,训练结束后,软件通过再次遍历训练数据完成批量归一化统计,并使用得到的均值和方差。如果“BatchNormalizationStatisics”培训选项为“移动”,然后软件在训练过程中使用运行估计来近似统计数据,并使用统计数据的最新值。

在右侧界面,可查看培训时间和设置信息。要了解有关培训选项的更多信息,请参见参数设置与卷积神经网络训练

训练过程中的进度

培训网络,并在培训过程中绘制培训进度图。

加载训练数据,其中包含5000张数字图像。留出1000个图像用于网络验证。

[XTrain,YTrain] = digitTrain4DArrayData;idx = randperm(size(XTrain,4),1000);XValidation = XTrain(:,:,:,idx);XTrain(:,:,:,idx) = [];YValidation = YTrain(idx);YTrain(idx) = [];

构造网络对数字图像数据进行分类。

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

指定网络培训选项。若要在训练期间定期验证网络,请指定验证数据。选择“ValidationFrequency”值,使网络大约每epoch验证一次。要在培训过程中绘制培训进度,请指定“训练进步”随着“阴谋”价值。

选项= trainingOptions(“个”...“MaxEpochs”8...“ValidationData”{XValidation, YValidation},...“ValidationFrequency”30岁的...“详细”假的,...“阴谋”“训练进步”);

培训网络。

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

图训练进度(01-Sep-2021 08:34:02)包含2个axis对象和另一个类型为uigridlayout的对象。坐标轴对象1包含15个类型为patch、text、line的对象。坐标轴对象2包含15个类型为patch、text、line的对象。

另请参阅

|

相关的话题