主要内容

监测深度学习培训进度

当您培训深度学习网络时,监控培训进度通常有用。通过在培训期间绘制各种指标,您可以了解培训是如何进展的。例如,您可以确定网络精度是否改进的速度,以及网络是否开始过度使用培训数据。

当您指定时'培训 - 进步'作为'plots'价值培训选项并开始网络培训,Trainnetwork.创建一个数字并在每次迭代时显示培训指标。每次迭代是对梯度的估计和网络参数的更新。如果指定验证数据培训选项,然后该图显示每次的验证度量Trainnetwork.验证网络。图绘制以下内容:

  • 训练准确性- 每个单独的百分比对分类准确性。

  • 平滑训练准确性- 平滑训练精度,通过将平滑算法应用于训练准确性而获得。它比不平衡的准确性少噪声,使得现货趋势更容易。

  • 验证准确性- 整个验证集的分类准确性(指定使用培训选项)。

  • 训练损失平滑训练损失, 和验证损失-每个迷你批处理,其平滑版本和验证集的损失分别丢失。如果您的网络的最终层是一个分类层,然后损失函数是交叉熵损失。有关分类和回归问题的丢失函数的更多信息,请参阅输出层

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

图标记了每次培训时代使用阴影背景。epoch是完整的通过整个数据集。

在培训期间,您可以通过单击右上角的停止按钮来停止培训并返回网络的当前状态。例如,当网络的准确性到达高原时,您可能希望停止培训,并且很明显,准确性不再改善。单击“停止”按钮后,可能需要一段时间才能完成培训。一旦培训完成,Trainnetwork.返回培训的网络。

培训结束时,查看结果显示最终的验证准确性以及培训完成的原因。最终的验证度量标准标记为最终的在地块中。如果您的网络包含批量归一化层,则最终验证度量可以与培训期间评估的验证度量不同。这是因为在训练完成后,用于批量标准化的平均值和方差统计数据可以不同。例如,如果'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,'走吧',2)卷积2dlayer(3,32,'填充''相同的')BatchnormalizationLayer Rublayer全连接列(10)SoftMaxLayer分类层];

指定网络培训选项。要在培训期间定期验证网络,请指定验证数据。选择'验证职业'值以使网络每单时期约一次验证。在培训期间绘制培训进展,指定'培训 - 进步'作为'plots'价值。

选项=培训选项('sgdm'......'maxepochs',8,......'vightationdata',{xvalidation,yvalidation},......'验证职业',30,......'verbose',错误的,......'plots''培训 - 进步');

训练网络。

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

也可以看看

|

相关话题