双向长短期记忆(BiLSTM)层
双向LSTM (BiLSTM)层学习时间序列或序列数据的时间步长之间的双向长期依赖关系。当您希望网络从每个时间步长的完整时间序列中学习时,这些依赖关系可能很有用。
创建一个双向LSTM层,并设置层
NumHiddenUnits
设置额外的层
OutputMode
名字
NumHiddenUnits
- - - - - -隐藏单元数(也称为隐藏大小),指定为正整数。 隐藏单元的数量对应于时间步骤之间记住的信息量(隐藏状态)。隐藏状态可以包含来自之前所有时间步骤的信息,而不管序列长度如何。如果隐藏单元的数量太大,那么该层可能会过度拟合训练数据。这个值可以从几十到几千不等。 隐藏状态不限制在迭代中处理的时间步数。要将您的序列拆分为更小的序列进行训练,请使用 例子:“SequenceLength”
trainingOptions
OutputMode
- - - - - -“序列”
(默认)|“最后一次”
输出模式,指定为以下之一:
“序列”
“最后一次”
HasStateInputs
- - - - - -0(假)(默认)|1(真正的)
层的状态输入标志,指定为 如果 如果
HasStateOutputs
- - - - - -0(假)(默认)|1(真正的)
层的状态输出标志,指定为 如果 如果
InputSize
- - - - - -“汽车”
(默认)|输入大小,指定为正整数或 例子:
StateActivationFunction
- - - - - -的双曲正切
(默认)|“softsign”
激活函数用于更新单元格和隐藏状态,指定为以下之一: 层使用这个选项作为函数
的双曲正切
“softsign”
GateActivationFunction
- - - - - -“乙状结肠”
(默认)|“hard-sigmoid”
激活函数应用于闸门,指定为以下之一:
层使用这个选项作为函数
“乙状结肠”
“hard-sigmoid”
CellState
- - - - - -在层操作中使用的单元格状态,指定为 手动设置此属性后,调用 如果
HiddenState
- - - - - -在层操作中使用的隐藏状态,指定为a 手动设置此属性后,调用 如果
InputWeightsInitializer
- - - - - -“glorot”
(默认)|“他”
“正交”
“narrow-normal”|“零”|“的”|函数处理
函数初始化输入权重,指定为以下之一: 函数句柄-使用自定义函数初始化输入权重。如果指定函数句柄,则该函数必须为 层只初始化输入权重 数据类型:
“glorot”
“他”
“正交”
“narrow-normal”
“零”
“的”
字符
RecurrentWeightsInitializer
- - - - - -“正交”
(默认)|“glorot”
“他”
“narrow-normal”|“零”|“的”|函数处理
函数初始化循环权值,指定为以下之一: 函数句柄-使用自定义函数初始化循环权重。如果指定函数句柄,则该函数必须为 层只初始化循环权值 数据类型:
“正交”
“glorot”
“他”
“narrow-normal”
“零”
“的”
字符
BiasInitializer
- - - - - -“unit-forget-gate”
(默认)|“narrow-normal”
“的”
函数初始化偏置,指定为以下之一: 函数句柄-用自定义函数初始化偏差。如果指定函数句柄,则该函数必须为 层只初始化偏差,当 数据类型:
“unit-forget-gate”
“narrow-normal”
“的”
字符
InputWeights
- - - - - -[]
(默认)|输入权重,指定为矩阵。 输入权矩阵是双向LSTM层中组件(门)的八个输入权矩阵的串联。这8个矩阵按以下顺序垂直连接: 输入门(正向) 忘记门(向前) Cell候选者(Forward) 输出门(正向) 输入门(反向) 忘记门(向后) 候选细胞(反向) 输出门(反向) 输入权值是可学习的参数。在训练网络时,如果 在训练时,
trainNetwork
RecurrentWeights
- - - - - -[]
(默认)|循环权值,用矩阵表示。 循环权矩阵是双向LSTM层中组件(门)的八个循环权矩阵的串联。这8个矩阵按以下顺序垂直连接: 输入门(正向) 忘记门(向前) Cell候选者(Forward) 输出门(正向) 输入门(反向) 忘记门(向后) 候选细胞(反向) 输出门(反向) 循环权值是可学习的参数。在训练网络时,如果 在训练时,
trainNetwork
偏见
- - - - - -[]
(默认)|层偏差,指定为数值向量。 偏置向量是双向LSTM层中组件(门)的八个偏置向量的串联。这八个向量按以下顺序垂直连接: 输入门(正向) 忘记门(向前) Cell候选者(Forward) 输出门(正向) 输入门(反向) 忘记门(向后) 候选细胞(反向) 输出门(反向) 层偏差是可学习的参数。当你训练一个网络时,如果 在训练时,
trainNetwork
InputWeightsLearnRateFactor
- - - - - -输入权重的学习率因子,指定为数字标量或1 × 8数字向量。 软件将该因子乘以全局学习率,以确定该层输入权重的学习率因子。例如,如果 控制中四个单独矩阵的学习率因子的值 输入门(正向) 忘记门(向前) Cell候选者(Forward) 输出门(正向) 输入门(反向) 忘记门(向后) 候选细胞(反向) 输出门(反向) 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子:trainingOptions
0.1
RecurrentWeightsLearnRateFactor
- - - - - -周期性权重的学习率因子,指定为数字标量或1 × 8数字向量。 软件将这个因子乘以全局学习率来确定层的循环权值的学习率。例如,如果 控制中四个单独矩阵的学习率值 输入门(正向) 忘记门(向前) Cell候选者(Forward) 输出门(正向) 输入门(反向) 忘记门(向后) 候选细胞(反向) 输出门(反向) 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
0.1
[1 2 1 1 1 2 1 1]
BiasLearnRateFactor
- - - - - -偏差的学习率因子,指定为非负标量或1 × 8数值向量。 软件将这个因子乘以全局学习率来确定这一层偏差的学习率。例如,如果 控制中四个单独矩阵的学习率因子的值 输入门(正向) 忘记门(向前) Cell候选者(Forward) 输出门(正向) 输入门(反向) 忘记门(向后) 候选细胞(反向) 输出门(反向) 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
2
[1 2 1 1 1 2 1 1]
InputWeightsL2Factor
- - - - - -输入权重的L2正则化因子,指定为数字标量或1 × 8数字向量。 软件将此因子乘以全局L2正则化因子,以确定该层输入权重的L2正则化因子。例如,如果 中的四个单独矩阵的L2正则化因子的值 输入门(正向) 忘记门(向前) Cell候选者(Forward) 输出门(正向) 输入门(反向) 忘记门(向后) 候选细胞(反向) 输出门(反向) 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
0.1
[1 2 1 1 1 2 1 1]
RecurrentWeightsL2Factor
- - - - - -用于循环权值的L2正则化因子,指定为数字标量或1 × 8数字向量。 软件将此因子乘以全局L2正则化因子,以确定该层的循环权重的L2正则化因子。例如,如果 中的四个单独矩阵的L2正则化因子的值 输入门(正向) 忘记门(向前) Cell候选者(Forward) 输出门(正向) 输入门(反向) 忘记门(向后) 候选细胞(反向) 输出门(反向) 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
0.1
[1 2 1 1 1 2 1 1]
BiasL2Factor
- - - - - -偏差的L2正则化因子,指定为非负标量。 软件将这个因子乘以全局 中的四个单独矩阵的L2正则化因子的值 输入门(正向) 忘记门(向前) Cell候选者(Forward) 输出门(正向) 输入门(反向) 忘记门(向后) 候选细胞(反向) 输出门(反向) 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
2
[1 2 1 1 1 2 1 1]
名字
- - - - - -”
(默认)|图层名称,指定为字符向量或字符串标量。为
数据类型:字符
NumInputs
- - - - - -1
|3.
层的输入数。 如果 如果 数据类型:双
InputNames
- - - - - -{'在'}
|{‘在’,‘隐藏’,‘细胞’}
输入图层的名称。 如果 如果
NumOutputs
- - - - - -1
|3.
层的输出数量。 如果 如果 数据类型:双
OutputNames
- - - - - -{“出”}
|{‘出来’,‘隐藏’,‘细胞’}
输出图层的名称。 如果 如果
创建一个名称为的双向LSTM层 包含一个双向LSTM层layer = bilstmLayer(100;
layer = BiLSTMLayer with properties: Name: 'bilstm1' InputNames: {'in'} OutputNames: {'out'} NumInputs: 1 NumOutputs: 1 HasStateInputs: 0 HasStateOutputs: 0 Hyperparameters InputSize: 'auto' NumHiddenUnits: 100 OutputMode: 'sequence' StateActivationFunction: 'tanh' GateActivationFunction: 'sigmoid' Learnable Parameters InputWeights: [] RecurrentWeights: [] Bias: [] State Parameters HiddenState: [] CellState:[]显示所有属性
inputSize = 12;numHiddenUnits = 100;numClasses = 9;图层= [
层= 5x1层阵列层:1“序列输入序列输入12维2”BiLSTM BiLSTM有100个隐藏单元3“全连接9全连接层4“Softmax Softmax 5”分类输出交叉
层数组或层图中的层传递指定为格式化的数据 你可以与它们交互 下表显示了支持的输入格式金宝app 在 中使用这些输入格式 如果 如果
输入格式 OutputMode
输出格式
“认知行为治疗”
“序列”
“认知行为治疗”
“最后一次”
“CB”
输入格式 OutputMode
输出格式
“SCBT”
“序列”
“认知行为治疗”
“最后一次”
“CB”
“SSCBT”
“序列”
“认知行为治疗”
“最后一次”
“CB”
“SSSCBT”
“序列”
“认知行为治疗”
“最后一次”
“CB”
行为在R2019a中改变
从R2019a开始,软件默认使用gloot初始化器初始化该层的层输入权重。这种行为有助于稳定训练,通常减少深度网络的训练时间。 在以前的版本中,默认情况下,软件使用从平均值为零,方差为0.01的正态分布中抽样来初始化层输入权重。要重现此行为,请设置
行为在R2019a中改变
从R2019a开始,软件默认将该层的层循环权值初始化为 在以前的版本中,默认情况下,该软件使用从平均值为零,方差为0.01的正态分布中抽样来初始化层循环权重。要重现此行为,请设置
格罗洛特、泽维尔和约书亚·本吉奥。“理解训练深度前馈神经网络的难度。”在
[10]何凯,张翔宇,任少卿,孙健。“深入研究整流器:在ImageNet分类上超越人类水平的表现。”在
[3] Saxe, Andrew M, James L. McClelland和Surya Ganguli。"深度线性神经金宝搏官方网站网络中学习的非线性动力学的精确解"
使用注意事项和限制:
使用Intel生成代码时 的 的 的
使用注意事项和限制: 对于GPU代码生成 对于GPU代码生成 的
trainingOptions
|trainNetwork
|sequenceInputLayer
|lstmLayer
|gruLayer
|convolution1dLayer
|maxPooling1dLayer
|averagePooling1dLayer
|globalMaxPooling1dLayer
|globalAveragePooling1dLayer
在MATLAB中编写了一种常用的求解方法: Esegui将在MATLAB中执行编译。I浏览器网页不支持命令MATLAB。金宝app
选择一个网站获取翻译后的内容,并查看当地的活动和优惠。根据您所在的位置,我们建议您选择:
你亦可选择下列网址: 选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。如何获得最佳的网站性能
欧洲