TrainingOptionsSGDM
带动量的随机梯度下降训练选项
描述
具有动量的随机梯度下降的训练选项,包括学习率信息,L2正则化因子和小批量大小。
创建
创建一个TrainingOptionsSGDM
对象使用trainingOptions
并指定“个”
作为第一个输入参数。
属性
情节和显示
情节
- - - - - -在网络训练期间显示的图
“没有”
|“训练进步”
在网络训练期间显示的图,指定为以下之一:
“没有”
-训练时不要展示情节。“训练进步”
-规划训练进度。图中显示了小批量损失和准确性,验证损失和准确性,以及关于训练进度的附加信息。剧情有一个停止按钮在右上角。点击按钮,停止训练,返回当前网络状态。您可以通过单击将训练图保存为图像或PDF格式出口培训策划.有关训练进度图的更多信息,请参见监控深度学习培训进度.
详细的
- - - - - -用于显示培训进度信息
1
(真正的)(默认)|0
(假)
在命令窗口中显示训练进度信息,指定为1
(真正的)或0
(假)。
详细输出显示以下信息:
网络的分类
场 | 描述 |
---|---|
时代 |
时代的数字。一个历对应于数据的完整遍历。 |
迭代 |
迭代数。迭代对应于一个小批处理。 |
时间 |
时间以小时、分钟和秒为单位流逝。 |
Mini-batch准确性 |
小批量分类精度。 |
验证准确性 |
验证数据的分类精度。如果不指定验证数据,则函数不显示此字段。 |
Mini-batch损失 |
小批量上的损耗。如果输出层是ClassificationOutputLayer 对象,则损失为具有互斥类的多类分类问题的交叉熵损失。 |
确认损失 |
验证数据上的损失。如果输出层是ClassificationOutputLayer 对象,则损失为具有互斥类的多类分类问题的交叉熵损失。如果不指定验证数据,则函数不显示此字段。 |
基础学习速率 |
基础学习速率。软件将各层的学习速率因子乘以这个值。 |
回归网络
场 | 描述 |
---|---|
时代 |
时代的数字。一个历对应于数据的完整遍历。 |
迭代 |
迭代数。迭代对应于一个小批处理。 |
时间 |
时间以小时、分钟和秒为单位流逝。 |
Mini-batch RMSE |
小批处理上的均方根误差(RMSE)。 |
验证RMSE |
验证数据上的RMSE。如果不指定验证数据,则软件不显示此字段。 |
Mini-batch损失 |
小批量上的损耗。如果输出层是RegressionOutputLayer 对象,则损失为半均方误差。 |
确认损失 |
验证数据上的损失。如果输出层是RegressionOutputLayer 对象,则损失为半均方误差。如果不指定验证数据,则软件不显示此字段。 |
基础学习速率 |
基础学习速率。软件将各层的学习速率因子乘以这个值。 |
当训练停止时,详细输出将显示停止的原因。
方法指定验证数据ValidationData
培训的选择。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|逻辑
VerboseFrequency
- - - - - -冗长打印的频率
50
(默认)|正整数
详细打印的频率,即从打印到命令窗口之间的迭代次数,指定为正整数。此选项仅在详细的
训练方法是1
(真正的)。
如果你在训练中验证网络,那么trainNetwork
还在每次进行验证时打印到命令窗口。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
Mini-Batch选项
MaxEpochs
- - - - - -最大时代数
30.
(默认)|正整数
用于训练的最大课时数,指定为正整数。
迭代是梯度下降算法中使用小批最小化损失函数所采取的步骤。一个历是训练算法在整个训练集上的全部经过。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
MiniBatchSize
- - - - - -mini-batch大小
128
(默认)|正整数
用于每个训练迭代的小批的大小,指定为正整数。小批处理是训练集的一个子集,用于评估损失函数的梯度和更新权重。
如果小批次大小不能平均分配训练样本的数量,那么trainNetwork
丢弃不适合每个历的最终完整小批处理的训练数据。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
洗牌
- - - - - -数据洗牌选项
“一次”
|“永远”
|“every-epoch”
数据变换选项,指定为以下之一:
“一次”
—训练前对训练和验证数据进行一次洗牌。“永远”
—不要打乱数据。“every-epoch”
-在每个训练历之前打乱训练数据,在每个网络验证之前打乱验证数据。如果小批次大小不能平均分配训练样本的数量,那么trainNetwork
丢弃不适合每个历的最终完整小批处理的训练数据。要避免在每个时代丢弃相同的数据,请设置洗牌
培训选项“every-epoch”
.
验证
ValidationData
- - - - - -用于培训期间验证的数据
[]
(默认)|数据存储|表格|单元阵列
培训期间用于验证的数据,指定为[]
、数据存储、表或包含验证预测器和响应的单元格数组。
控件支持的相同格式可以指定验证预测器和响应trainNetwork
函数。可以将验证数据指定为数据存储库、表或单元格数组}{预测,反应
,在那里预测
包含验证预测器和反应
包含验证响应。
有关更多信息,请参见图片
,序列
,特性
的输入参数trainNetwork
函数。
在培训期间,trainNetwork
计算验证数据的验证精度和验证损失。方法指定验证频率ValidationFrequency
培训的选择。您还可以使用验证数据在验证损失停止减少时自动停止训练。若要启用自动验证停止,请使用ValidationPatience
培训的选择。
如果您的网络在预测期间的行为与训练期间的行为不同(例如,退出层),那么验证精度可能高于训练(小批处理)精度。
验证数据根据洗牌
培训的选择。如果洗牌
是“every-epoch”
,然后在每次网络验证之前对验证数据进行洗牌。
如果ValidationData
是[]
,则软件在训练过程中不验证网络。
ValidationFrequency
- - - - - -网络验证频率
50
(默认)|正整数
以迭代次数表示的网络验证频率,指定为正整数。
的ValidationFrequency
值是验证度量评估之间的迭代次数。方法指定验证数据ValidationData
培训的选择。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
ValidationPatience
- - - - - -验证停止的耐心
正
(默认)|正整数
验证停止网络训练的耐心,指定为正整数或正
.
ValidationPatience
指定在网络训练停止之前,验证集上的损失可以大于或等于之前最小损失的次数。如果ValidationPatience
是正
,则验证损失的值不会导致训练提前停止。
返回的网络取决于OutputNetwork
培训的选择。若要返回验证损耗最低的网络,请设置OutputNetwork
培训选项“best-validation-loss”
.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
OutputNetwork
- - - - - -培训结束后返回网络
最后一次迭代的
(默认)|“best-validation-loss”
网络在培训完成时返回,指定为以下之一:
最后一次迭代的
-返回上次训练迭代对应的网络。“best-validation-loss”
-返回验证损失最小的训练迭代对应的网络。要使用此选项,必须指定ValidationData
培训的选择。
解算器选项
InitialLearnRate
- - - - - -最初的学习速率
0.01
(默认)|积极的标量
用于训练的初始学习率,指定为正标量。
如果学习率太低,那么训练就会花费很长时间。如果学习率太高,那么训练可能会达到次优结果或发散。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
LearnRateScheduleSettings
- - - - - -设置学习速率计划
结构
此属性是只读的。
学习率计划的设置,指定为一个结构。LearnRateScheduleSettings
有场方法
,指定调整学习速率的方法类型。可能的方法有:
“没有”
-在整个训练过程中,学习率是恒定的。“分段”
—在培训过程中,学习率会周期性下降。
如果方法
是“分段”
,然后LearnRateScheduleSettings
包含两个字段:
DropRateFactor
-训练中学习率下降的乘因子DropPeriod
-在训练中调整学习速率之间的时间间隔
使用指定学习计划速率的设置trainingOptions
.
数据类型:结构体
L2Regularization
- - - - - -L因素2正则化
0.0001
(默认)|负的标量
L因素2正则化(权值衰减),指定为非负标量。有关更多信息,请参见L2正规化.
您可以为L指定一个乘数2具有可学习参数的网络层的正则化。有关更多信息,请参见在卷积和全连通层中设置参数.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
动力
- - - - - -上一步贡献
0.9
(默认)|标量的0
来1
上一迭代的参数更新步骤对带有动量的随机梯度下降的当前迭代的贡献,指定为标量0
来1
.
的值0
表示上一步没有贡献,而值为1
表示上一步的最大贡献。默认值适用于大多数任务。
有关更多信息,请参见带动量的随机梯度下降.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
ResetInputNormalization
- - - - - -选项重置输入层归一化
1
(真正的)(默认)|0
(假)
选项重置输入层归一化,指定为以下之一:
1
(true) -重置输入层归一化统计数据,并在训练时重新计算。0
(false) -在训练时计算归一化统计值,当它们为空时。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|逻辑
BatchNormalizationStatistics
- - - - - -在批处理规范化层中计算统计信息的模式
“人口”
(默认)|“移动”
在批处理归一化层中计算统计信息的模式,指定为以下之一:
“人口”
-使用人口统计数据。训练结束后,软件通过再次遍历训练数据来完成统计,并使用得到的平均值和方差。“移动”
-使用更新步骤给出的运行估计值近似训练期间的统计数据在哪里 而且 分别表示更新后的平均值和方差, 而且 分别为衰减的平均值和方差值, 而且 分别表示层输入的平均值和方差,和 而且 分别表示移动均值和方差值的最新值。经过训练后,软件使用最新的移动均值和方差统计值。该选项只支持CPU和单个GPU训练。
梯度剪裁
GradientThreshold
- - - - - -梯度阈值
正
(默认)|积极的标量
梯度阈值,指定为正
或者一个正的标量。的值GradientThreshold
,然后根据裁剪梯度GradientThresholdMethod
培训的选择。
有关更多信息,请参见梯度剪裁.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
GradientThresholdMethod
- - - - - -梯度阈值方法
“l2norm”
(默认)|“global-l2norm”
|“绝对值”
梯度阈值方法,用于裁剪超过梯度阈值的梯度值,指定为以下之一:
“l2norm”
-如果L2可学习参数的梯度范数大于GradientThreshold
,然后缩放梯度,使L2规范=GradientThreshold
.“global-l2norm”
—如果全局L2规范,l,大于GradientThreshold
,然后将所有梯度缩放为GradientThreshold /
l.全球L2Norm考虑了所有可学习的参数。“绝对值”
-如果可学习参数的梯度中个别偏导数的绝对值大于GradientThreshold
,然后缩放偏导数得到模等于GradientThreshold
保留偏导数的符号。
有关更多信息,请参见梯度剪裁.
序列的选择
SequenceLength
- - - - - -选项填充或截断序列
“最长”
(默认)|“最短”
|正整数
填充、截断或分割输入序列的选项,指定为以下之一:
“最长”
-每个小批中的衬垫序列与最长序列的长度相同。这个选项不会丢弃任何数据,尽管填充会给网络带来噪音。“最短”
-截断每个小批中的序列,使其长度与最短的序列相同。此选项确保不添加填充,但代价是丢弃数据。正整数——对于每个小批,将序列填充为小批中最长序列的长度,然后将序列分割为指定长度的更小的序列。如果发生分裂,那么软件会创建额外的小批量。如果指定的序列长度没有平均分配数据的序列长度,那么包含这些序列末端的小批次的长度小于指定的序列长度。如果完整序列不适合内存,则使用此选项。或者,尝试减少每个小批处理的序列数量
MiniBatchSize
选项设置为较低的值。
要了解关于填充、截断和分割输入序列的效果的更多信息,请参见序列填充、截断和分割.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|字符
|字符串
SequencePaddingDirection
- - - - - -填充或截断的方向
“正确”
(默认)|“左”
填充或截断的方向,指定为下列之一:
“正确”
-在右侧填充或截断序列。序列开始在同一时间步骤和软件截断或添加填充序列的结尾。“左”
-在左侧填充或截断序列。该软件截断或添加填充序列的开始,以使序列结束在同一时间步骤。
因为循环层每次处理一个时间步的序列数据,当循环层OutputMode
属性是“最后一次”
,在最后的时间步长的任何填充都会对图层输出产生负面影响。若要在左侧填充或截断序列数据,请设置SequencePaddingDirection
选项“左”
.
对于序列到序列网络(当OutputMode
属性是“序列”
对于每个循环层),第一个时间步骤中的任何填充都可能对早期时间步骤的预测产生负面影响。若要在右侧填充或截断序列数据,请设置SequencePaddingDirection
选项“正确”
.
要了解关于填充、截断和分割输入序列的效果的更多信息,请参见序列填充、截断和分割.
SequencePaddingValue
- - - - - -填充序列的值
0
(默认)|标量
用来填充输入序列的值,指定为标量。
该选项仅在以下情况下有效SequenceLength
是“最长”
或者一个正整数。不垫序列用南
因为这样做会在整个网络中传播错误。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
硬件选项
ExecutionEnvironment
- - - - - -培训网络硬件资源
“汽车”
|“cpu”
|“图形”
|“multi-gpu”
|“平行”
用于培训网络的硬件资源,指定为以下之一:
“汽车”
—如果有图形处理器,请使用。否则,请使用CPU。“cpu”
—使用CPU。“图形”
—使用GPU。“multi-gpu”
—在一台机器上使用多个gpu,根据默认集群配置文件使用本地并行池。如果当前没有并行池,软件启动一个并行池,池大小等于可用gpu的数量。“平行”
—根据默认集群配置文件使用本地或远程并行池。如果当前没有并行池,软件将使用默认的集群配置文件启动一个并行池。如果池可以访问GPU,那么只有具有唯一GPU的工作者执行训练计算。如果池中没有gpu,那么将对所有可用的CPU工作人员进行培训。
有关何时使用不同执行环境的更多信息,请参见在并行、gpu和云上扩展深度学习.
“图形”
,“multi-gpu”
,“平行”
选项需要并行计算工具箱™。要使用GPU进行深度学习,还必须有支持的GPU设备。有关支持的设备的信息,请参见GPU计算的需求(并行计算工具箱).如果您选择了其中一个选项,而并行计算工具箱或合适的GPU不可用,那么软件将返回一个错误。
为了在并行训练中看到表现的改善,试着扩大MiniBatchSize
而且InitialLearnRate
根据gpu的数量选择训练选项。
的“multi-gpu”
而且“平行”
选项不支持包含带有状态参数的自定义层或在训练时有状态的内置层的网络。例如:
循环层,如
LSTMLayer
,BiLSTMLayer
,或GRULayer
对象的时候SequenceLength
训练选项是一个正整数BatchNormalizationLayer
对象的时候BatchNormalizationStatistics
训练选项设置为“移动”
WorkerLoad
- - - - - -平行工人负荷划分
标量的0
来1
|正整数|数值向量
gpu或cpu之间的并行工作负载分配,指定为以下之一:
标量的
0
来1
-每台机器上用于网络训练计算的工人的比例。如果使用启用了后台调度的小批数据存储中的数据来训练网络,那么其余的worker将在后台获取和预处理数据。正整数-每台机器上用于网络训练计算的工作者数量。如果使用启用了后台调度的小批数据存储中的数据来训练网络,那么其余的worker将在后台获取和预处理数据。
数字向量——并行池中每个工作者的网络训练负载。为一个向量
W
、工人我
获得分数W(我)/ (W)和
工作的数量(每个小批次的样例数量)。如果使用启用了后台调度的小批数据存储中的数据来训练网络,那么可以分配一个工作者负载为0来使用该工作者在后台获取数据。指定的向量必须包含并行池中的每个工作者的一个值。
如果并行池可以访问GPU,那么没有唯一GPU的工作者永远不会被用于训练计算。带有GPU的池的默认设置是使用具有唯一GPU的所有worker进行训练计算,其余的worker用于后台调度。如果该池不能访问gpu和用于培训的cpu,则默认为每台机器使用一个worker进行后台数据调度。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
DispatchInBackground
- - - - - -标志以启用后台调度
0
(假)(默认)|1
(真正的)
标志,使后台调度(异步预取队列)能够从数据存储中读取训练数据,指定为0
(虚假的)或1
(真正的)。后台调度需要“并行计算工具箱”。
DispatchInBackground
仅支持可分区的数据存储。有关更多信息,请参见使用数据存储进行并行训练和后台调度.
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
检查点
CheckpointPath
- - - - - -检查点网络保存路径
""
(默认)|特征向量
保存检查点网络的路径,指定为字符向量或字符串标量。
如果不指定路径(即使用默认路径),则使用默认路径
""
),那么该软件就不会保存任何检查点网络。如果您指定了一个路径,那么
trainNetwork
将检查点网络保存到此路径,并为每个网络分配唯一的名称。然后,您可以加载任何检查点网络,并从该网络恢复训练。如果该文件夹不存在,则必须在指定保存检查点网络的路径之前先创建它。如果指定的路径不存在,则
trainingOptions
返回一个错误。
的CheckpointFrequency
而且CheckpointFrequencyUnit
选项指定保存检查点网络的频率。
有关保存网络检查点的更多信息,请参见保存检查点网络并恢复训练.
数据类型:字符
|字符串
CheckpointFrequency
- - - - - -保存检查点网络的频率
1
(默认)|正整数
保存检查点网络的频率,指定为正整数。
如果CheckpointFrequencyUnit
是“时代”
,那么该软件保存检查点网络每CheckpointFrequency
时代的发展。
如果CheckpointFrequencyUnit
是“迭代”
,那么该软件保存检查点网络每CheckpointFrequency
迭代。
此选项仅在以下情况下有效CheckpointPath
非空的。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
CheckpointFrequencyUnit
- - - - - -检查点频率单位
“时代”
(默认)|“迭代”
检查点频率单位,指定为“时代”
或“迭代”
.
如果CheckpointFrequencyUnit
是“时代”
,那么该软件保存检查点网络每CheckpointFrequency
时代的发展。
如果CheckpointFrequencyUnit
是“迭代”
,那么该软件保存检查点网络每CheckpointFrequency
迭代。
此选项仅在以下情况下有效CheckpointPath
非空的。
OutputFcn
- - - - - -输出函数
函数处理|函数句柄的单元格数组
输出要在训练期间调用的函数,指定为函数句柄或函数句柄的单元格数组。trainNetwork
在训练开始前、每次迭代之后和训练结束后分别调用指定的函数一次。trainNetwork
传递一个包含以下字段信息的结构:
场 | 描述 |
---|---|
时代 |
当前时代数量 |
迭代 |
当前迭代次数 |
TimeSinceStart |
从训练开始算起,时间以秒计 |
TrainingLoss |
当前mini-batch损失 |
ValidationLoss |
验证数据上的损失 |
BaseLearnRate |
当前基础学习率 |
TrainingAccuracy |
当前小批的准确性(分类网络) |
TrainingRMSE |
当前小批(回归网络)上的均方根误差 |
ValidationAccuracy |
验证数据的准确性(分类网络) |
ValidationRMSE |
验证数据上的均方根误差(回归网络) |
状态 |
当前训练状态,可能值为“开始” ,“迭代” ,或“完成” . |
如果某个字段不是计算出来的或与对输出函数的某个调用无关,则该字段包含一个空数组。
您可以使用输出函数来显示或绘制进度信息,或停止训练。要尽早停止训练,请让输出函数返回1
(真正的)。如果任何输出函数返回1
(正确),然后训练结束和trainNetwork
返回最新的网络。有关如何使用输出函数的示例,请参见深度学习网络训练中的自定义输出.
数据类型:function_handle
|细胞
例子
指定培训选项
创建一组使用随机梯度下降和动量训练网络的选项。每5个周期将学习率降低0.2倍。将训练的最大周期数设置为20,并在每次迭代中使用包含64个观察结果的小批。打开训练进度图。
选择= trainingOptions (“个”,...LearnRateSchedule =“分段”,...LearnRateDropFactor = 0.2,...LearnRateDropPeriod = 5,...MaxEpochs = 20,...MiniBatchSize = 64,...情节=“训练进步”)
options = TrainingOptionsSGDM with properties: Momentum: 0.9000 InitialLearnRate: 0.0100 LearnRateSchedule: 'piecewise' LearnRateDropFactor: 0.2000 LearnRateDropPeriod: 5 L2Regularization: 1.0000e-04 GradientThresholdMethod: 'l2norm' GradientThreshold: Inf MaxEpochs: 20 MiniBatchSize: 64 Verbose: 1 VerboseFrequency: 50 ValidationData: [] ValidationFrequency: 50 ValidationPatience: Inf Shuffle: 'once' CheckpointPath: " CheckpointFrequency: 1 CheckpointFrequencyUnit:'epoch' ExecutionEnvironment: 'auto' WorkerLoad: [] OutputFcn: [] Plots: 'training-progress' SequenceLength: 'longest' SequencePaddingValue: 0 SequencePaddingDirection: 'right' DispatchInBackground: 0 ResetInputNormalization: 1 BatchNormalizationStatistics: 'population' OutputNetwork: 'last-iteration'
算法
带动量的随机梯度下降
随机梯度下降算法可以沿着最陡下降到最优的路径振荡。在参数更新中添加动量项是减少这种振荡的一种方法[2].具有动量的随机梯度下降(SGDM)更新为
在哪里
确定前一个渐变步骤对当前迭代的贡献。方法指定此值动力
培训的选择。使用随机梯度下降动量算法训练神经网络,指定“个”
的第一个输入参数trainingOptions
.要指定学习速率α的初始值,可以使用InitialLearnRate
培训的选择。您还可以为不同的层和参数指定不同的学习率。有关更多信息,请参见在卷积和全连通层中设置参数.
l2正则化
为损失函数的权重添加正则化项 减少过拟合是一种方法吗[1],[2].正则化项也称为正则化项体重衰变.具有正则化项的损失函数为
在哪里 是权向量, 是正则化因子(系数),和正则化函数 是
注意,这些偏差并不是正则化的[2].您可以指定正则化因子
通过使用L2Regularization
培训的选择。您还可以为不同的层和参数指定不同的正则化因子。有关更多信息,请参见在卷积和全连通层中设置参数.
软件用于网络训练的损失函数包含正则化项。然而,在训练过程中,命令窗口和训练进度图中显示的损失值只是数据上的损失,不包括正则化项。
梯度剪裁
如果梯度以指数级增长,那么训练是不稳定的,可以在几次迭代中发散。这种“梯度爆炸”是由训练损失表示的南
或正
.梯度裁剪通过在较高的学习率和异常值存在的情况下稳定训练,有助于防止梯度爆炸[3].梯度裁剪使网络训练得更快,而且通常不影响学习任务的准确性。
有两种类型的梯度裁剪。
基于范数的梯度裁剪基于阈值缩放梯度,并且不改变梯度的方向。的
“l2norm”
而且“global-l2norm”
的值GradientThresholdMethod
是基于范数的梯度裁剪方法。基于值的梯度裁剪截取任何大于阈值的偏导数,这可能导致梯度任意改变方向。基于值的梯度裁剪可能具有不可预测的行为,但足够小的变化不会导致网络发散。的
“绝对值”
的价值GradientThresholdMethod
是一种基于值的渐变裁剪方法。
版本历史
介绍了R2016aR2022b:trainNetwork
当指定时,将小批填充到分裂前的最长序列长度SequenceLength
训练选项为整数
从R2022b开始,当使用序列数据训练网络时trainNetwork
函数和SequenceLength
选项为整数时,软件将每个小批中的序列填充为最长序列的长度,然后按照指定的序列长度将序列拆分为小批。如果SequenceLength
没有均匀划分小批量的序列长度,那么最后划分的小批量的长度小于SequenceLength
.此行为防止在只包含填充值的时间步上进行网络训练。
在以前的版本中,软件填充小批量的序列,使其长度与最接近的倍数匹配SequenceLength
它大于或等于小批处理长度,然后拆分数据。若要再现此行为,请在预处理小批量数据时使用自定义训练循环并实现此行为。
R2018b:ValidationPatience
培训选项默认为正
的默认值从R2018b开始ValidationPatience
训练方法是正
,这意味着关闭了通过验证的自动停止。这种行为会阻止在从数据中充分学习之前停止训练。
在以前的版本中,默认值为5
.要复制此行为,请设置ValidationPatience
选项5
.
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。