主要内容

监控深度学习训练进展

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

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

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

  • 平滑的训练精度—平滑训练精度,将平滑算法应用到训练精度上获得。与不平滑的精度相比,它的噪声更小,因此更容易发现趋势。

  • 验证精度-整个验证集的分类精度(使用培训选项).

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

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

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

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

当训练结束时,查看后果显示最终确认的准确性和培训结束的原因。如果“OutputNetwork”训练选项设置为最后一次迭代的(默认),最终确定的度量与最后的训练迭代相对应。如果“OutputNetwork”训练选项设置为“最佳验证损失”,最终确定的指标对应于验证损失最低的迭代。从中计算最终验证指标的迭代被标记为最终的的情节。

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

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

在培训期间绘制培训进度图

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

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

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

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

层=[imageInputLayer([28 1])卷积层(3,8,“填充”“一样”)batchNormalizationLayer reluLayer MaxPoolig2dLayer(2,“步”,2)卷积2层(3,16,“填充”“一样”)batchNormalizationLayer reluLayer MaxPoolig2dLayer(2,“步”32岁的,2)convolution2dLayer (3“填充”“一样”)batchNormalizationLayer reluLayer fullyConnectedLayer(10)softmaxLayer classificationLayer];

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

选项=培训选项(“个”...“MaxEpochs”8...“验证数据”,{XValidation,YValidation},...“验证频率”,30,...“详细”错误的...“阴谋”“训练进步”);

培训网络。

net=列车网络(XTrain、YTrain、图层、选项);

Figure Training Progress(01-Sep-2021 08:34:02)包含2个轴对象和另一个uigridlayout类型的对象。轴对象1包含15个patch、text、line类型的对象。轴对象2包含15个patch、text、line类型的对象。

另请参阅

|

相关话题