很多小伙伴接触matlab深度学习时不清楚layer与training options参数。
matlab深度学习中的layer与training options参数分别决定了你模型的网络架构与训练方式
layer参数包括你模型从输入走向输出的各层,options包括你训练网络的详细参数设定。
下例来源:MATLAB LSTM多输入单输出 模式分类 示例解析(含代码)_严肃小白兔的博客-CSDN博客
layer网络架构
此类层级设置仅限lstm长短期记忆神经网络
层级设置可以手段调整,不是固定模式的代码
如果你想达到别的目的,你可以根据需要对layer进行修改,每一层都有其存在的意义。目前能力有限,希望能在后面出一期完整的matlab不同设定层的分析。
options训练选项
选择优化器:累加器 'adam'(派生自自适应矩估计)求解器通常适合作为首先尝试的优化器。除此之外还有 'rmsprop'(均方根传播)和 'sgdm'(带动量的随机梯度下降)优化器,选取的标准要依据效果。
最大训练轮次(MaxEpochs):训练多少轮,epoch是世代的意思,每次使用全部子集完成一次运算就是完成了一次epoch,训练轮次的设置要在防止数据过拟合的前提下尽量提高模型效果。
最小步距 (MiniBatchSize):batch批次的意思,在梯度下降中一般来说要遍历所有样本,但有的时候样本个数特别大,不适合逐一遍历作梯度下降。此时我们就可以将样本划分若干子集,对子集进行遍历,针对每一个子集进行梯度下降,更新参数。MiniBatchSize是每个子集内样本个数,最小是1,最大是全部样本个数。
序列长度(SequenceLength):“最长”-每个小批中的Pad序列具有与最长序列相同的长度。除此之外还有:‘shortest’—截断每个小批中的序列,使其长度与最短序列相同。‘positive integer’—每个小批量的序列具有与最长序列相同的长度,然后分割成指定长度的较小序列。如果发生分裂,则该函数创建额外的小批。
乱序(Shuffle):'never’不打乱数据。除此之外还有:'once’在训练之前,对训练和验证数据进行一次洗牌、'every-epoch’在每个训练轮次之前洗牌训练数据。