主要内容

TrainingOptionsRMSProp

培训RMSProp优化器的选项

描述

培训选项RMSProp(均方根传播)优化器,包括学习速率信息,L2正则化因子,mini-batch大小。

创建

创建一个TrainingOptionsRMSProp对象使用trainingOptions并指定“rmsprop”作为第一个输入参数。

属性

全部展开

情节和显示

情节显示在神经网络训练,指定为以下之一:

  • “没有”-不显示阴谋在训练。

  • “训练进步”——情节训练进展。情节显示mini-batch损失和精度,验证损失和准确性,和额外的信息在培训的进展。情节有一个停止按钮在右上角。单击该按钮停止训练,回归神经网络的当前状态。你可以节省培训策划作为一个图像或PDF点击出口培训策划。培训进展阴谋的更多信息,见监测深度学习培训的进展

指示器显示培训进展信息在命令窗口中,指定为1(真正的)或0(假)。

详细输出显示以下信息:

神经网络分类

描述
时代 时代的数字。一个时代对应的完整传递数据。
迭代 迭代数。迭代对应于一个mini-batch。
时间 时间以小时、分钟和秒。
Mini-batch准确性 mini-batch分类精度。
验证准确性 分类精度的验证数据。如果你不指定验证数据,然后函数不显示这一领域。
Mini-batch损失 mini-batch损失。如果输出层ClassificationOutputLayer对象,然后是多层次的交叉熵损失损失与互斥类分类问题。
确认损失 验证数据损失。如果输出层ClassificationOutputLayer对象,然后是多层次的交叉熵损失损失与互斥类分类问题。如果你不指定验证数据,然后函数不显示这一领域。
基础学习速率 基础学习速率。繁殖的软件学习速率因子层的这个值。

回归神经网络

描述
时代 时代的数字。一个时代对应的完整传递数据。
迭代 迭代数。迭代对应于一个mini-batch。
时间 时间以小时、分钟和秒。
Mini-batch RMSE mini-batch均方误差(RMSE)。
验证RMSE RMSE验证数据。如果你不指定验证数据,然后软件不显示这一领域。
Mini-batch损失 mini-batch损失。如果输出层RegressionOutputLayer对象,然后half-mean-squared-error损失。
确认损失 验证数据损失。如果输出层RegressionOutputLayer对象,然后half-mean-squared-error损失。如果你不指定验证数据,然后软件不显示这一领域。
基础学习速率 基础学习速率。繁殖的软件学习速率因子层的这个值。

当训练停止,详细输出显示停止的原因。

指定验证数据,使用ValidationData培训的选择。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

详细的印刷、频率之间的迭代次数是印刷命令窗口,指定为一个正整数。这个选项只有当产生影响详细的训练方法是1(真正的)。

如果你验证神经网络在训练,那么trainNetwork也输出到命令窗口每次验证发生。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

Mini-Batch选项

最大数量的时代用于培训,指定为一个正整数。

迭代是一个步骤在梯度下降算法对使用mini-batch最小化损失函数。一个时代的全部通过整个训练集训练算法。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

mini-batch大小为每个迭代训练,使用指定为一个正整数。mini-batch是训练集的一个子集,它是用来评估损失函数的梯度和更新权重。

如果mini-batch大小不均匀划分训练样本的数量trainNetwork丢弃的训练数据不符合的最终完成mini-batch每个时代。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

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

  • “一次”——洗牌的培训和验证数据一次培训。

  • “永远”——不转移数据。

  • “every-epoch”——洗牌前训练数据训练时期,和洗牌每个神经网络验证前的验证数据。如果mini-batch大小不均匀划分训练样本的数量trainNetwork丢弃的训练数据不符合的最终完成mini-batch每个时代。为了避免丢弃每时代相同的数据,设置洗牌培训选项“every-epoch”

验证

数据用于验证培训期间,指定为[]、数据存储、表或一个单元阵列包含验证预测和响应。

您可以指定验证预测和响应使用相同的格式支持的金宝apptrainNetwork函数。您可以指定验证数据作为一个数据存储,表,或单元阵列}{预测,反应,在那里预测包含验证预测和反应包含验证响应。

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

在培训期间,trainNetwork计算验证准确性和验证验证数据损失。指定验证频率,使用ValidationFrequency培训的选择。您还可以使用验证数据时自动停止训练验证停止减少损失。打开自动验证停止使用ValidationPatience培训的选择。

如果你的神经网络层预测比在训练期间的行为会有所不同(例如,辍学层),然后验证准确性可以高于训练(mini-batch)的准确性。

验证数据是根据洗牌培训的选择。如果洗牌“every-epoch”,然后验证数据在每个神经网络验证。

如果ValidationData[],那么软件不能验证神经网络在训练。

神经网络验证的频率的迭代次数,指定为一个正整数。

ValidationFrequency价值评估的验证指标之间的迭代次数。指定验证数据,使用ValidationData培训的选择。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

耐心的验证停止的神经网络训练,一个正整数或指定

ValidationPatience指定的次数,验证集可以上的损失大于或等于前面最小损失的神经网络训练之前停止。如果ValidationPatience,然后验证的值损失不会引起培训提前停止。

返回的神经网络取决于OutputNetwork培训的选择。回归神经网络验证最低的损失,设置OutputNetwork培训选项“best-validation-loss”

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

神经网络回归训练完成后,指定为以下之一:

  • 最后一次迭代的——返回相对应的神经网络训练迭代。

  • “best-validation-loss”——返回相对应的神经网络训练迭代验证最低的损失。要使用这个选项,您必须指定ValidationData培训的选择。

解算器选项

最初的学习速率用于培训,指定为一个积极的标量。

如果学习速率太低,那么培训需要花很长时间。如果学习速率过高,那么训练可能会达到一个理想的结果或发散。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

这个属性是只读的。

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

  • “没有”在培训——学习速率是恒定的。

  • “分段”培训期间,定期学习速率下降。

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

  • DropRateFactor——的乘法因子在培训学习速率下降

  • DropPeriod时代的数量,通过调整学习速率之间在训练

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

数据类型:结构体

L因素2正规化(重量衰变),指定为负的标量。有关更多信息,请参见L2正规化

您可以指定一个乘数的L2正则化参数的神经网络层可学的。有关更多信息,请参见设置参数卷积和完全连接层

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

衰变率的平方梯度RMSProp解算器的移动平均线,指定为一个非负标量不到1

典型的衰变率的值0.9,0.99,0.999,对应于平均长度的10,One hundred.,1000年参数更新,分别。

有关更多信息,请参见RMSProp

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

分母抵消RMSProp解算器,指定为一个积极的标量。

解算器添加抵消分母的神经网络参数更新以避免除零。默认值适用于大多数的任务。

解决更多信息的不同,看到的RMSProp

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

选择复位输入层正常化,指定为以下之一:

  • 1(真正的)——复位输入层标准化统计和重新计算他们在训练时间。

  • 0(假),计算归一化数据在训练的时候是空的。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

模式评估统计数据批处理标准化层,指定为以下之一:

  • “人口”——使用人口统计。软件使结束训练后,再次经过训练数据的统计数据,并使用生成的均值和方差。

  • “移动”——近似统计培训期间使用一个运行估计更新步骤

    μ * = λ μ μ ^ + ( 1 λ μ ) μ σ 2 * = λ σ 2 σ 2 ^ + (1 - λ σ 2 ) σ 2

    在哪里 μ * σ 2 * 分别表示更新后的均值和方差 λ μ λ σ 2 分别表示均值和方差衰减值 μ ^ σ 2 ^ 表示层的均值和方差的输入,分别 μ σ 2 表示最新的移动值均值和方差值,分别。培训后,软件使用的最新值移动均值和方差的统计数据。此选项只支持CPU和GP金宝appU的培训。

梯度剪裁

梯度阈值,指定为或积极的标量。如果梯度超过的价值GradientThreshold,然后根据梯度剪GradientThresholdMethod培训的选择。

有关更多信息,请参见梯度剪裁

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

梯度阈值方法用来夹梯度值超过梯度阈值,指定为以下之一:

  • “l2norm”——如果L2规范的梯度大于可学的参数GradientThreshold,然后尺度梯度,L2规范=GradientThreshold

  • “global-l2norm”——如果全球L2规范,l,比GradientThreshold规模,那么所有渐变的一个因素GradientThreshold /l。全球L2规范考虑所有可学的参数。

  • “绝对值”——如果一个个体的绝对值偏导数的梯度大于可学的参数GradientThreshold,然后规模偏导数等于级GradientThreshold和留住偏导数的符号。

有关更多信息,请参见梯度剪裁

序列的选择

选项板、截断或分裂的输入序列,指定为以下之一:

  • “最长”——在每个mini-batch垫序列有相同的长度最长的序列。这个选项不丢弃任何数据,尽管填充可以引入神经网络噪声。

  • “最短”——在每个mini-batch截断序列有相同的长度最短的序列。这个选项可以确保没有添加填充物,在丢弃的成本数据。

  • 正整数——对于每个mini-batch,垫的序列的长度最长mini-batch序列,然后把序列分割成较小的指定长度的序列。如果发生分裂,那么软件创建额外的mini-batches。如果指定的序列长度不均匀划分序列长度的数据,然后mini-batches包含结束这些序列长度短于指定的序列长度。使用这个选项如果完整的序列不适合在内存中。或者,试着减少序列的数量每mini-batch通过设置MiniBatchSize选择一个较低的值。

了解更多关于填充的效果,删除,并把输入序列,明白了序列填充、截断和分裂

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|字符|字符串

填充方向或截断,指定为以下之一:

  • “正确”——垫或截断序列在右边。序列开始在同一时间步和软件截断或添加填充序列的结束。

  • “左”——垫或截断序列在左边。软件截断或添加填充序列,序列的开始结束同时一步。

因为反复层过程序列数据一次一个时间步,当复发性层OutputMode属性是“最后一次”,任何填充在最后时间步可以负面影响层的输出。垫或截断左边序列数据,设置SequencePaddingDirection选项“左”

sequence-to-sequence神经网络(当OutputMode属性是“序列”对于每一个周期性层),任何填充在第一次的步骤可以负面影响的预测更早的时间步骤。垫或截断序列数据在右边,设置SequencePaddingDirection选项“正确”

了解更多关于填充的效果,删除,并把输入序列,明白了序列填充、截断和分裂

盘输入序列值,指定为一个标量。

选择是有效的只有当SequenceLength“最长”或者一个正整数。不垫序列,因为这样做可以传播在整个神经网络错误。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

硬件选项

训练神经网络硬件资源,指定为以下之一:

  • “汽车”——使用GPU如果一个是可用的。否则,使用CPU。

  • “cpu”——使用CPU。

  • “图形”——使用GPU。

  • “multi-gpu”使用多个gpu在一台机器上,使用本地集群并行池基于默认概要文件。如果没有当前并行池,软件开始平行池,池大小等于可用gpu的数量。

  • “平行”——使用一个本地或远程并行池集群基于默认概要文件。如果没有当前并行池,集群软件开始使用默认概要文件。如果池访问GPU,那么只有工人有着独特的GPU计算执行培训。如果池没有gpu,那么培训工人发生在所有可用的CPU。

更多信息在何时使用不同的执行环境,明白了并行扩展深度学习,在gpu上,在云端

“图形”,“multi-gpu”,“平行”选择需要并行计算工具箱™。使用GPU深度学习,你也必须有一个支持GPU设备。金宝app支持设备的信息,请参阅金宝appGPU计算的需求(并行计算工具箱)如果你选择其中一个选项和并行计算工具箱或合适的GPU不可用,那么软件返回一个错误。

看到并行训练时的性能的改善,尽量扩大MiniBatchSizeInitialLearnRate培训选项gpu的数量。

“multi-gpu”“平行”选项不支持包含自定义神经网络层金宝app与状态参数或内置层,在培训时是有状态的。例如:

并行工作负载gpu和cpu之间的分工,指定为以下之一:

  • 标量的01部分工人在每台机器上使用神经网络训练计算。如果你训练神经网络使用mini-batch数据存储中的数据启用背景分派后,然后剩下的工人获取和预处理数据的背景。

  • 正整数,工人数量在每台机器上用于神经网络训练计算。如果你训练神经网络使用mini-batch数据存储中的数据启用背景分派后,然后剩下的工人获取和预处理数据的背景。

  • 数字矢量-神经网络训练负荷为每个工人在并行池。为一个向量W、工人获得分数W(我)/ (W)和的工作(每mini-batch一些例子)。如果你训练一个神经网络使用mini-batch数据存储中的数据启用背景分派后,然后你可以分配一个工作负载(0)使用,工人在后台获取数据。指定的向量平行池中人均必须包含一个值。

如果平行池访问GPU,那么工人没有独特的GPU从来都不是用来训练计算。池在GPU上默认是使用所有工人与独特的培训GPU计算,和其余工人调度为背景。如果池中没有获得gpu和cpu用于训练,然后在默认情况下,使用一个每台机器的工人为后台数据调度。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

国旗使背景调度(异步预取排队)阅读训练数据从数据存储,指定为0(虚假的)或1(真正的)。背景调度需要并行计算工具箱。

DispatchInBackground只支持数据存储的金宝app分区。有关更多信息,请参见使用数据存储并行调度培训和背景

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

检查点

神经网络路径保存检查点,指定为一个特征向量或字符串标量。

  • 如果你不指定一个路径(也就是说,使用默认值”“),则不保存任何检查点神经网络的软件。

  • 如果你指定一个路径,那么trainNetwork节省了检查点神经网络这条道路,每个神经网络分配一个唯一的名称。然后你可以加载任何检查点神经网络和恢复训练神经网络。

    如果文件夹不存在,那么您必须首先创建之前指定的路径保存检查点神经网络。如果您所指定的路径不存在,那么trainingOptions返回一个错误。

CheckpointFrequencyCheckpointFrequencyUnit选项指定检查点保存神经网络的频率。

关于节约的更多信息神经网络检查点,明白了保存检查点网络和恢复训练

数据类型:字符|字符串

拯救检查点神经网络的频率,指定为一个正整数。

如果CheckpointFrequencyUnit“时代”,那么软件节省了检查点神经网络的每一个CheckpointFrequency时代的发展。

如果CheckpointFrequencyUnit“迭代”,那么软件节省了检查点神经网络的每一个CheckpointFrequency迭代。

这个选项只有当产生影响CheckpointPath非空的。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

检查点频率单位,指定为“时代”“迭代”

如果CheckpointFrequencyUnit“时代”,那么软件节省了检查点神经网络的每一个CheckpointFrequency时代的发展。

如果CheckpointFrequencyUnit“迭代”,那么软件节省了检查点神经网络的每一个CheckpointFrequency迭代。

这个选项只有当产生影响CheckpointPath非空的。

输出函数调用在训练期间,指定为一个函数处理或功能单元阵列处理。trainNetwork调用指定的函数一旦开始前的训练,每一次迭代后,一旦训练完成后。trainNetwork通过一个结构,其中包含的信息在以下领域:

描述
时代 当前时代数量
迭代 当前迭代次数
TimeSinceStart 时间在几秒钟内开始以来的训练
TrainingLoss 当前mini-batch损失
ValidationLoss 验证数据损失
BaseLearnRate 目前基地学习速率
TrainingAccuracy 对当前mini-batch精度(分类神经网络)
TrainingRMSE 对当前mini-batch RMSE(回归神经网络)
ValidationAccuracy 验证数据的准确性(分类神经网络)
ValidationRMSE RMSE验证数据(回归神经网络)
状态 当前训练状态,可能的值“开始”,“迭代”,或“完成”

如果一个领域没有计算或相关的特定的输出函数,那么这个字段包含一个空数组。

您可以使用输出函数来显示或情节进展信息,或停止训练。早停止训练,让你的输出函数返回1(真正的)。如果函数返回任何输出1(真正的),然后训练结束trainNetwork返回最新的神经网络。为一个例子,演示如何使用输出功能,看看自定义输出在深入学习网络训练

数据类型:function_handle|细胞

例子

全部折叠

创建一组选项使用RMSProp优化训练一个神经网络。培训时期的最大数量设置为20,并使用与64年mini-batch观察每个迭代。指定学习速率和移动平均线的衰变率的平方梯度。打开培训进展阴谋。

选择= trainingOptions (“rmsprop”,InitialLearnRate = 3的军医,SquaredGradientDecayFactor = 0.99,MaxEpochs = 20,MiniBatchSize = 64,情节=“训练进步”)
选择= TrainingOptionsRMSProp属性:SquaredGradientDecayFactor: 0.9900ε:1.0000 e-08 InitialLearnRate: 3.0000 e-04 LearnRateSchedule:‘没有’LearnRateDropFactor: 0.1000 LearnRateDropPeriod: 10 L2Regularization: 1.0000 e-04 GradientThresholdMethod:“l2norm”GradientThreshold:正MaxEpochs: 20 MiniBatchSize: 64详细:1 VerboseFrequency: 50 ValidationData: [] ValidationFrequency: 50 ValidationPatience:正洗牌:一旦CheckpointPath:”CheckpointFrequency: 1 CheckpointFrequencyUnit:“时代”ExecutionEnvironment:“汽车”WorkerLoad: [] OutputFcn:[]阴谋:“训练进步”SequenceLength:“最长”SequencePaddingValue: 0 SequencePaddingDirection:“对”DispatchInBackground: 0 ResetInputNormalization: 1 BatchNormalizationStatistics:“人口”OutputNetwork:最后一次迭代的

算法

全部展开

版本历史

介绍了R2018a

全部展开