主要内容

监控深度学习训练进展

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

当你指定“训练进步”随着“阴谋”价值培训选项并开始网络培训,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 28 1])卷积2dlayer(3,8,“填充”'相同的')BatchnormalizationLayer Ruilulayer MaxPooling2dlayer(2,“步”,2)卷积2dlayer(3,16,“填充”'相同的')BatchnormalizationLayer Ruilulayer MaxPooling2dlayer(2,“步”32岁的,2)convolution2dLayer (3“填充”'相同的')BatchnormalizationLayer Rublayer全连接列(10)SoftmaxLayer分类层];

指定网络训练选项。要在训练期间定期验证网络,请指定验证数据。选择'验证职业'值以使网络每单时期验证一次。在培训期间绘制培训进展,指定“训练进步”随着“阴谋”价值。

选项=培训选项(“个”...“MaxEpochs”8...'vightationdata',{xvalidation,yvalidation},...'验证职业',30,...“详细”,错误的,...“阴谋”“训练进步”);

培训网络。

net = trainnetwork(xtrain,ytrain,图层,选项);

图培训进度(01-SEP-2021 08:34:02)包含2个轴对象和类型yougrivlayout的另一个对象。轴对象1包含15个类型的修补程序,文本,行。轴对象2包含15个类型的补丁,文本,行的对象。

另请参阅

|

相关话题