主要内容

TrainingOptionsRMSProp.

RMSProp优化器的培训选项

描述

RMSProp(均方根传播)优化器的训练选项,包括学习率信息,L2正则化因子和迷你批量大小。

创造

创建一个TrainingOptionsRMSProp.对象使用trainingOptions并指定“rmsprop”随着solvername.输入参数。

性质

全部展开

情节和显示

网络训练过程中显示的图,指定为:

  • “没有”- 在培训期间不要显示图。

  • “培训进度”-绘制训练进度图。该图显示了小批量损失和准确性、验证损失和准确性,以及有关培训进度的其他信息。绘图有一个停止按钮在右上角。点击按钮停止训练,返回网络当前状态。

在命令窗口显示训练进度信息的指示符,指定为1真正的)或0).

显示的信息包括历元数、迭代数、经过的时间、小批损失、小批准确性和基础学习率。当你训练一个回归网络时,显示的是均方根误差(RMSE)而不是精度。如果您在训练期间验证网络,那么显示的信息还包括验证损失和验证准确性(或RMSE)。

数据类型:逻辑

详细打印的频率,即在打印到命令窗口之间的迭代次数,指定为正整数。此属性仅在详细的值=真正的

如果在培训期间验证网络,则trainNetwork每次发生验证时都会打印到命令窗口。

小批量选项

用于培训的最大纪元数,指定为正整数。

迭代是梯度下降算法中使用小批量最小化损失函数的一步。epoch是训练算法在整个训练集上的完整通过。

用于每个训练迭代的迷你批处理的大小,指定为正整数。迷你批处理是训练集的子集,用于评估损耗功能的梯度并更新权重。

数据洗牌选项,指定为以下选项之一:

  • “一次”- 在培训之前洗一次培训和验证数据一次。

  • “从来没有”—禁止shuffle数据。

  • “every-epoch”—在每个训练阶段之前洗牌训练数据,在每个网络验证之前洗牌验证数据。如果小批量大小不能均匀地除以训练样本的数量,那么trainNetwork丢弃不适合每个纪元的最终完整小批的训练数据。设置洗牌价值“every-epoch”避免在每个epoch中丢弃相同的数据。

验证

在培训期间用于验证的数据,指定为数据存储,表或包含验证预测器和响应的单元格数组。

您可以使用支持的相同格式指定验证预测器和响应万博1manbetxtrainNetwork功能。可以将验证数据指定为数据存储、表或单元格数组{预测因子,响应}哪里预测包含验证预测值和回应包含验证响应。

有关更多信息,请参见图像序列,特征的输入参数trainNetwork函数。

在培训期间,trainNetwork计算验证数据的验证精度和验证损失。要指定验证频率,请使用“ValidationFrequency”名称-值对的论点。您还可以使用验证数据在验证损失停止减少时自动停止训练。要启用自动验证停止,请使用“验证耐心”名称-值对的论点。

如果网络中的层在预测期间的行为与在培训期间的行为不同(例如,退出层),则验证精度可能高于培训(小批量)精度。

验证数据根据验证数据按照“洗牌”价值如果“洗牌”值=“every-epoch”,然后在每次网络验证之前对验证数据进行洗牌。

以迭代次数表示的网络验证频率,指定为正整数。

ValidationFrequency值是验证度量评估之间的迭代次数。

网络训练的验证停止的耐心,指定为正整数或INF.

“验证耐心”值是在网络训练停止之前,验证集上的损失可以大于或等于先前最小损失的次数。

解算器选项

用于训练的初始学习率,指定为正标量。如果学习率太低,那么培训需要很长时间。如果学习率过高,那么训练就会达到次优结果。

学习率计划的设置,指定为一个结构。LearnRateScheduleSettings有领域方法,它指定用于调整学习速率的方法类型。可能的方法有:

  • “没有”-在整个训练过程中,学习率是恒定的。

  • “分段”-在训练期间,学习率会定期下降。

如果方法“分段”,然后LearnRateScheduleSettings包含两个域:

  • DropRateFactor-训练过程中学习率下降的乘数

  • DropPeriod- 在培训期间调整学习率之间的时期的数量

使用使用的学习计划率指定设置trainingOptions

数据类型:结构体

L系数2正则化器(权重衰减),指定为非负标量。

你可以为L指定一个乘数2具有可学习参数的网络层正则化器。

平方梯度移动平均的衰减率,指定为0到1之间的标量。有关不同解算器的详细信息,请参阅随机梯度下降

偏移量偏移,指定为正标量。求解器在网络参数更新中添加到分母的偏移量,以避免分割零。

选项重置输入层归一化,指定为以下之一:

  • 真正的–重置输入层规范化统计信息,并在培训时重新计算。

  • -当训练时间为空时,计算归一化统计信息。

模式以评估批量归一化层中的统计信息,指定为以下之一:

  • “人口”—使用人口统计。在训练结束后,软件将训练数据再次遍历,并使用得到的平均值和方差来完成统计。

  • “移动”-使用更新步骤给出的运行估计估计训练期间的统计数据

    μ. λ. μ. μ. + 1 λ. μ. μ. σ. 2 λ. σ. 2 σ. 2 + (1 - λ. σ. 2 σ. 2

    哪里 μ. σ. 2 表示更新的均值和方差, λ. μ. λ. σ. 2 分别表示均值衰减值和方差衰减值, μ. σ. 2 表示层输入的平均值和方差,以及 μ. σ. 2 分别表示移动平均值和方差值的最新值。训练后,软件使用最新的移动均值和方差统计值。此选项仅支持CPU和单G万博1manbetxPU培训。

渐变剪裁

渐变的正阈值,指定为正标量或INF..当梯度超过值时梯度阈值,然后根据梯度剪切梯度阈值法

用于剪切超过渐变阈值的梯度值的梯度阈值方法,指定为以下之一:

  • “l2norm”-如果2可学习参数的梯度范数大于梯度阈值,然后缩放梯度,使L2规范等于梯度阈值

  • 'global-l2norm'- 如果是全球l2规范,l,比梯度阈值,然后将所有梯度缩放到一个因素GradientThreshold /l.全球L2Norm考虑了所有可学习的参数。

  • “绝对值”-如果可学习参数梯度中单个偏导数的绝对值大于梯度阈值,然后缩放偏导数,使其大小等于梯度阈值并保留部分衍生物的迹象。

有关更多信息,请参阅渐变剪裁

序列选项

选项要填充,截断或拆分输入序列,指定为以下之一:

  • '最长'- 每个迷你批处理中的缝合序列具有与最长序列相同的长度。此选项不会丢弃任何数据,但填充可以向网络引入噪点。

  • “最短”-截断每个小批中的序列,使其长度与最短序列相同。这个选项确保不添加任何填充,代价是丢弃数据。

  • 正整数—对于每个小批量,将序列填充到指定长度的最近倍数,该倍数大于最小批量中序列的最长长度,然后将序列分割成指定长度的更小的序列。如果发生分裂,则软件创建额外的小批量。如果完整序列无法装入内存,则使用此选项。或者,尝试通过设置来减少每个小批量的序列数量“MiniBatchSize”选择较低的值。

要了解更多关于填充、截断和分割输入序列的效果,请参见序列填充、截断和拆分

填充或截断的方向,指定为下列任一种:

  • '对'—在右侧填充或截断序列。序列在同一时间步开始,软件截断或添加填充到序列的结束。

  • “左”-在左侧填充或截断序列。软件将截断或添加填充到序列的开头,以便序列在同一时间步结束。

因为LSTM层一次只处理一个时间步长的序列数据,所以OutputMode属性是“最后一次”,最后时间步骤中的任何填充都会对层输出产生负面影响。要在左侧填充或截断序列数据,请设置“SequencePaddingDirection”选择“左”

对于序列到序列网络(当OutputMode属性是“序列”对于每个LSTM层),第一个时间步骤中的任何填充都会对较早时间步骤的预测产生负面影响。要在右侧填充或截断序列数据,请设置“SequencePaddingDirection”选择'对'

要了解更多关于填充、截断和分割输入序列的效果,请参见序列填充、截断和拆分

值,用来填充作为标量指定的输入序列。该选项仅在以下情况下有效SequenceLength'最长'或正整数。不要用键盘填充序列,因为这样做会在整个网络中传播错误。

硬件选项

培训网络的硬件资源,指定为以下之一:

  • “汽车”—如果有图形处理器,请使用图形处理器。否则,请使用CPU。

  • “cpu”- 使用CPU。

  • 'GPU'—使用GPU。

  • “多gpu”-在一台计算机上使用多个GPU,根据默认集群配置文件使用本地并行池。如果当前没有并行池,软件将启动一个并行池,池大小等于可用GPU的数量。

  • “平行”-根据默认集群配置文件使用本地或远程并行池。如果当前没有并行池,软件将使用默认的集群配置文件启动一个并行池。如果池可以访问GPU,那么只有拥有唯一GPU的工作者才能进行训练计算。如果池没有gpu,则在所有可用的CPU worker上进行培训。

有关何时使用不同执行环境的更多信息,请参见并行和在云中扩展深度学习

'GPU'“多gpu”,“平行”选项需要并行计算工具箱™.要使用GPU进行深度学习,您还必须有支持的GPU设备。万博1manbetx有关支持的设备的信息,请参见万博1manbetxGPU通万博1manbetx过发布支持(并行计算工具箱)如果您选择了这些选项之一,但并行计算工具箱或合适的GPU不可用,则软件返回错误。

在并行训练时看到性能提高,请尝试缩放MiniBatchSizeInitialLearnRate培训选项的图形处理器的数量。

培训长期短期内存网络仅支持单CPU或单GPU培训。万博1manbetx

指定使用的执行环境trainingOptions

数据类型:char|一串

gpu或cpu的工作负载划分,指定为从0到1的标量、正整数或数字向量。此属性仅在execultenvironment.值=“多gpu”“平行”

检查点

保存检查点网络的路径,指定为字符向量。

数据类型:char

在训练期间要调用的输出函数,指定为函数句柄或函数句柄的单元格数组。trainNetwork在训练开始之前、每次迭代之后以及训练结束之后调用指定的函数一次。trainNetwork传递一个包含以下字段信息的结构:

描述
时代 当前历元数
迭代 当前迭代次数
TimeSinceStart 自培训开始以来的时间
TrainingLoss 当前小批量损失
ValidationLoss 验证数据丢失
BaseLearnRate 当前基本学习率
TrainingAccuracy 当前小批量(分类网络)的准确性
培训渣 当前小批处理(回归网络)上的RMSE
ValidationAccuracy 验证数据的准确性(分类网络)
验证RMSE 验证数据的RMSE(回归网络)
状态 当前培训状态,可能值为“开始”“迭代”,或“完成”

如果未计算字段或与对输出函数的某个调用相关的字段,则该字段包含空数组。

您可以使用输出功能显示或绘制进度信息,或停止培训。要尽早停止训练,请使输出函数返回真正的.如果任何输出函数返回真正的,然后训练结束trainNetwork返回最新的网络。有关如何使用输出函数的示例,请参见自定义深度学习网络训练输出

数据类型:function_handle|细胞

例子

全部折叠

使用RMSProp Optimizer创建一组培训神经网络的选项。将培训的最大数量设置为20,并在每次迭代中使用具有64个观察的迷你批次。指定平平梯度移动平均值的学习率和衰减率。打开培训进度情节。

选择= trainingOptions (“rmsprop”...“InitialLearnRate”3的军医,...“SquaredGradientDecayFactor”, 0.99,...“MaxEpochs”, 20岁,...“MiniBatchSize”, 64,...“阴谋”“培训进度”
选项= TransionOptionsRMSprop与属性:SquaredGradientDecayfactor:1.0000E-08 InitialLearnrate:3.0000E-04学习Chedule:'无'学习ropfactor:0.1000学习ropperioder:0.1000学习ropperiod:10 l2Regular化:1.0000E-04 GradientThresholdMethod:'L2norm'毕业:20 inf Maxochs:20小型:64冗长:1 verboseFrequency:50 validationData:[]验证频繁:50 validationPatience:INF Shuffle:'一次'checkPointPath:'executionEnvironment:'auto'工作者:[] outcefcn:[]绘图:'培训 - 进展'seamelength:'longest'sequencedpaddingvalue:0 senderpaddingdirection:'右'displatchinbackground:0 resetInputnormalization:1 batchnormalizationstatistics:'人口'
介绍了R2018a