双向长短期存储器(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
- - - - - -在层操作中使用的隐藏状态,指定为 属性手动设置此属性后,调用 如果
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 candidate (Forward) 输出门(正向) 输入门(向后) 遗忘之门(向后) Cell candidate(向后) 输出门(向后) 输入权重是可学习的参数。当训练一个网络时,如果 在训练时,
trainNetwork
RecurrentWeights
- - - - - -[]
(默认)|循环权值,用矩阵表示。 递归权矩阵是双向LSTM层中组件(门)的八个递归权矩阵的串联。8个矩阵按以下顺序垂直连接: 输入门(正向) 遗忘门(向前) Cell candidate (Forward) 输出门(正向) 输入门(向后) 遗忘之门(向后) Cell candidate(向后) 输出门(向后) 循环权值是可学习的参数。当训练一个网络时,如果 在训练时,
trainNetwork
偏见
- - - - - -[]
(默认)|层偏置,指定为数值向量。 偏压向量是双向LSTM层中组件(门)的八个偏压向量的拼接。8个向量按以下顺序垂直连接: 输入门(正向) 遗忘门(向前) Cell candidate (Forward) 输出门(正向) 输入门(向后) 遗忘之门(向后) Cell candidate(向后) 输出门(向后) 层偏差是可学习参数。当你训练一个网络时,如果 在训练时,
trainNetwork
InputWeightsLearnRateFactor
- - - - - -输入权重的学习率因子,指定为数值标量或1 × 8数值向量。 该软件将该因子乘以全局学习率,以确定该层输入权重的学习率因子。例如,如果 中四个单独矩阵的学习率因子的值 输入门(正向) 遗忘门(向前) Cell candidate (Forward) 输出门(正向) 输入门(向后) 遗忘之门(向后) Cell candidate(向后) 输出门(向后) 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子:trainingOptions
0.1
RecurrentWeightsLearnRateFactor
- - - - - -循环权重的学习率因子,指定为数值标量或1 × 8数值向量。 该软件将该因子乘以全局学习率,以确定该层的循环权重的学习率。例如,如果 控件中四个单独矩阵的学习率值 输入门(正向) 遗忘门(向前) Cell candidate (Forward) 输出门(正向) 输入门(向后) 遗忘之门(向后) Cell candidate(向后) 输出门(向后) 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
0.1
[1 2 1 1 1 1 2 1 1]
BiasLearnRateFactor
- - - - - -偏差的学习率因子,指定为非负标量或1 × 8数值向量。 该软件将该因子乘以全局学习率,以确定该层偏差的学习率。例如,如果 中四个单独矩阵的学习率因子的值 输入门(正向) 遗忘门(向前) Cell candidate (Forward) 输出门(正向) 输入门(向后) 遗忘之门(向后) Cell candidate(向后) 输出门(向后) 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
2
[1 2 1 1 1 1 2 1 1]
InputWeightsL2Factor
- - - - - -输入权重的L2正则化因子,指定为数值标量或1 × 8数值向量。 该软件将该因子乘以全局L2正则化因子,以确定该层输入权重的L2正则化因子。例如,如果 中四个单独矩阵的L2正则化因子的值 输入门(正向) 遗忘门(向前) Cell candidate (Forward) 输出门(正向) 输入门(向后) 遗忘之门(向后) Cell candidate(向后) 输出门(向后) 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
0.1
[1 2 1 1 1 1 2 1 1]
RecurrentWeightsL2Factor
- - - - - -用于循环权重的L2正则化因子,指定为数值标量或1 × 8数值向量。 该软件将该因子乘以全局L2正则化因子,以确定该层的循环权重的L2正则化因子。例如,如果 中四个单独矩阵的L2正则化因子的值 输入门(正向) 遗忘门(向前) Cell candidate (Forward) 输出门(正向) 输入门(向后) 遗忘之门(向后) Cell candidate(向后) 输出门(向后) 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
0.1
[1 2 1 1 1 1 2 1 1]
BiasL2Factor
- - - - - -偏差的L2正则化因子,指定为非负标量。 软件将这个因子乘以全局 中四个单独矩阵的L2正则化因子的值 输入门(正向) 遗忘门(向前) Cell candidate (Forward) 输出门(正向) 输入门(向后) 遗忘之门(向后) Cell candidate(向后) 输出门(向后) 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
2
[1 2 1 1 1 1 2 1 1]
的名字
- - - - - -”
(默认)|层名,指定为字符向量或字符串标量。为
数据类型:字符
NumInputs
- - - - - -1
|3.
该层的输入数量。 如果 如果 数据类型:双
InputNames
- - - - - -{'在'}
|{‘在’,‘隐藏’,‘细胞’}
输入层的名称。 如果 如果
NumOutputs
- - - - - -1
|3.
层的输出数量。 如果 如果 数据类型:双
OutputNames
- - - - - -{“出”}
|{‘出来’,‘隐藏’,‘细胞’}
输出层的名称。 如果 如果
创建一个双向LSTM层 中包含双向LSTM层层= bilstmLayer
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' statactivationfunction: 'tanh' GateActivationFunction: 'sigmoid' Learnable Parameters inputwights: [] recurrentwights: [] Bias: [] State Parameters HiddenState: [] CellState:[]显示所有属性
inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= [
2”BiLSTM BiLSTM与100个隐藏单元3”全连接9全连接层4”Softmax Softmax 5”分类输出crossentropyex
层数组或层图中的层传递指定为格式化的数据 你可以与它们交互 支持的输入格式金宝app 在 中使用这些输入格式 如果 如果
输入格式 OutputMode
输出格式
“认知行为治疗”
“序列”
“认知行为治疗”
“最后一次”
“CB”
输入格式 OutputMode
输出格式
“SCBT”
“序列”
“认知行为治疗”
“最后一次”
“CB”
“SSCBT”
“序列”
“认知行为治疗”
“最后一次”
“CB”
“SSSCBT”
“序列”
“认知行为治疗”
“最后一次”
“CB”
R2019a的行为发生了变化
从R2019a开始,默认情况下,软件使用Glorot初始化器初始化该层的层输入权重。这种行为有助于稳定训练,通常会减少深度网络的训练时间。 在以前的版本中,软件在默认情况下,使用从均值为零,方差为0.01的正态分布中采样来初始化层输入权重。要重现此行为,请设置
R2019a的行为发生了变化
从R2019a开始,默认情况下,软件初始化该层的层循环权值为 在以前的版本中,软件在默认情况下,通过从均值为零,方差为0.01的正态分布中采样来初始化层循环权重。要重现此行为,请设置
格洛洛特,泽维尔,还有约书亚·本吉奥。《理解深度前馈神经网络训练的难度》在
[2]何开明,张翔宇,任少卿,孙健。“深入研究整流器:在ImageNet分类上超越人类水平的性能。”在
Saxe, Andrew M., James L. McClelland, Surya Ganguli。“深度线性神经金宝搏官方网站网络中非线性学习动力学的精确解。”
使用注意事项和限制:
当用Intel生成代码时 的 的 的
使用注意事项和限制: 对于GPU代码生成,使用 对于GPU代码生成,使用 的
trainingOptions
|trainNetwork
|sequenceInputLayer
|lstmLayer
|gruLayer
|convolution1dLayer
|maxPooling1dLayer
|averagePooling1dLayer
|globalMaxPooling1dLayer
|globalAveragePooling1dLayer
你点击了一个对应于这个MATLAB命令的链接: 在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在可用的地方获得翻译的内容,并查看当地的活动和优惠。根据您所在的位置,我们建议您选择:
您也可以从以下列表中选择一个网站: 选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。如何获得最佳的网站性能
欧洲