lstmLayer
长短期记忆(LSTM)层
描述
LSTM层长期学习时间步骤时间序列和序列数据之间的依赖关系。
层执行添加剂的相互作用,可以帮助改善梯度流长序列在训练。
创建
属性
LSTM
NumHiddenUnits
- - - - - -隐藏的数量单位
正整数
这个属性是只读的。
隐藏的数量单位(也称为隐藏的大小),指定为一个正整数。
隐藏的数量单位对应的信息量之间的层记得时间步骤(隐藏状态)。隐藏的状态可以包含信息从前面所有的时间步骤,不管序列长度。如果隐藏单位的数量太大,然后层可能overfit训练数据。
隐藏的状态不限制时间的数量层过程在一个迭代的步骤。将你的序列分割成更小的序列,当你使用trainNetwork功能,使用SequenceLength培训的选择。
层输出数据NumHiddenUnits频道。
数据类型:单|双|int8|int16|int32|int64|uint8|uint16|uint32|uint64
OutputMode
- - - - - -输出模式
“序列”
(默认)|“最后一次”
这个属性是只读的。
输出模式,指定这些值之一:
“序列”——输出完整的序列。
“最后一次”——输出序列的最后一次一步。
HasStateInputs
- - - - - -为输入层
0(假)(默认)|1(真正的)
这个属性是只读的。
国旗的国家输入层,指定为0(虚假的)或1(真正的)。
如果HasStateInputs属性是0(假),然后层有一个输入名称“在”,对应于输入数据。在这种情况下,层使用HiddenState和CellState属性层操作。
如果HasStateInputs属性是1(真正的),然后有三个输入层的名字“在”,“隐藏”,“细胞”对应于输入数据的隐藏状态,分别和细胞状态。在这种情况下,层使用的值传递给这些输入层操作。如果HasStateInputs是1(真正的),然后HiddenState和CellState属性必须是空的。
HasStateOutputs
- - - - - -国旗的国家输出层
0(假)(默认)|1(真正的)
这个属性是只读的。
国旗的国家输出层,指定为0(虚假的)或1(真正的)。
如果HasStateOutputs属性是0(假),然后有一个输出层的名字“出”对应的输出数据。
如果HasStateOutputs属性是1(真正的),然后有三个输出层的名字“出”,“隐藏”,“细胞”对应的输出数据,隐藏状态,分别和细胞状态。在这种情况下,该层还输出状态值计算。
InputSize
- - - - - -输入的大小
“汽车”
(默认)|正整数
这个属性是只读的。
输入大小,指定为一个正整数或“汽车”。如果InputSize是“汽车”软件自动分配,然后输入大小在训练时间。
数据类型:双|字符
激活
StateActivationFunction
- - - - - -激活函数来更新细胞和隐藏状态
的双曲正切
(默认)|“softsign”
这个属性是只读的。
激活函数来更新细胞和隐藏状态,指定这些值之一:
的双曲正切-使用双曲正切函数(双曲正切)。
“softsign”——使用softsign函数
。
层使用这个选项作为函数
在计算更新细胞和隐藏状态。更多信息在一个LSTM层如何使用激活函数,看看长期短期记忆层。
GateActivationFunction
- - - - - -激活函数适用于盖茨
“乙状结肠”
(默认)|“hard-sigmoid”
这个属性是只读的。
激活函数适用于盖茨,指定这些值之一:
“乙状结肠”——使用s形的函数
。
“hard-sigmoid”——使用硬乙状结肠函数
层使用这个选项作为函数
在计算层门。
状态
CellState
- - - - - -细胞状态
[]
(默认)|数值向量
细胞状态用于层操作,指定为一个NumHiddenUnits1数字向量。这个值对应于初始细胞状态时数据被传递到层。
手动设置该属性后,调用resetState这个值函数集细胞状态。
如果HasStateInputs是1(真正的),然后CellState属性必须是空的。
数据类型:单|双
HiddenState
- - - - - -隐藏状态
[]
(默认)|数值向量
隐藏的状态使用层操作,指定为一个NumHiddenUnits1数字向量。这个值对应于初始数据传递给层时隐藏状态。
手动设置该属性后,调用resetState函数设置隐藏状态到这个值。
如果HasStateInputs是1(真正的),然后HiddenState属性必须是空的。
数据类型:单|双
参数和初始化
InputWeightsInitializer
- - - - - -函数来初始化输入权重
“glorot”
(默认)|“他”
|“正交”
|“narrow-normal”|“零”|“的”|函数处理
函数初始化输入重量、指定为以下之一:
“glorot”——初始化输入权重Glorot初始值设定项[4](也称为Xavier初始化)。Glorot初始化样本独立均匀分布与零均值和方差2 / (InputSize + numOut),在那里numOut = 4 * NumHiddenUnits。
“他”——初始化输入权重的初始值设定项[5]。他初始化样本正态分布与零均值和方差2 / InputSize。
“正交”——初始化输入权重问正交矩阵的QR分解Z=问R对于一个随机矩阵Z抽样单位正态分布。[6]
“narrow-normal”——初始化输入权重独立抽样从正态分布与零均值和标准偏差0.01。
“零”——初始化输入权重与零。
“的”——初始化输入权重的。
函数处理——初始化输入自定义函数的权重。如果你指定一个函数处理,那么必须表单的功能重量= func(深圳),在那里深圳是输入权重的大小。
层时才初始化输入权重InputWeights属性是空的。
数据类型:字符|字符串|function_handle
RecurrentWeightsInitializer
- - - - - -函数来初始化权重复发
“正交”
(默认)|“glorot”
|“他”
|“narrow-normal”|“零”|“的”|函数处理
初始化函数周期性的权重,指定为以下之一:
“正交”——初始化权重与复发问正交矩阵的QR分解Z=问R对于一个随机矩阵Z抽样单位正态分布。[6]
“glorot”——初始化复发与Glorot初始化权重[4](也称为Xavier初始化)。Glorot初始化样本独立均匀分布与零均值和方差2 / (numIn + numOut),在那里numIn = NumHiddenUnits和numOut = 4 * NumHiddenUnits。
“他”——初始化权重与复发他初始化[5]。他初始化样本正态分布与零均值和方差2 / NumHiddenUnits。
“narrow-normal”——初始化复发的独立抽样权重正态分布与零均值和标准偏差0.01。
“零”——初始化复发与零权重。
“的”——初始化权重复发的。
函数处理,用自定义函数初始化权重复发。如果你指定一个函数处理,那么必须表单的功能重量= func(深圳),在那里深圳是复发性权重的大小。
层只初始化时的复发性权重RecurrentWeights属性是空的。
数据类型:字符|字符串|function_handle
BiasInitializer
- - - - - -函数来初始化倾向
“unit-forget-gate”
(默认)|“narrow-normal”
|“的”
|函数处理
函数来初始化倾向,指定这些值之一:
“unit-forget-gate”——初始化忘记门偏见的和剩下的偏见与零。
“narrow-normal”——初始化倾向独立抽样从正态分布与零均值和标准偏差为0.01。
“的”——初始化倾向。
函数处理与自定义函数——初始化倾向。如果你指定一个函数处理,那么必须表单的功能偏见= func(深圳),在那里深圳偏差的大小。
层时才初始化倾向偏见属性是空的。
数据类型:字符|字符串|function_handle
InputWeights
- - - - - -输入重量
[]
(默认)|矩阵
输入权值,指定为一个矩阵。
输入权重矩阵是一个串联的四个组件的输入权重矩阵(盖茨)LSTM层。四个矩阵连接垂直按照以下顺序:
输入门
忘记门
细胞的候选人
输出门
输入权重可学的参数。当你训练一个网络使用trainNetwork功能,如果InputWeights非空的,那么软件使用InputWeights属性的初始值。如果InputWeights是空的,那么软件使用初始化器指定的InputWeightsInitializer。
在培训时,InputWeights是一个4 * NumHiddenUnits——- - - - - -InputSize矩阵。
RecurrentWeights
- - - - - -复发性权重
[]
(默认)|矩阵
经常性的权重,指定为一个矩阵。
复发性权重矩阵是一个串联的四个组件(门)的复发性权重矩阵LSTM层。这四个矩阵是垂直连接按照以下顺序:
输入门
忘记门
细胞的候选人
输出门
复发性权重可学的参数。当你训练一个网络使用trainNetwork功能,如果RecurrentWeights非空的,那么软件使用RecurrentWeights属性的初始值。如果RecurrentWeights是空的,那么软件使用初始化器指定的RecurrentWeightsInitializer。
在训练时间RecurrentWeights是一个4 * NumHiddenUnits——- - - - - -NumHiddenUnits矩阵。
偏见
- - - - - -层的偏见
[]
(默认)|数值向量
层偏见,指定为一个数值向量。
偏差向量是一个串联的四个偏差向量(门)的组件层。四层垂直连接向量在这个顺序:
输入门
忘记门
细胞的候选人
输出门
层偏差是可学的参数。当你训练一个网络,如果偏见非空的,那么trainNetwork使用偏见属性的初始值。如果偏见是空的,然后trainNetwork使用指定的初始化程序BiasInitializer。
在培训时,偏见是一个4 * NumHiddenUnits1数字向量。
学习速率、正规化
InputWeightsLearnRateFactor
- - - - - -学习速率因子输入权重
1(默认)|负的标量|1-by-4数值向量
学习速率因子输入权值,指定为负的标量或1-by-4数值向量。
软件由全球学习速率繁殖这个因素来确定输入的学习速率因子层的权重。例如,如果InputWeightsLearnRateFactor是2,然后输入的学习速率因子层的权重是当前全球学习速率的两倍。全球软件决定了学习速率根据你指定的设置trainingOptions函数。
的值来控制四个人的学习速率因子矩阵InputWeights,指定一个1-by-4向量。的条目InputWeightsLearnRateFactor对应于这些组件的学习速率因子:
输入门
忘记门
细胞的候选人
输出门
为所有的矩阵指定相同的值,指定一个负的标量。
例子:2
例子:[1 2 1 1]
RecurrentWeightsLearnRateFactor
- - - - - -反复的学习速率因素权重
1(默认)|负的标量|1-by-4数值向量
反复的学习速率因素权重,指定为负的标量或1-by-4数值向量。
软件由全球学习速率繁殖这个因素来确定学习速率的复发性层的权重。例如,如果RecurrentWeightsLearnRateFactor是2,然后反复的学习速率层的权重是当前全球学习速率的两倍。全球学习速率决定了基于的软件设置您指定使用trainingOptions函数。
的值来控制四个人的学习速率因子矩阵RecurrentWeights,指定一个1-by-4向量。的条目RecurrentWeightsLearnRateFactor对应于这些组件的学习速率因子:
输入门
忘记门
细胞的候选人
输出门
为所有的矩阵指定相同的值,指定一个负的标量。
例子:2
例子:[1 2 1 1]
BiasLearnRateFactor
- - - - - -学习速率因子偏见
1(默认)|负的标量|1-by-4数值向量
学习速率因子的偏见,指定为负的标量或1-by-4数值向量。
软件由全球学习速率繁殖这个因素来确定学习速率的偏见在这一层。例如,如果BiasLearnRateFactor是2,那么学习速率的偏见层是当前全球学习速率的两倍。全球学习速率决定了基于的软件设置您指定使用trainingOptions函数。
的值来控制四个人的学习速率因子向量偏见,指定一个1-by-4向量。的条目BiasLearnRateFactor对应于这些组件的学习速率因子:
输入门
忘记门
细胞的候选人
输出门
为所有的向量指定相同的值,指定一个负的标量。
例子:2
例子:[1 2 1 1]
InputWeightsL2Factor
- - - - - -l2 正则化因子输入权重
1(默认)|负的标量|1-by-4数值向量
l2 正则化因子的输入权值,指定为负的标量或1-by-4数值向量。
全球的软件增加这个因素l2正则化因子来确定l2正则化因子输入层的权重。例如,如果InputWeightsL2Factor是2,那么l2正则化因子为输入层的权重是当前全球的两倍l2正则化因子。软件确定l2正则化因子的基础上,设置您指定使用trainingOptions函数。
控制的价值l2四个人矩阵正则化因子InputWeights,指定一个1-by-4向量。的条目InputWeightsL2Factor对应于l2这些组件的正则化因子:
输入门
忘记门
细胞的候选人
输出门
为所有的矩阵指定相同的值,指定一个负的标量。
例子:2
例子:[1 2 1 1]
RecurrentWeightsL2Factor
- - - - - -l2 复发性权重的正则化因素
1(默认)|负的标量|1-by-4数值向量
l2 复发性权重正则化因子,指定为负的标量或1-by-4数值向量。
全球的软件增加这个因素l2正则化因子来确定l2正则化因子的复发性层的权重。例如,如果RecurrentWeightsL2Factor是2,那么l2正则化因子的复发性权重层是当前全球的两倍l2正则化因子。软件确定l2正则化因子的基础上,设置您指定使用trainingOptions函数。
控制的价值l2四个人矩阵正则化因子RecurrentWeights,指定一个1-by-4向量。的条目RecurrentWeightsL2Factor对应于l2这些组件的正则化因子:
输入门
忘记门
细胞的候选人
输出门
为所有的矩阵指定相同的值,指定一个负的标量。
例子:2
例子:[1 2 1 1]
BiasL2Factor
- - - - - -l2 正则化因子的偏见
0(默认)|负的标量|1-by-4数值向量
l2 正则化因子的偏见,指定为负的标量或1-by-4数值向量。
全球的软件增加这个因素l2正则化因子来确定l2在这一层正规化的偏见。例如,如果BiasL2Factor是2,那么l2正规化的偏见这一层是全球的两倍l2正则化因子。决定了全球的软件l2正则化因子的基础上,设置您指定使用trainingOptions函数。
控制的价值l2正则化因子的四个人向量偏见,指定一个1-by-4向量。的条目BiasL2Factor对应于l2这些组件的正则化因子:
输入门
忘记门
细胞的候选人
输出门
为所有的向量指定相同的值,指定一个负的标量。
例子:2
例子:[1 2 1 1]
层
的名字
- - - - - -层的名字
”
(默认)|特征向量|字符串标量
图层名称,指定为一个特征向量或字符串标量。为层数组输入,trainNetwork,assembleNetwork,layerGraph,dlnetwork函数自动分配名称层的名称”。
数据类型:字符|字符串
NumInputs
- - - - - -输入数量
1
|3
这个属性是只读的。
数量的输入层。
如果HasStateInputs属性是0(假),然后层有一个输入名称“在”,对应于输入数据。在这种情况下,层使用HiddenState和CellState属性层操作。
如果HasStateInputs属性是1(真正的),然后有三个输入层的名字“在”,“隐藏”,“细胞”对应于输入数据的隐藏状态,分别和细胞状态。在这种情况下,层使用的值传递给这些输入层操作。如果HasStateInputs是1(真正的),然后HiddenState和CellState属性必须是空的。
数据类型:双
InputNames
- - - - - -输入名字
{'在'}
|{‘在’,‘隐藏’,‘细胞’}
这个属性是只读的。
输入层的名称。
如果HasStateInputs属性是0(假),然后层有一个输入名称“在”,对应于输入数据。在这种情况下,层使用HiddenState和CellState属性层操作。
如果HasStateInputs属性是1(真正的),然后有三个输入层的名字“在”,“隐藏”,“细胞”对应于输入数据的隐藏状态,分别和细胞状态。在这种情况下,层使用的值传递给这些输入层操作。如果HasStateInputs是1(真正的),然后HiddenState和CellState属性必须是空的。
NumOutputs
- - - - - -数量的输出
1
|3
这个属性是只读的。
数量的输出层。
如果HasStateOutputs属性是0(假),然后有一个输出层的名字“出”对应的输出数据。
如果HasStateOutputs属性是1(真正的),然后有三个输出层的名字“出”,“隐藏”,“细胞”对应的输出数据,隐藏状态,分别和细胞状态。在这种情况下,该层还输出状态值计算。
数据类型:双
OutputNames
- - - - - -输出的名字
{“出”}
|{‘出来’,‘隐藏’,‘细胞’}
这个属性是只读的。
输出层的名称。
如果HasStateOutputs属性是0(假),然后有一个输出层的名字“出”对应的输出数据。
如果HasStateOutputs属性是1(真正的),然后有三个输出层的名字“出”,“隐藏”,“细胞”对应的输出数据,隐藏状态,分别和细胞状态。在这种情况下,该层还输出状态值计算。
例子
创建LSTM层
创建一个LSTM层的名字“lstm1”和100年隐藏的单位。
层= lstmLayer (100“名字”,“lstm1”)
层= LSTMLayer属性:名称:“lstm1”InputNames: {’’} OutputNames:{“出”}NumInputs: 1 NumOutputs: 1 HasStateInputs: 0 HasStateOutputs: 0 Hyperparameters InputSize:“汽车”NumHiddenUnits: 100 OutputMode:“序列”StateActivationFunction:“双曲正切GateActivationFunction: InputWeights乙状结肠的可学的参数:[]RecurrentWeights:[]偏见:[]HiddenState状态参数:[]CellState:[]显示所有属性
包括一个LSTM层中层数组中。
inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= […sequenceInputLayer (inputSize) lstmLayer (numHiddenUnits) fullyConnectedLayer (numClasses) softmaxLayer classificationLayer]
层x1 = 5层阵列层:1“12维度2序列输入序列输入”LSTM LSTM 100隐藏单位3“完全连接9完全连接层4”Softmax Softmax crossentropyex 5”分类输出
网络训练序列的分类
火车深学习LSTM sequence-to-label网络分类。
加载描述的日本元音数据集[1]和[2]。XTrain是一个单元阵列包含270可变长度的序列有12个功能对应LPC倒谱系数。Y是标签的分类向量1,2,…,9。的条目XTrain与12行矩阵(为每个功能一行)和不同数量的列(每个时间步一列)。
[XTrain, YTrain] = japaneseVowelsTrainData;
可视化系列第一次在一个阴谋。每一行对应一个功能。
图绘制(XTrain{1}”)标题(“训练观察1”)numFeatures =大小(XTrain {1}, 1);传奇(“特性”+字符串(1:numFeatures),“位置”,“northeastoutside”)
定义LSTM网络体系结构。指定输入大小12(功能的输入数据的数量)。指定一个LSTM层有100个隐藏的单位和输出序列的最后一个元素。最后,指定9类包括一个完全连接层的9码,其次是softmax层和一层分类。
inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= […sequenceInputLayer inputSize lstmLayer (numHiddenUnits,“OutputMode”,“最后一次”)fullyConnectedLayer (numClasses) softmaxLayer classificationLayer]
层x1 = 5层阵列层:1“12维度2序列输入序列输入”LSTM LSTM 100隐藏单位3“完全连接9完全连接层4”Softmax Softmax crossentropyex 5”分类输出
指定培训选项。指定的解算器“亚当”和“GradientThreshold”为1。设置mini-batch大小27和设置时代的最大数量为70。
因为mini-batches小短序列,CPU更适合培训。集“ExecutionEnvironment”来“cpu”。火车在GPU,如果可用,集“ExecutionEnvironment”来“汽车”(默认值)。
maxEpochs = 70;miniBatchSize = 27个;选择= trainingOptions (“亚当”,…“ExecutionEnvironment”,“cpu”,…“MaxEpochs”maxEpochs,…“MiniBatchSize”miniBatchSize,…“GradientThreshold”,1…“详细”假的,…“阴谋”,“训练进步”);
火车LSTM网络培训指定的选项。
网= trainNetwork (XTrain、YTrain层,选择);
测试集和分类序列加载到扬声器。
[XTest,欧美]= japaneseVowelsTestData;
测试数据进行分类。指定相同的mini-batch大小用于培训。
XTest YPred =分类(净,“MiniBatchSize”,miniBatchSize);
计算预测的分类精度。
acc = (YPred = =欧美)。/元素个数(欧美)
acc = 0.9459
分类LSTM网络
创建一个LSTM sequence-to-label分类网络,创建数组包含一个序列输入层,一层一层LSTM,完全连接层,softmax层和输出层分类。
组的大小顺序输入层特性的输入数据的数量。设置大小完全连接层的类的数量。你不需要指定序列长度。
对于LSTM层,指定隐藏单位的数量和输出模式“最后一次”。
numFeatures = 12;numHiddenUnits = 100;numClasses = 9;层= […sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“OutputMode”,“最后一次”)fullyConnectedLayer (numClasses) softmaxLayer classificationLayer];
为一个例子,演示如何为sequence-to-label培训LSTM网络分类和分类新数据,看到的使用深度学习序列分类。
创建一个LSTM sequence-to-sequence网络分类,使用相同的架构对于sequence-to-label分类,但LSTM层的设置输出模式“序列”。
numFeatures = 12;numHiddenUnits = 100;numClasses = 9;层= […sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“OutputMode”,“序列”)fullyConnectedLayer (numClasses) softmaxLayer classificationLayer];
回归LSTM网络
创建一个LSTM sequence-to-one回归网络,创建数组包含一个序列输入层,一层一层LSTM,完全连接层和回归输出层。
组的大小顺序输入层特性的输入数据的数量。完全连接层的大小设置为响应的数量。你不需要指定序列长度。
对于LSTM层,指定隐藏单位的数量和输出模式“最后一次”。
numFeatures = 12;numHiddenUnits = 125;numResponses = 1;层= […sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“OutputMode”,“最后一次”)fullyConnectedLayer (numResponses) regressionLayer];
创建一个LSTM sequence-to-sequence回归网络使用相同的架构对于sequence-to-one回归,但LSTM层的设置输出模式“序列”。
numFeatures = 12;numHiddenUnits = 125;numResponses = 1;层= […sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“OutputMode”,“序列”)fullyConnectedLayer (numResponses) regressionLayer];
为一个例子,演示如何训练一个LSTM网络sequence-to-sequence回归和预测新数据,看到的使用深度学习Sequence-to-Sequence回归。
更深层次的LSTM网络
你可以更深的插入额外的LSTM LSTM网络层与输出模式“序列”之前LSTM层。为了防止过度拟合,可以插入后辍学层LSTM层。
sequence-to-label分类网络,输出模式的最后LSTM层必须“最后一次”。
numFeatures = 12;numHiddenUnits1 = 125;numHiddenUnits2 = 100;numClasses = 9;层= […sequenceInputLayer numFeatures lstmLayer (numHiddenUnits1,“OutputMode”,“序列”)dropoutLayer (0.2) lstmLayer (numHiddenUnits2“OutputMode”,“最后一次”)dropoutLayer (0.2) fullyConnectedLayer (numClasses) softmaxLayer classificationLayer];
sequence-to-sequence分类网络,输出模式的最后LSTM层必须“序列”。
numFeatures = 12;numHiddenUnits1 = 125;numHiddenUnits2 = 100;numClasses = 9;层= […sequenceInputLayer numFeatures lstmLayer (numHiddenUnits1,“OutputMode”,“序列”)dropoutLayer (0.2) lstmLayer (numHiddenUnits2“OutputMode”,“序列”)dropoutLayer (0.2) fullyConnectedLayer (numClasses) softmaxLayer classificationLayer];
算法
长期短期记忆层
LSTM层长期学习时间步骤时间序列和序列数据之间的依赖关系。
的层包含的状态隐藏状态(也被称为输出状态)和细胞状态。在时间步隐藏的状态t包含LSTM层的输出时间步。细胞状态包含信息从上一次的步骤。在每个时间步,图层添加或删除信息从细胞状态。层控制这些更新使用盖茨。
这些组件控制层的细胞状态和隐藏状态。
组件
目的
输入门(我)
控制水平的细胞状态更新
忘记门(f)
控制水平的细胞状态重置(忘记)
细胞的候选人(g)
添加信息到细胞状态
输出门(o)
控制水平的细胞状态添加到隐藏状态
这个图表说明了在时间步的数据流t。这个图展示了盖茨如何忘记,更新和输出单元和隐状态。
的可学的权重LSTM层输入权重W(InputWeights),复发性权重R(RecurrentWeights)和偏见b(偏见)。的矩阵W,R,b输入权重的串连,经常性的权重,分别和每个组件的偏见。根据这些层连接矩阵方程:
在哪里我,f,g,o表示输入门,忘记门,细胞的候选人,分别和输出门。
在时间步细胞状态t是由
在哪里
表示阿达玛产品(element-wise向量的乘法)。
在时间步隐藏的状态t是由
在哪里
表示状态的激活函数。默认情况下,lstmLayer函数使用双曲正切函数(双曲正切)计算状态激活函数。
这些公式描述的组件在时间步t。
组件
公式
输入门
忘记门
细胞的候选人
输出门
在这些计算,
表示门激活函数。默认情况下,lstmLayer函数,采用乙状结肠函数,给出的
为了计算门激活函数。
层的输入和输出格式
层一层一层数组或图后续层传递数据格式化dlarray对象。的格式dlarray对象是一个字符串,其中每个字符描述相应的维度的数据。这些字符的格式由一个或多个:
“S”——空间
“C”——频道
“B”——批
“T”——时间
“U”——未指明的
例如,二维图像数据表示成一个四维数组,第一个二维对应于图像的空间维度,第三维对应于图像的通道,第四个维度对应批维度,可以被描述为有格式“SSCB”(空间、空间、通道、批)。
你可以与这些交互dlarray对象等自动分化工作流开发一个自定义图层,使用functionLayer对象,或使用向前和预测功能与dlnetwork对象。
此表显示了支持输入格式金宝appLSTMLayer对象和相应的输出格式。如果输出层的传递给一个定制的层不继承nnet.layer.Formattable类,或FunctionLayer对象的Formattable属性设置为0(假),然后层接收未格式化dlarray对象的尺寸要求相应的这个表的格式。
输入格式
OutputMode
输出格式
“CB”(通道、批处理)
“序列”
“CB”(通道、批处理)
“最后一次”
“认知行为治疗”(通道、批量、时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“某人”(空间、批处理)
“序列”
“CB”(通道、批处理)
“最后一次”
在dlnetwork对象,LSTMLayer对象也支持这些输入和输出格金宝app式的组合。
输入格式
OutputMode
输出格式
“渣打银行”(空间、通道、批处理)
“序列”
“CB”(通道、批处理)
“最后一次”
“SSCB”(空间、空间、通道、批处理)
“序列”
“最后一次”
“SSSCB”(空间、空间、空间、通道、批处理)
“序列”
“最后一次”
“SCBT”(空间、通道、批量、时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“SSCBT”(空间、空间、通道、批处理时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“SSSCBT”(空间、空间、空间、通道、批处理时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“SC”(空间、通道)
“序列”
“铜”(未指明的通道)
“最后一次”
“SSC”(空间、空间、通道)
“序列”
“最后一次”
“SSSC”(空间、空间、空间、通道)
“序列”
“最后一次”
“CT”(通道、时间)
“序列”
“CT”(通道、时间)
“最后一次”
“铜”(未指明的通道)
“SCT”(空间、通道、时间)
“序列”
“CT”(通道、时间)
“最后一次”
“铜”(未指明的通道)
“SSCT”(空间、空间、通道、时间)
“序列”
“CT”(通道、时间)
“最后一次”
“铜”(未指明的通道)
“SSSCT”(空间、空间、通道、时间)
“序列”
“CT”(通道、时间)
“最后一次”
“铜”(未指明的通道)
“单边带”(空间、空间、批处理)
“序列”
“CB”(通道、批处理)
“最后一次”
“SSSB”(空间、空间、空间、批处理)
“序列”
“最后一次”
“转基因”(批量、时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“SBT”(空间、批量、时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“名为SSBT”(空间、空间、批量、时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“SSSBT”(空间、空间、空间、批处理时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
使用这些输入格式trainNetwork工作流转换数据“CB”(通道、批处理)“认知行为治疗”(通道、批量、时间)格式使用flattenLayer。
如果HasStateInputs属性是1(真正的),然后层有两个额外的输入名称“隐藏”和“细胞”,隐藏状态和细胞状态相对应,分别。这些额外的输入期望的输入格式“CB”(频道,批处理)。
如果HasStateOutputs属性是1(真正的),然后用名字层有两个额外的输出“隐藏”和“细胞”,隐藏状态和细胞状态相对应,分别。这些额外的输出输出格式“CB”(频道,批处理)。
引用
[1]m .奖赏,富山,和m . Shimbo。“多维曲线分类使用通过地区。”模式识别的字母。11 - 13号20卷,第1111 - 1103页。
[2]UCI机器学习库:日本元音数据集。https://archive.ics.uci.edu/ml/datasets/Japanese +元音
[3]Hochreiter S, 1997,的j。施密德胡贝尔表示。短期记忆。神经计算,9 (8),pp.1735 - 1780。
[4]Glorot,泽维尔,Yoshua Bengio。“理解的难度训练前馈神经网络。”在《十三人工智能国际会议上和统计,249 - 356。意大利撒丁岛:AISTATS, 2010。
[5],他开明、象屿张任Shaoqing,剑太阳。“深深入整流器:超越人类表现ImageNet分类。”在学报2015年IEEE计算机视觉国际会议,1026 - 1034。华盛顿特区:IEEE计算机视觉的社会,2015年。
[6]萨克斯,安德鲁·M。,James L. McClelland, and Surya Ganguli. "Exact solutions to the nonlinear dynamics of learning in deep linear neural networks."arXiv预印本arXiv: 1312.6120(2013)。
扩展功能
C / c++代码生成生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
在生成代码与英特尔®MKL-DNN:
的StateActivationFunction属性必须设置为的双曲正切。
的GateActivationFunction属性必须设置为“乙状结肠”。
的HasStateInputs和HasStateOutputs属性必须设置为0(假)。
GPU的代码生成生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。
使用笔记和限制:
GPU代码生成的StateActivationFunction属性必须设置为的双曲正切。
GPU代码生成的GateActivationFunction属性必须设置为“乙状结肠”。
的HasStateInputs和HasStateOutputs属性必须设置为0(假)。
版本历史
介绍了R2017b
R2019a:默认的输入权值初始化Glorot
从R2019a开始,软件,默认情况下,初始化层使用Glorot初始化输入这一层的权重。这种行为可以帮助稳定培训和通常减少深层网络的训练时间。
在以前的版本中,软件,默认情况下,初始化层输入使用的抽样权重0.01零均值和方差的正态分布。复制这种行为,设置“InputWeightsInitializer”层的选项“narrow-normal”。
R2019a:默认复发性权重的初始化是正交的
从R2019a开始,软件,默认情况下,初始化这一层的层的权重问正交矩阵的QR分解Z=问R对于一个随机矩阵Z抽样单位正态分布。这种行为可以帮助稳定培训和通常减少深层网络的训练时间。
在以前的版本中,软件,默认情况下,初始化层反复使用的抽样权重0.01零均值和方差的正态分布。复制这种行为,设置“RecurrentWeightsInitializer”层的选项“narrow-normal”。
长短期记忆(LSTM)层
描述
LSTM层长期学习时间步骤时间序列和序列数据之间的依赖关系。
层执行添加剂的相互作用,可以帮助改善梯度流长序列在训练。
LSTM层长期学习时间步骤时间序列和序列数据之间的依赖关系。
层执行添加剂的相互作用,可以帮助改善梯度流长序列在训练。
创建
属性
LSTM
NumHiddenUnits
- - - - - -隐藏的数量单位
正整数
这个属性是只读的。
隐藏的数量单位(也称为隐藏的大小),指定为一个正整数。
隐藏的数量单位对应的信息量之间的层记得时间步骤(隐藏状态)。隐藏的状态可以包含信息从前面所有的时间步骤,不管序列长度。如果隐藏单位的数量太大,然后层可能overfit训练数据。
隐藏的状态不限制时间的数量层过程在一个迭代的步骤。将你的序列分割成更小的序列,当你使用trainNetwork功能,使用SequenceLength培训的选择。
层输出数据NumHiddenUnits频道。
数据类型:单|双|int8|int16|int32|int64|uint8|uint16|uint32|uint64
OutputMode
- - - - - -输出模式
“序列”
(默认)|“最后一次”
这个属性是只读的。
输出模式,指定这些值之一:
“序列”——输出完整的序列。
“最后一次”——输出序列的最后一次一步。
HasStateInputs
- - - - - -为输入层
0(假)(默认)|1(真正的)
这个属性是只读的。
国旗的国家输入层,指定为0(虚假的)或1(真正的)。
如果HasStateInputs属性是0(假),然后层有一个输入名称“在”,对应于输入数据。在这种情况下,层使用HiddenState和CellState属性层操作。
如果HasStateInputs属性是1(真正的),然后有三个输入层的名字“在”,“隐藏”,“细胞”对应于输入数据的隐藏状态,分别和细胞状态。在这种情况下,层使用的值传递给这些输入层操作。如果HasStateInputs是1(真正的),然后HiddenState和CellState属性必须是空的。
HasStateOutputs
- - - - - -国旗的国家输出层
0(假)(默认)|1(真正的)
这个属性是只读的。
国旗的国家输出层,指定为0(虚假的)或1(真正的)。
如果HasStateOutputs属性是0(假),然后有一个输出层的名字“出”对应的输出数据。
如果HasStateOutputs属性是1(真正的),然后有三个输出层的名字“出”,“隐藏”,“细胞”对应的输出数据,隐藏状态,分别和细胞状态。在这种情况下,该层还输出状态值计算。
InputSize
- - - - - -输入的大小
“汽车”
(默认)|正整数
这个属性是只读的。
输入大小,指定为一个正整数或“汽车”。如果InputSize是“汽车”软件自动分配,然后输入大小在训练时间。
数据类型:双|字符
激活
StateActivationFunction
- - - - - -激活函数来更新细胞和隐藏状态
的双曲正切
(默认)|“softsign”
这个属性是只读的。
激活函数来更新细胞和隐藏状态,指定这些值之一:
的双曲正切-使用双曲正切函数(双曲正切)。
“softsign”——使用softsign函数
。
层使用这个选项作为函数
在计算更新细胞和隐藏状态。更多信息在一个LSTM层如何使用激活函数,看看长期短期记忆层。
GateActivationFunction
- - - - - -激活函数适用于盖茨
“乙状结肠”
(默认)|“hard-sigmoid”
这个属性是只读的。
激活函数适用于盖茨,指定这些值之一:
“乙状结肠”——使用s形的函数
。
“hard-sigmoid”——使用硬乙状结肠函数
层使用这个选项作为函数
在计算层门。
状态
CellState
- - - - - -细胞状态
[]
(默认)|数值向量
细胞状态用于层操作,指定为一个NumHiddenUnits1数字向量。这个值对应于初始细胞状态时数据被传递到层。
手动设置该属性后,调用resetState这个值函数集细胞状态。
如果HasStateInputs是1(真正的),然后CellState属性必须是空的。
数据类型:单|双
HiddenState
- - - - - -隐藏状态
[]
(默认)|数值向量
隐藏的状态使用层操作,指定为一个NumHiddenUnits1数字向量。这个值对应于初始数据传递给层时隐藏状态。
手动设置该属性后,调用resetState函数设置隐藏状态到这个值。
如果HasStateInputs是1(真正的),然后HiddenState属性必须是空的。
数据类型:单|双
参数和初始化
InputWeightsInitializer
- - - - - -函数来初始化输入权重
“glorot”
(默认)|“他”
|“正交”
|“narrow-normal”|“零”|“的”|函数处理
函数初始化输入重量、指定为以下之一:
“glorot”——初始化输入权重Glorot初始值设定项[4](也称为Xavier初始化)。Glorot初始化样本独立均匀分布与零均值和方差2 / (InputSize + numOut),在那里numOut = 4 * NumHiddenUnits。
“他”——初始化输入权重的初始值设定项[5]。他初始化样本正态分布与零均值和方差2 / InputSize。
“正交”——初始化输入权重问正交矩阵的QR分解Z=问R对于一个随机矩阵Z抽样单位正态分布。[6]
“narrow-normal”——初始化输入权重独立抽样从正态分布与零均值和标准偏差0.01。
“零”——初始化输入权重与零。
“的”——初始化输入权重的。
函数处理——初始化输入自定义函数的权重。如果你指定一个函数处理,那么必须表单的功能重量= func(深圳),在那里深圳是输入权重的大小。
层时才初始化输入权重InputWeights属性是空的。
数据类型:字符|字符串|function_handle
RecurrentWeightsInitializer
- - - - - -函数来初始化权重复发
“正交”
(默认)|“glorot”
|“他”
|“narrow-normal”|“零”|“的”|函数处理
初始化函数周期性的权重,指定为以下之一:
“正交”——初始化权重与复发问正交矩阵的QR分解Z=问R对于一个随机矩阵Z抽样单位正态分布。[6]
“glorot”——初始化复发与Glorot初始化权重[4](也称为Xavier初始化)。Glorot初始化样本独立均匀分布与零均值和方差2 / (numIn + numOut),在那里numIn = NumHiddenUnits和numOut = 4 * NumHiddenUnits。
“他”——初始化权重与复发他初始化[5]。他初始化样本正态分布与零均值和方差2 / NumHiddenUnits。
“narrow-normal”——初始化复发的独立抽样权重正态分布与零均值和标准偏差0.01。
“零”——初始化复发与零权重。
“的”——初始化权重复发的。
函数处理,用自定义函数初始化权重复发。如果你指定一个函数处理,那么必须表单的功能重量= func(深圳),在那里深圳是复发性权重的大小。
层只初始化时的复发性权重RecurrentWeights属性是空的。
数据类型:字符|字符串|function_handle
BiasInitializer
- - - - - -函数来初始化倾向
“unit-forget-gate”
(默认)|“narrow-normal”
|“的”
|函数处理
函数来初始化倾向,指定这些值之一:
“unit-forget-gate”——初始化忘记门偏见的和剩下的偏见与零。
“narrow-normal”——初始化倾向独立抽样从正态分布与零均值和标准偏差为0.01。
“的”——初始化倾向。
函数处理与自定义函数——初始化倾向。如果你指定一个函数处理,那么必须表单的功能偏见= func(深圳),在那里深圳偏差的大小。
层时才初始化倾向偏见属性是空的。
数据类型:字符|字符串|function_handle
InputWeights
- - - - - -输入重量
[]
(默认)|矩阵
输入权值,指定为一个矩阵。
输入权重矩阵是一个串联的四个组件的输入权重矩阵(盖茨)LSTM层。四个矩阵连接垂直按照以下顺序:
输入门
忘记门
细胞的候选人
输出门
输入权重可学的参数。当你训练一个网络使用trainNetwork功能,如果InputWeights非空的,那么软件使用InputWeights属性的初始值。如果InputWeights是空的,那么软件使用初始化器指定的InputWeightsInitializer。
在培训时,InputWeights是一个4 * NumHiddenUnits——- - - - - -InputSize矩阵。
RecurrentWeights
- - - - - -复发性权重
[]
(默认)|矩阵
经常性的权重,指定为一个矩阵。
复发性权重矩阵是一个串联的四个组件(门)的复发性权重矩阵LSTM层。这四个矩阵是垂直连接按照以下顺序:
输入门
忘记门
细胞的候选人
输出门
复发性权重可学的参数。当你训练一个网络使用trainNetwork功能,如果RecurrentWeights非空的,那么软件使用RecurrentWeights属性的初始值。如果RecurrentWeights是空的,那么软件使用初始化器指定的RecurrentWeightsInitializer。
在训练时间RecurrentWeights是一个4 * NumHiddenUnits——- - - - - -NumHiddenUnits矩阵。
偏见
- - - - - -层的偏见
[]
(默认)|数值向量
层偏见,指定为一个数值向量。
偏差向量是一个串联的四个偏差向量(门)的组件层。四层垂直连接向量在这个顺序:
输入门
忘记门
细胞的候选人
输出门
层偏差是可学的参数。当你训练一个网络,如果偏见非空的,那么trainNetwork使用偏见属性的初始值。如果偏见是空的,然后trainNetwork使用指定的初始化程序BiasInitializer。
在培训时,偏见是一个4 * NumHiddenUnits1数字向量。
学习速率、正规化
InputWeightsLearnRateFactor
- - - - - -学习速率因子输入权重
1(默认)|负的标量|1-by-4数值向量
学习速率因子输入权值,指定为负的标量或1-by-4数值向量。
软件由全球学习速率繁殖这个因素来确定输入的学习速率因子层的权重。例如,如果InputWeightsLearnRateFactor是2,然后输入的学习速率因子层的权重是当前全球学习速率的两倍。全球软件决定了学习速率根据你指定的设置trainingOptions函数。
的值来控制四个人的学习速率因子矩阵InputWeights,指定一个1-by-4向量。的条目InputWeightsLearnRateFactor对应于这些组件的学习速率因子:
输入门
忘记门
细胞的候选人
输出门
为所有的矩阵指定相同的值,指定一个负的标量。
例子:2
例子:[1 2 1 1]
RecurrentWeightsLearnRateFactor
- - - - - -反复的学习速率因素权重
1(默认)|负的标量|1-by-4数值向量
反复的学习速率因素权重,指定为负的标量或1-by-4数值向量。
软件由全球学习速率繁殖这个因素来确定学习速率的复发性层的权重。例如,如果RecurrentWeightsLearnRateFactor是2,然后反复的学习速率层的权重是当前全球学习速率的两倍。全球学习速率决定了基于的软件设置您指定使用trainingOptions函数。
的值来控制四个人的学习速率因子矩阵RecurrentWeights,指定一个1-by-4向量。的条目RecurrentWeightsLearnRateFactor对应于这些组件的学习速率因子:
输入门
忘记门
细胞的候选人
输出门
为所有的矩阵指定相同的值,指定一个负的标量。
例子:2
例子:[1 2 1 1]
BiasLearnRateFactor
- - - - - -学习速率因子偏见
1(默认)|负的标量|1-by-4数值向量
学习速率因子的偏见,指定为负的标量或1-by-4数值向量。
软件由全球学习速率繁殖这个因素来确定学习速率的偏见在这一层。例如,如果BiasLearnRateFactor是2,那么学习速率的偏见层是当前全球学习速率的两倍。全球学习速率决定了基于的软件设置您指定使用trainingOptions函数。
的值来控制四个人的学习速率因子向量偏见,指定一个1-by-4向量。的条目BiasLearnRateFactor对应于这些组件的学习速率因子:
输入门
忘记门
细胞的候选人
输出门
为所有的向量指定相同的值,指定一个负的标量。
例子:2
例子:[1 2 1 1]
InputWeightsL2Factor
- - - - - -l2 正则化因子输入权重
1(默认)|负的标量|1-by-4数值向量
l2 正则化因子的输入权值,指定为负的标量或1-by-4数值向量。
全球的软件增加这个因素l2正则化因子来确定l2正则化因子输入层的权重。例如,如果InputWeightsL2Factor是2,那么l2正则化因子为输入层的权重是当前全球的两倍l2正则化因子。软件确定l2正则化因子的基础上,设置您指定使用trainingOptions函数。
控制的价值l2四个人矩阵正则化因子InputWeights,指定一个1-by-4向量。的条目InputWeightsL2Factor对应于l2这些组件的正则化因子:
输入门
忘记门
细胞的候选人
输出门
为所有的矩阵指定相同的值,指定一个负的标量。
例子:2
例子:[1 2 1 1]
RecurrentWeightsL2Factor
- - - - - -l2 复发性权重的正则化因素
1(默认)|负的标量|1-by-4数值向量
l2 复发性权重正则化因子,指定为负的标量或1-by-4数值向量。
全球的软件增加这个因素l2正则化因子来确定l2正则化因子的复发性层的权重。例如,如果RecurrentWeightsL2Factor是2,那么l2正则化因子的复发性权重层是当前全球的两倍l2正则化因子。软件确定l2正则化因子的基础上,设置您指定使用trainingOptions函数。
控制的价值l2四个人矩阵正则化因子RecurrentWeights,指定一个1-by-4向量。的条目RecurrentWeightsL2Factor对应于l2这些组件的正则化因子:
输入门
忘记门
细胞的候选人
输出门
为所有的矩阵指定相同的值,指定一个负的标量。
例子:2
例子:[1 2 1 1]
BiasL2Factor
- - - - - -l2 正则化因子的偏见
0(默认)|负的标量|1-by-4数值向量
l2 正则化因子的偏见,指定为负的标量或1-by-4数值向量。
全球的软件增加这个因素l2正则化因子来确定l2在这一层正规化的偏见。例如,如果BiasL2Factor是2,那么l2正规化的偏见这一层是全球的两倍l2正则化因子。决定了全球的软件l2正则化因子的基础上,设置您指定使用trainingOptions函数。
控制的价值l2正则化因子的四个人向量偏见,指定一个1-by-4向量。的条目BiasL2Factor对应于l2这些组件的正则化因子:
输入门
忘记门
细胞的候选人
输出门
为所有的向量指定相同的值,指定一个负的标量。
例子:2
例子:[1 2 1 1]
层
的名字
- - - - - -层的名字
”
(默认)|特征向量|字符串标量
图层名称,指定为一个特征向量或字符串标量。为层数组输入,trainNetwork,assembleNetwork,layerGraph,dlnetwork函数自动分配名称层的名称”。
数据类型:字符|字符串
NumInputs
- - - - - -输入数量
1
|3
这个属性是只读的。
数量的输入层。
如果HasStateInputs属性是0(假),然后层有一个输入名称“在”,对应于输入数据。在这种情况下,层使用HiddenState和CellState属性层操作。
如果HasStateInputs属性是1(真正的),然后有三个输入层的名字“在”,“隐藏”,“细胞”对应于输入数据的隐藏状态,分别和细胞状态。在这种情况下,层使用的值传递给这些输入层操作。如果HasStateInputs是1(真正的),然后HiddenState和CellState属性必须是空的。
数据类型:双
InputNames
- - - - - -输入名字
{'在'}
|{‘在’,‘隐藏’,‘细胞’}
这个属性是只读的。
输入层的名称。
如果HasStateInputs属性是0(假),然后层有一个输入名称“在”,对应于输入数据。在这种情况下,层使用HiddenState和CellState属性层操作。
如果HasStateInputs属性是1(真正的),然后有三个输入层的名字“在”,“隐藏”,“细胞”对应于输入数据的隐藏状态,分别和细胞状态。在这种情况下,层使用的值传递给这些输入层操作。如果HasStateInputs是1(真正的),然后HiddenState和CellState属性必须是空的。
NumOutputs
- - - - - -数量的输出
1
|3
这个属性是只读的。
数量的输出层。
如果HasStateOutputs属性是0(假),然后有一个输出层的名字“出”对应的输出数据。
如果HasStateOutputs属性是1(真正的),然后有三个输出层的名字“出”,“隐藏”,“细胞”对应的输出数据,隐藏状态,分别和细胞状态。在这种情况下,该层还输出状态值计算。
数据类型:双
OutputNames
- - - - - -输出的名字
{“出”}
|{‘出来’,‘隐藏’,‘细胞’}
这个属性是只读的。
输出层的名称。
如果HasStateOutputs属性是0(假),然后有一个输出层的名字“出”对应的输出数据。
如果HasStateOutputs属性是1(真正的),然后有三个输出层的名字“出”,“隐藏”,“细胞”对应的输出数据,隐藏状态,分别和细胞状态。在这种情况下,该层还输出状态值计算。
LSTM
NumHiddenUnits
- - - - - -隐藏的数量单位
正整数
这个属性是只读的。
隐藏的数量单位(也称为隐藏的大小),指定为一个正整数。
隐藏的数量单位对应的信息量之间的层记得时间步骤(隐藏状态)。隐藏的状态可以包含信息从前面所有的时间步骤,不管序列长度。如果隐藏单位的数量太大,然后层可能overfit训练数据。
隐藏的状态不限制时间的数量层过程在一个迭代的步骤。将你的序列分割成更小的序列,当你使用trainNetwork功能,使用SequenceLength培训的选择。
层输出数据NumHiddenUnits频道。
数据类型:单|双|int8|int16|int32|int64|uint8|uint16|uint32|uint64
OutputMode
- - - - - -输出模式
“序列”
(默认)|“最后一次”
这个属性是只读的。
输出模式,指定这些值之一:
“序列”——输出完整的序列。
“最后一次”——输出序列的最后一次一步。
HasStateInputs
- - - - - -为输入层
0(假)(默认)|1(真正的)
这个属性是只读的。
国旗的国家输入层,指定为0(虚假的)或1(真正的)。
如果HasStateInputs属性是0(假),然后层有一个输入名称“在”,对应于输入数据。在这种情况下,层使用HiddenState和CellState属性层操作。
如果HasStateInputs属性是1(真正的),然后有三个输入层的名字“在”,“隐藏”,“细胞”对应于输入数据的隐藏状态,分别和细胞状态。在这种情况下,层使用的值传递给这些输入层操作。如果HasStateInputs是1(真正的),然后HiddenState和CellState属性必须是空的。
HasStateOutputs
- - - - - -国旗的国家输出层
0(假)(默认)|1(真正的)
这个属性是只读的。
国旗的国家输出层,指定为0(虚假的)或1(真正的)。
如果HasStateOutputs属性是0(假),然后有一个输出层的名字“出”对应的输出数据。
如果HasStateOutputs属性是1(真正的),然后有三个输出层的名字“出”,“隐藏”,“细胞”对应的输出数据,隐藏状态,分别和细胞状态。在这种情况下,该层还输出状态值计算。
InputSize
- - - - - -输入的大小
“汽车”
(默认)|正整数
这个属性是只读的。
输入大小,指定为一个正整数或“汽车”。如果InputSize是“汽车”软件自动分配,然后输入大小在训练时间。
数据类型:双|字符
NumHiddenUnits
- - - - - -隐藏的数量单位
正整数
正整数
这个属性是只读的。 隐藏的数量单位(也称为隐藏的大小),指定为一个正整数。 隐藏的数量单位对应的信息量之间的层记得时间步骤(隐藏状态)。隐藏的状态可以包含信息从前面所有的时间步骤,不管序列长度。如果隐藏单位的数量太大,然后层可能overfit训练数据。 隐藏的状态不限制时间的数量层过程在一个迭代的步骤。将你的序列分割成更小的序列,当你使用 层输出数据 数据类型:trainNetwork
SequenceLength
单
OutputMode
- - - - - -输出模式
“序列”
(默认)|“最后一次”
“序列”
(默认)|“最后一次”
这个属性是只读的。 输出模式,指定这些值之一:
“序列”
“最后一次”
HasStateInputs
- - - - - -为输入层
0(假)(默认)|1(真正的)
0(假)(默认)|1(真正的)
这个属性是只读的。 国旗的国家输入层,指定为 如果 如果
HasStateOutputs
- - - - - -国旗的国家输出层
0(假)(默认)|1(真正的)
0(假)(默认)|1(真正的)
这个属性是只读的。 国旗的国家输出层,指定为 如果 如果
InputSize
- - - - - -输入的大小
“汽车”
(默认)|正整数
“汽车”
(默认)|这个属性是只读的。 输入大小,指定为一个正整数或 数据类型:双
激活
StateActivationFunction
- - - - - -激活函数来更新细胞和隐藏状态
的双曲正切
(默认)|“softsign”
这个属性是只读的。
激活函数来更新细胞和隐藏状态,指定这些值之一:
的双曲正切-使用双曲正切函数(双曲正切)。
“softsign”——使用softsign函数
。
层使用这个选项作为函数
在计算更新细胞和隐藏状态。更多信息在一个LSTM层如何使用激活函数,看看长期短期记忆层。
GateActivationFunction
- - - - - -激活函数适用于盖茨
“乙状结肠”
(默认)|“hard-sigmoid”
这个属性是只读的。
激活函数适用于盖茨,指定这些值之一:
“乙状结肠”——使用s形的函数
。
“hard-sigmoid”——使用硬乙状结肠函数
层使用这个选项作为函数
在计算层门。
StateActivationFunction
- - - - - -激活函数来更新细胞和隐藏状态
的双曲正切
(默认)|“softsign”
的双曲正切
(默认)|“softsign”
这个属性是只读的。 激活函数来更新细胞和隐藏状态,指定这些值之一: 层使用这个选项作为函数
的双曲正切
“softsign”
GateActivationFunction
- - - - - -激活函数适用于盖茨
“乙状结肠”
(默认)|“hard-sigmoid”
“乙状结肠”
(默认)|“hard-sigmoid”
这个属性是只读的。 激活函数适用于盖茨,指定这些值之一:
层使用这个选项作为函数
“乙状结肠”
“hard-sigmoid”
状态
CellState
- - - - - -细胞状态
[]
(默认)|数值向量
细胞状态用于层操作,指定为一个NumHiddenUnits1数字向量。这个值对应于初始细胞状态时数据被传递到层。
手动设置该属性后,调用resetState这个值函数集细胞状态。
如果HasStateInputs是1(真正的),然后CellState属性必须是空的。
数据类型:单|双
HiddenState
- - - - - -隐藏状态
[]
(默认)|数值向量
隐藏的状态使用层操作,指定为一个NumHiddenUnits1数字向量。这个值对应于初始数据传递给层时隐藏状态。
手动设置该属性后,调用resetState函数设置隐藏状态到这个值。
如果HasStateInputs是1(真正的),然后HiddenState属性必须是空的。
数据类型:单|双
CellState
- - - - - -细胞状态
[]
(默认)|数值向量
[]
(默认)|细胞状态用于层操作,指定为一个 手动设置该属性后,调用 如果 数据类型:resetState
单
HiddenState
- - - - - -隐藏状态
[]
(默认)|数值向量
[]
(默认)|隐藏的状态使用层操作,指定为一个 手动设置该属性后,调用 如果 数据类型:resetState
单
参数和初始化
InputWeightsInitializer
- - - - - -函数来初始化输入权重
“glorot”
(默认)|“他”
|“正交”
|“narrow-normal”|“零”|“的”|函数处理
函数初始化输入重量、指定为以下之一:
“glorot”——初始化输入权重Glorot初始值设定项[4](也称为Xavier初始化)。Glorot初始化样本独立均匀分布与零均值和方差2 / (InputSize + numOut),在那里numOut = 4 * NumHiddenUnits。
“他”——初始化输入权重的初始值设定项[5]。他初始化样本正态分布与零均值和方差2 / InputSize。
“正交”——初始化输入权重问正交矩阵的QR分解Z=问R对于一个随机矩阵Z抽样单位正态分布。[6]
“narrow-normal”——初始化输入权重独立抽样从正态分布与零均值和标准偏差0.01。
“零”——初始化输入权重与零。
“的”——初始化输入权重的。
函数处理——初始化输入自定义函数的权重。如果你指定一个函数处理,那么必须表单的功能重量= func(深圳),在那里深圳是输入权重的大小。
层时才初始化输入权重InputWeights属性是空的。
数据类型:字符|字符串|function_handle
RecurrentWeightsInitializer
- - - - - -函数来初始化权重复发
“正交”
(默认)|“glorot”
|“他”
|“narrow-normal”|“零”|“的”|函数处理
初始化函数周期性的权重,指定为以下之一:
“正交”——初始化权重与复发问正交矩阵的QR分解Z=问R对于一个随机矩阵Z抽样单位正态分布。[6]
“glorot”——初始化复发与Glorot初始化权重[4](也称为Xavier初始化)。Glorot初始化样本独立均匀分布与零均值和方差2 / (numIn + numOut),在那里numIn = NumHiddenUnits和numOut = 4 * NumHiddenUnits。
“他”——初始化权重与复发他初始化[5]。他初始化样本正态分布与零均值和方差2 / NumHiddenUnits。
“narrow-normal”——初始化复发的独立抽样权重正态分布与零均值和标准偏差0.01。
“零”——初始化复发与零权重。
“的”——初始化权重复发的。
函数处理,用自定义函数初始化权重复发。如果你指定一个函数处理,那么必须表单的功能重量= func(深圳),在那里深圳是复发性权重的大小。
层只初始化时的复发性权重RecurrentWeights属性是空的。
数据类型:字符|字符串|function_handle
BiasInitializer
- - - - - -函数来初始化倾向
“unit-forget-gate”
(默认)|“narrow-normal”
|“的”
|函数处理
函数来初始化倾向,指定这些值之一:
“unit-forget-gate”——初始化忘记门偏见的和剩下的偏见与零。
“narrow-normal”——初始化倾向独立抽样从正态分布与零均值和标准偏差为0.01。
“的”——初始化倾向。
函数处理与自定义函数——初始化倾向。如果你指定一个函数处理,那么必须表单的功能偏见= func(深圳),在那里深圳偏差的大小。
层时才初始化倾向偏见属性是空的。
数据类型:字符|字符串|function_handle
InputWeights
- - - - - -输入重量
[]
(默认)|矩阵
输入权值,指定为一个矩阵。
输入权重矩阵是一个串联的四个组件的输入权重矩阵(盖茨)LSTM层。四个矩阵连接垂直按照以下顺序:
输入门
忘记门
细胞的候选人
输出门
输入权重可学的参数。当你训练一个网络使用trainNetwork功能,如果InputWeights非空的,那么软件使用InputWeights属性的初始值。如果InputWeights是空的,那么软件使用初始化器指定的InputWeightsInitializer。
在培训时,InputWeights是一个4 * NumHiddenUnits——- - - - - -InputSize矩阵。
RecurrentWeights
- - - - - -复发性权重
[]
(默认)|矩阵
经常性的权重,指定为一个矩阵。
复发性权重矩阵是一个串联的四个组件(门)的复发性权重矩阵LSTM层。这四个矩阵是垂直连接按照以下顺序:
输入门
忘记门
细胞的候选人
输出门
复发性权重可学的参数。当你训练一个网络使用trainNetwork功能,如果RecurrentWeights非空的,那么软件使用RecurrentWeights属性的初始值。如果RecurrentWeights是空的,那么软件使用初始化器指定的RecurrentWeightsInitializer。
在训练时间RecurrentWeights是一个4 * NumHiddenUnits——- - - - - -NumHiddenUnits矩阵。
偏见
- - - - - -层的偏见
[]
(默认)|数值向量
层偏见,指定为一个数值向量。
偏差向量是一个串联的四个偏差向量(门)的组件层。四层垂直连接向量在这个顺序:
输入门
忘记门
细胞的候选人
输出门
层偏差是可学的参数。当你训练一个网络,如果偏见非空的,那么trainNetwork使用偏见属性的初始值。如果偏见是空的,然后trainNetwork使用指定的初始化程序BiasInitializer。
在培训时,偏见是一个4 * NumHiddenUnits1数字向量。
InputWeightsInitializer
- - - - - -函数来初始化输入权重
“glorot”
(默认)|“他”
|“正交”
|“narrow-normal”|“零”|“的”|函数处理
“glorot”
(默认)|“他”
“正交”
“narrow-normal”|“零”|“的”|函数处理
函数初始化输入重量、指定为以下之一: 函数处理——初始化输入自定义函数的权重。如果你指定一个函数处理,那么必须表单的功能 层时才初始化输入权重 数据类型:
“glorot”
“他”
“正交”
“narrow-normal”
“零”
“的”
字符
RecurrentWeightsInitializer
- - - - - -函数来初始化权重复发
“正交”
(默认)|“glorot”
|“他”
|“narrow-normal”|“零”|“的”|函数处理
“正交”
(默认)|“glorot”
“他”
“narrow-normal”|“零”|“的”|函数处理
初始化函数周期性的权重,指定为以下之一: 函数处理,用自定义函数初始化权重复发。如果你指定一个函数处理,那么必须表单的功能 层只初始化时的复发性权重 数据类型:
“正交”
“glorot”
“他”
“narrow-normal”
“零”
“的”
字符
BiasInitializer
- - - - - -函数来初始化倾向
“unit-forget-gate”
(默认)|“narrow-normal”
|“的”
|函数处理
“unit-forget-gate”
(默认)|“narrow-normal”
“的”
函数来初始化倾向,指定这些值之一: 函数处理与自定义函数——初始化倾向。如果你指定一个函数处理,那么必须表单的功能 层时才初始化倾向 数据类型:
“unit-forget-gate”
“narrow-normal”
“的”
字符
InputWeights
- - - - - -输入重量
[]
(默认)|矩阵
[]
(默认)|输入权值,指定为一个矩阵。 输入权重矩阵是一个串联的四个组件的输入权重矩阵(盖茨)LSTM层。四个矩阵连接垂直按照以下顺序: 输入门 忘记门 细胞的候选人 输出门 输入权重可学的参数。当你训练一个网络使用 在培训时,
trainNetwork
RecurrentWeights
- - - - - -复发性权重
[]
(默认)|矩阵
[]
(默认)|经常性的权重,指定为一个矩阵。 复发性权重矩阵是一个串联的四个组件(门)的复发性权重矩阵LSTM层。这四个矩阵是垂直连接按照以下顺序: 输入门 忘记门 细胞的候选人 输出门 复发性权重可学的参数。当你训练一个网络使用 在训练时间
trainNetwork
偏见
- - - - - -层的偏见
[]
(默认)|数值向量
[]
(默认)|层偏见,指定为一个数值向量。 偏差向量是一个串联的四个偏差向量(门)的组件层。四层垂直连接向量在这个顺序: 输入门 忘记门 细胞的候选人 输出门 层偏差是可学的参数。当你训练一个网络,如果 在培训时,
trainNetwork
学习速率、正规化
InputWeightsLearnRateFactor
- - - - - -学习速率因子输入权重
1(默认)|负的标量|1-by-4数值向量
学习速率因子输入权值,指定为负的标量或1-by-4数值向量。
软件由全球学习速率繁殖这个因素来确定输入的学习速率因子层的权重。例如,如果InputWeightsLearnRateFactor是2,然后输入的学习速率因子层的权重是当前全球学习速率的两倍。全球软件决定了学习速率根据你指定的设置trainingOptions函数。
的值来控制四个人的学习速率因子矩阵InputWeights,指定一个1-by-4向量。的条目InputWeightsLearnRateFactor对应于这些组件的学习速率因子:
输入门
忘记门
细胞的候选人
输出门
为所有的矩阵指定相同的值,指定一个负的标量。
例子:2
例子:[1 2 1 1]
RecurrentWeightsLearnRateFactor
- - - - - -反复的学习速率因素权重
1(默认)|负的标量|1-by-4数值向量
反复的学习速率因素权重,指定为负的标量或1-by-4数值向量。
软件由全球学习速率繁殖这个因素来确定学习速率的复发性层的权重。例如,如果RecurrentWeightsLearnRateFactor是2,然后反复的学习速率层的权重是当前全球学习速率的两倍。全球学习速率决定了基于的软件设置您指定使用trainingOptions函数。
的值来控制四个人的学习速率因子矩阵RecurrentWeights,指定一个1-by-4向量。的条目RecurrentWeightsLearnRateFactor对应于这些组件的学习速率因子:
输入门
忘记门
细胞的候选人
输出门
为所有的矩阵指定相同的值,指定一个负的标量。
例子:2
例子:[1 2 1 1]
BiasLearnRateFactor
- - - - - -学习速率因子偏见
1(默认)|负的标量|1-by-4数值向量
学习速率因子的偏见,指定为负的标量或1-by-4数值向量。
软件由全球学习速率繁殖这个因素来确定学习速率的偏见在这一层。例如,如果BiasLearnRateFactor是2,那么学习速率的偏见层是当前全球学习速率的两倍。全球学习速率决定了基于的软件设置您指定使用trainingOptions函数。
的值来控制四个人的学习速率因子向量偏见,指定一个1-by-4向量。的条目BiasLearnRateFactor对应于这些组件的学习速率因子:
输入门
忘记门
细胞的候选人
输出门
为所有的向量指定相同的值,指定一个负的标量。
例子:2
例子:[1 2 1 1]
InputWeightsL2Factor
- - - - - -l2 正则化因子输入权重
1(默认)|负的标量|1-by-4数值向量
l2 正则化因子的输入权值,指定为负的标量或1-by-4数值向量。
全球的软件增加这个因素l2正则化因子来确定l2正则化因子输入层的权重。例如,如果InputWeightsL2Factor是2,那么l2正则化因子为输入层的权重是当前全球的两倍l2正则化因子。软件确定l2正则化因子的基础上,设置您指定使用trainingOptions函数。
控制的价值l2四个人矩阵正则化因子InputWeights,指定一个1-by-4向量。的条目InputWeightsL2Factor对应于l2这些组件的正则化因子:
输入门
忘记门
细胞的候选人
输出门
为所有的矩阵指定相同的值,指定一个负的标量。
例子:2
例子:[1 2 1 1]
RecurrentWeightsL2Factor
- - - - - -l2 复发性权重的正则化因素
1(默认)|负的标量|1-by-4数值向量
l2 复发性权重正则化因子,指定为负的标量或1-by-4数值向量。
全球的软件增加这个因素l2正则化因子来确定l2正则化因子的复发性层的权重。例如,如果RecurrentWeightsL2Factor是2,那么l2正则化因子的复发性权重层是当前全球的两倍l2正则化因子。软件确定l2正则化因子的基础上,设置您指定使用trainingOptions函数。
控制的价值l2四个人矩阵正则化因子RecurrentWeights,指定一个1-by-4向量。的条目RecurrentWeightsL2Factor对应于l2这些组件的正则化因子:
输入门
忘记门
细胞的候选人
输出门
为所有的矩阵指定相同的值,指定一个负的标量。
例子:2
例子:[1 2 1 1]
BiasL2Factor
- - - - - -l2 正则化因子的偏见
0(默认)|负的标量|1-by-4数值向量
l2 正则化因子的偏见,指定为负的标量或1-by-4数值向量。
全球的软件增加这个因素l2正则化因子来确定l2在这一层正规化的偏见。例如,如果BiasL2Factor是2,那么l2正规化的偏见这一层是全球的两倍l2正则化因子。决定了全球的软件l2正则化因子的基础上,设置您指定使用trainingOptions函数。
控制的价值l2正则化因子的四个人向量偏见,指定一个1-by-4向量。的条目BiasL2Factor对应于l2这些组件的正则化因子:
输入门
忘记门
细胞的候选人
输出门
为所有的向量指定相同的值,指定一个负的标量。
例子:2
例子:[1 2 1 1]
InputWeightsLearnRateFactor
- - - - - -学习速率因子输入权重
1(默认)|负的标量|1-by-4数值向量
1
学习速率因子输入权值,指定为负的标量或1-by-4数值向量。 软件由全球学习速率繁殖这个因素来确定输入的学习速率因子层的权重。例如,如果 的值来控制四个人的学习速率因子矩阵 输入门 忘记门 细胞的候选人 输出门 为所有的矩阵指定相同的值,指定一个负的标量。 例子: 例子:trainingOptions
2
[1 2 1 1]
RecurrentWeightsLearnRateFactor
- - - - - -反复的学习速率因素权重
1(默认)|负的标量|1-by-4数值向量
1
反复的学习速率因素权重,指定为负的标量或1-by-4数值向量。 软件由全球学习速率繁殖这个因素来确定学习速率的复发性层的权重。例如,如果 的值来控制四个人的学习速率因子矩阵 输入门 忘记门 细胞的候选人 输出门 为所有的矩阵指定相同的值,指定一个负的标量。 例子: 例子:trainingOptions
2
[1 2 1 1]
BiasLearnRateFactor
- - - - - -学习速率因子偏见
1(默认)|负的标量|1-by-4数值向量
1
学习速率因子的偏见,指定为负的标量或1-by-4数值向量。 软件由全球学习速率繁殖这个因素来确定学习速率的偏见在这一层。例如,如果 的值来控制四个人的学习速率因子向量 输入门 忘记门 细胞的候选人 输出门 为所有的向量指定相同的值,指定一个负的标量。 例子: 例子:trainingOptions
2
[1 2 1 1]
InputWeightsL2Factor
- - - - - -l2 正则化因子输入权重
1(默认)|负的标量|1-by-4数值向量
1
l 全球的软件增加这个因素 控制的价值 输入门 忘记门 细胞的候选人 输出门 为所有的矩阵指定相同的值,指定一个负的标量。 例子: 例子:trainingOptions
2
[1 2 1 1]
RecurrentWeightsL2Factor
- - - - - -l2 复发性权重的正则化因素
1(默认)|负的标量|1-by-4数值向量
1
l 全球的软件增加这个因素 控制的价值 输入门 忘记门 细胞的候选人 输出门 为所有的矩阵指定相同的值,指定一个负的标量。 例子: 例子:trainingOptions
2
[1 2 1 1]
BiasL2Factor
- - - - - -l2 正则化因子的偏见
0(默认)|负的标量|1-by-4数值向量
0
l 全球的软件增加这个因素 控制的价值 输入门 忘记门 细胞的候选人 输出门 为所有的向量指定相同的值,指定一个负的标量。 例子: 例子:trainingOptions
2
[1 2 1 1]
层
的名字
- - - - - -层的名字
”
(默认)|特征向量|字符串标量
图层名称,指定为一个特征向量或字符串标量。为层数组输入,trainNetwork,assembleNetwork,layerGraph,dlnetwork函数自动分配名称层的名称”。
数据类型:字符|字符串
NumInputs
- - - - - -输入数量
1
|3
这个属性是只读的。
数量的输入层。
如果HasStateInputs属性是0(假),然后层有一个输入名称“在”,对应于输入数据。在这种情况下,层使用HiddenState和CellState属性层操作。
如果HasStateInputs属性是1(真正的),然后有三个输入层的名字“在”,“隐藏”,“细胞”对应于输入数据的隐藏状态,分别和细胞状态。在这种情况下,层使用的值传递给这些输入层操作。如果HasStateInputs是1(真正的),然后HiddenState和CellState属性必须是空的。
数据类型:双
InputNames
- - - - - -输入名字
{'在'}
|{‘在’,‘隐藏’,‘细胞’}
这个属性是只读的。
输入层的名称。
如果HasStateInputs属性是0(假),然后层有一个输入名称“在”,对应于输入数据。在这种情况下,层使用HiddenState和CellState属性层操作。
如果HasStateInputs属性是1(真正的),然后有三个输入层的名字“在”,“隐藏”,“细胞”对应于输入数据的隐藏状态,分别和细胞状态。在这种情况下,层使用的值传递给这些输入层操作。如果HasStateInputs是1(真正的),然后HiddenState和CellState属性必须是空的。
NumOutputs
- - - - - -数量的输出
1
|3
这个属性是只读的。
数量的输出层。
如果HasStateOutputs属性是0(假),然后有一个输出层的名字“出”对应的输出数据。
如果HasStateOutputs属性是1(真正的),然后有三个输出层的名字“出”,“隐藏”,“细胞”对应的输出数据,隐藏状态,分别和细胞状态。在这种情况下,该层还输出状态值计算。
数据类型:双
OutputNames
- - - - - -输出的名字
{“出”}
|{‘出来’,‘隐藏’,‘细胞’}
这个属性是只读的。
输出层的名称。
如果HasStateOutputs属性是0(假),然后有一个输出层的名字“出”对应的输出数据。
如果HasStateOutputs属性是1(真正的),然后有三个输出层的名字“出”,“隐藏”,“细胞”对应的输出数据,隐藏状态,分别和细胞状态。在这种情况下,该层还输出状态值计算。
的名字
- - - - - -层的名字
”
(默认)|特征向量|字符串标量
”
(默认)|图层名称,指定为一个特征向量或字符串标量。为trainNetwork
assembleNetwork
layerGraph
dlnetwork
数据类型:字符
NumInputs
- - - - - -输入数量
1
|3
1
|3
这个属性是只读的。 数量的输入层。 如果 如果 数据类型:双
InputNames
- - - - - -输入名字
{'在'}
|{‘在’,‘隐藏’,‘细胞’}
{'在'}
|{‘在’,‘隐藏’,‘细胞’}
这个属性是只读的。 输入层的名称。 如果 如果
NumOutputs
- - - - - -数量的输出
1
|3
1
|3
这个属性是只读的。 数量的输出层。 如果 如果 数据类型:双
OutputNames
- - - - - -输出的名字
{“出”}
|{‘出来’,‘隐藏’,‘细胞’}
{“出”}
|{‘出来’,‘隐藏’,‘细胞’}
这个属性是只读的。 输出层的名称。 如果 如果
例子
创建LSTM层
创建一个LSTM层的名字“lstm1”和100年隐藏的单位。
层= lstmLayer (100“名字”,“lstm1”)
层= LSTMLayer属性:名称:“lstm1”InputNames: {’’} OutputNames:{“出”}NumInputs: 1 NumOutputs: 1 HasStateInputs: 0 HasStateOutputs: 0 Hyperparameters InputSize:“汽车”NumHiddenUnits: 100 OutputMode:“序列”StateActivationFunction:“双曲正切GateActivationFunction: InputWeights乙状结肠的可学的参数:[]RecurrentWeights:[]偏见:[]HiddenState状态参数:[]CellState:[]显示所有属性
包括一个LSTM层中层数组中。
inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= […sequenceInputLayer (inputSize) lstmLayer (numHiddenUnits) fullyConnectedLayer (numClasses) softmaxLayer classificationLayer]
层x1 = 5层阵列层:1“12维度2序列输入序列输入”LSTM LSTM 100隐藏单位3“完全连接9完全连接层4”Softmax Softmax crossentropyex 5”分类输出
网络训练序列的分类
火车深学习LSTM sequence-to-label网络分类。
加载描述的日本元音数据集[1]和[2]。XTrain是一个单元阵列包含270可变长度的序列有12个功能对应LPC倒谱系数。Y是标签的分类向量1,2,…,9。的条目XTrain与12行矩阵(为每个功能一行)和不同数量的列(每个时间步一列)。
[XTrain, YTrain] = japaneseVowelsTrainData;
可视化系列第一次在一个阴谋。每一行对应一个功能。
图绘制(XTrain{1}”)标题(“训练观察1”)numFeatures =大小(XTrain {1}, 1);传奇(“特性”+字符串(1:numFeatures),“位置”,“northeastoutside”)
定义LSTM网络体系结构。指定输入大小12(功能的输入数据的数量)。指定一个LSTM层有100个隐藏的单位和输出序列的最后一个元素。最后,指定9类包括一个完全连接层的9码,其次是softmax层和一层分类。
inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= […sequenceInputLayer inputSize lstmLayer (numHiddenUnits,“OutputMode”,“最后一次”)fullyConnectedLayer (numClasses) softmaxLayer classificationLayer]
层x1 = 5层阵列层:1“12维度2序列输入序列输入”LSTM LSTM 100隐藏单位3“完全连接9完全连接层4”Softmax Softmax crossentropyex 5”分类输出
指定培训选项。指定的解算器“亚当”和“GradientThreshold”为1。设置mini-batch大小27和设置时代的最大数量为70。
因为mini-batches小短序列,CPU更适合培训。集“ExecutionEnvironment”来“cpu”。火车在GPU,如果可用,集“ExecutionEnvironment”来“汽车”(默认值)。
maxEpochs = 70;miniBatchSize = 27个;选择= trainingOptions (“亚当”,…“ExecutionEnvironment”,“cpu”,…“MaxEpochs”maxEpochs,…“MiniBatchSize”miniBatchSize,…“GradientThreshold”,1…“详细”假的,…“阴谋”,“训练进步”);
火车LSTM网络培训指定的选项。
网= trainNetwork (XTrain、YTrain层,选择);
测试集和分类序列加载到扬声器。
[XTest,欧美]= japaneseVowelsTestData;
测试数据进行分类。指定相同的mini-batch大小用于培训。
XTest YPred =分类(净,“MiniBatchSize”,miniBatchSize);
计算预测的分类精度。
acc = (YPred = =欧美)。/元素个数(欧美)
acc = 0.9459
分类LSTM网络
创建一个LSTM sequence-to-label分类网络,创建数组包含一个序列输入层,一层一层LSTM,完全连接层,softmax层和输出层分类。
组的大小顺序输入层特性的输入数据的数量。设置大小完全连接层的类的数量。你不需要指定序列长度。
对于LSTM层,指定隐藏单位的数量和输出模式“最后一次”。
numFeatures = 12;numHiddenUnits = 100;numClasses = 9;层= […sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“OutputMode”,“最后一次”)fullyConnectedLayer (numClasses) softmaxLayer classificationLayer];
为一个例子,演示如何为sequence-to-label培训LSTM网络分类和分类新数据,看到的使用深度学习序列分类。
创建一个LSTM sequence-to-sequence网络分类,使用相同的架构对于sequence-to-label分类,但LSTM层的设置输出模式“序列”。
numFeatures = 12;numHiddenUnits = 100;numClasses = 9;层= […sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“OutputMode”,“序列”)fullyConnectedLayer (numClasses) softmaxLayer classificationLayer];
回归LSTM网络
创建一个LSTM sequence-to-one回归网络,创建数组包含一个序列输入层,一层一层LSTM,完全连接层和回归输出层。
组的大小顺序输入层特性的输入数据的数量。完全连接层的大小设置为响应的数量。你不需要指定序列长度。
对于LSTM层,指定隐藏单位的数量和输出模式“最后一次”。
numFeatures = 12;numHiddenUnits = 125;numResponses = 1;层= […sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“OutputMode”,“最后一次”)fullyConnectedLayer (numResponses) regressionLayer];
创建一个LSTM sequence-to-sequence回归网络使用相同的架构对于sequence-to-one回归,但LSTM层的设置输出模式“序列”。
numFeatures = 12;numHiddenUnits = 125;numResponses = 1;层= […sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“OutputMode”,“序列”)fullyConnectedLayer (numResponses) regressionLayer];
为一个例子,演示如何训练一个LSTM网络sequence-to-sequence回归和预测新数据,看到的使用深度学习Sequence-to-Sequence回归。
更深层次的LSTM网络
你可以更深的插入额外的LSTM LSTM网络层与输出模式“序列”之前LSTM层。为了防止过度拟合,可以插入后辍学层LSTM层。
sequence-to-label分类网络,输出模式的最后LSTM层必须“最后一次”。
numFeatures = 12;numHiddenUnits1 = 125;numHiddenUnits2 = 100;numClasses = 9;层= […sequenceInputLayer numFeatures lstmLayer (numHiddenUnits1,“OutputMode”,“序列”)dropoutLayer (0.2) lstmLayer (numHiddenUnits2“OutputMode”,“最后一次”)dropoutLayer (0.2) fullyConnectedLayer (numClasses) softmaxLayer classificationLayer];
sequence-to-sequence分类网络,输出模式的最后LSTM层必须“序列”。
numFeatures = 12;numHiddenUnits1 = 125;numHiddenUnits2 = 100;numClasses = 9;层= […sequenceInputLayer numFeatures lstmLayer (numHiddenUnits1,“OutputMode”,“序列”)dropoutLayer (0.2) lstmLayer (numHiddenUnits2“OutputMode”,“序列”)dropoutLayer (0.2) fullyConnectedLayer (numClasses) softmaxLayer classificationLayer];
创建LSTM层
创建一个LSTM层的名字 包括一个LSTM层中层= lstmLayer (100
层= LSTMLayer属性:名称:“lstm1”InputNames: {’’} OutputNames:{“出”}NumInputs: 1 NumOutputs: 1 HasStateInputs: 0 HasStateOutputs: 0 Hyperparameters InputSize:“汽车”NumHiddenUnits: 100 OutputMode:“序列”StateActivationFunction:“双曲正切GateActivationFunction: InputWeights乙状结肠的可学的参数:[]RecurrentWeights:[]偏见:[]HiddenState状态参数:[]CellState:[]显示所有属性
inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= [
层x1 = 5层阵列层:1“12维度2序列输入序列输入”LSTM LSTM 100隐藏单位3“完全连接9完全连接层4”Softmax Softmax crossentropyex 5”分类输出
网络训练序列的分类
火车深学习LSTM sequence-to-label网络分类。 加载描述的日本元音数据集[1]和[2]。 可视化系列第一次在一个阴谋。每一行对应一个功能。 定义LSTM网络体系结构。指定输入大小12(功能的输入数据的数量)。指定一个LSTM层有100个隐藏的单位和输出序列的最后一个元素。最后,指定9类包括一个完全连接层的9码,其次是softmax层和一层分类。 指定培训选项。指定的解算器 因为mini-batches小短序列,CPU更适合培训。集 火车LSTM网络培训指定的选项。 测试集和分类序列加载到扬声器。 测试数据进行分类。指定相同的mini-batch大小用于培训。 计算预测的分类精度。[XTrain, YTrain] = japaneseVowelsTrainData;
图绘制(XTrain{1}”)标题(
inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= [
层x1 = 5层阵列层:1“12维度2序列输入序列输入”LSTM LSTM 100隐藏单位3“完全连接9完全连接层4”Softmax Softmax crossentropyex 5”分类输出
maxEpochs = 70;miniBatchSize = 27个;选择= trainingOptions (
网= trainNetwork (XTrain、YTrain层,选择);
[XTest,欧美]= japaneseVowelsTestData;
XTest YPred =分类(净,
acc = (YPred = =欧美)。/元素个数(欧美)
acc = 0.9459
分类LSTM网络
创建一个LSTM sequence-to-label分类网络,创建数组包含一个序列输入层,一层一层LSTM,完全连接层,softmax层和输出层分类。 组的大小顺序输入层特性的输入数据的数量。设置大小完全连接层的类的数量。你不需要指定序列长度。 对于LSTM层,指定隐藏单位的数量和输出模式 为一个例子,演示如何为sequence-to-label培训LSTM网络分类和分类新数据,看到的 创建一个LSTM sequence-to-sequence网络分类,使用相同的架构对于sequence-to-label分类,但LSTM层的设置输出模式numFeatures = 12;numHiddenUnits = 100;numClasses = 9;层= [
numFeatures = 12;numHiddenUnits = 100;numClasses = 9;层= [
回归LSTM网络
创建一个LSTM sequence-to-one回归网络,创建数组包含一个序列输入层,一层一层LSTM,完全连接层和回归输出层。 组的大小顺序输入层特性的输入数据的数量。完全连接层的大小设置为响应的数量。你不需要指定序列长度。 对于LSTM层,指定隐藏单位的数量和输出模式 创建一个LSTM sequence-to-sequence回归网络使用相同的架构对于sequence-to-one回归,但LSTM层的设置输出模式 为一个例子,演示如何训练一个LSTM网络sequence-to-sequence回归和预测新数据,看到的numFeatures = 12;numHiddenUnits = 125;numResponses = 1;层= [
numFeatures = 12;numHiddenUnits = 125;numResponses = 1;层= [
更深层次的LSTM网络
你可以更深的插入额外的LSTM LSTM网络层与输出模式 sequence-to-label分类网络,输出模式的最后LSTM层必须 sequence-to-sequence分类网络,输出模式的最后LSTM层必须numFeatures = 12;numHiddenUnits1 = 125;numHiddenUnits2 = 100;numClasses = 9;层= [
numFeatures = 12;numHiddenUnits1 = 125;numHiddenUnits2 = 100;numClasses = 9;层= [
算法
长期短期记忆层
LSTM层长期学习时间步骤时间序列和序列数据之间的依赖关系。
的层包含的状态隐藏状态(也被称为输出状态)和细胞状态。在时间步隐藏的状态t包含LSTM层的输出时间步。细胞状态包含信息从上一次的步骤。在每个时间步,图层添加或删除信息从细胞状态。层控制这些更新使用盖茨。
这些组件控制层的细胞状态和隐藏状态。
组件
目的
输入门(我)
控制水平的细胞状态更新
忘记门(f)
控制水平的细胞状态重置(忘记)
细胞的候选人(g)
添加信息到细胞状态
输出门(o)
控制水平的细胞状态添加到隐藏状态
这个图表说明了在时间步的数据流t。这个图展示了盖茨如何忘记,更新和输出单元和隐状态。
的可学的权重LSTM层输入权重W(InputWeights),复发性权重R(RecurrentWeights)和偏见b(偏见)。的矩阵W,R,b输入权重的串连,经常性的权重,分别和每个组件的偏见。根据这些层连接矩阵方程:
在哪里我,f,g,o表示输入门,忘记门,细胞的候选人,分别和输出门。
在时间步细胞状态t是由
在哪里
表示阿达玛产品(element-wise向量的乘法)。
在时间步隐藏的状态t是由
在哪里
表示状态的激活函数。默认情况下,lstmLayer函数使用双曲正切函数(双曲正切)计算状态激活函数。
这些公式描述的组件在时间步t。
组件
公式
输入门
忘记门
细胞的候选人
输出门
在这些计算,
表示门激活函数。默认情况下,lstmLayer函数,采用乙状结肠函数,给出的
为了计算门激活函数。
层的输入和输出格式
层一层一层数组或图后续层传递数据格式化dlarray对象。的格式dlarray对象是一个字符串,其中每个字符描述相应的维度的数据。这些字符的格式由一个或多个:
“S”——空间
“C”——频道
“B”——批
“T”——时间
“U”——未指明的
例如,二维图像数据表示成一个四维数组,第一个二维对应于图像的空间维度,第三维对应于图像的通道,第四个维度对应批维度,可以被描述为有格式“SSCB”(空间、空间、通道、批)。
你可以与这些交互dlarray对象等自动分化工作流开发一个自定义图层,使用functionLayer对象,或使用向前和预测功能与dlnetwork对象。
此表显示了支持输入格式金宝appLSTMLayer对象和相应的输出格式。如果输出层的传递给一个定制的层不继承nnet.layer.Formattable类,或FunctionLayer对象的Formattable属性设置为0(假),然后层接收未格式化dlarray对象的尺寸要求相应的这个表的格式。
输入格式
OutputMode
输出格式
“CB”(通道、批处理)
“序列”
“CB”(通道、批处理)
“最后一次”
“认知行为治疗”(通道、批量、时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“某人”(空间、批处理)
“序列”
“CB”(通道、批处理)
“最后一次”
在dlnetwork对象,LSTMLayer对象也支持这些输入和输出格金宝app式的组合。
输入格式
OutputMode
输出格式
“渣打银行”(空间、通道、批处理)
“序列”
“CB”(通道、批处理)
“最后一次”
“SSCB”(空间、空间、通道、批处理)
“序列”
“最后一次”
“SSSCB”(空间、空间、空间、通道、批处理)
“序列”
“最后一次”
“SCBT”(空间、通道、批量、时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“SSCBT”(空间、空间、通道、批处理时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“SSSCBT”(空间、空间、空间、通道、批处理时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“SC”(空间、通道)
“序列”
“铜”(未指明的通道)
“最后一次”
“SSC”(空间、空间、通道)
“序列”
“最后一次”
“SSSC”(空间、空间、空间、通道)
“序列”
“最后一次”
“CT”(通道、时间)
“序列”
“CT”(通道、时间)
“最后一次”
“铜”(未指明的通道)
“SCT”(空间、通道、时间)
“序列”
“CT”(通道、时间)
“最后一次”
“铜”(未指明的通道)
“SSCT”(空间、空间、通道、时间)
“序列”
“CT”(通道、时间)
“最后一次”
“铜”(未指明的通道)
“SSSCT”(空间、空间、通道、时间)
“序列”
“CT”(通道、时间)
“最后一次”
“铜”(未指明的通道)
“单边带”(空间、空间、批处理)
“序列”
“CB”(通道、批处理)
“最后一次”
“SSSB”(空间、空间、空间、批处理)
“序列”
“最后一次”
“转基因”(批量、时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“SBT”(空间、批量、时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“名为SSBT”(空间、空间、批量、时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“SSSBT”(空间、空间、空间、批处理时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
使用这些输入格式trainNetwork工作流转换数据“CB”(通道、批处理)“认知行为治疗”(通道、批量、时间)格式使用flattenLayer。
如果HasStateInputs属性是1(真正的),然后层有两个额外的输入名称“隐藏”和“细胞”,隐藏状态和细胞状态相对应,分别。这些额外的输入期望的输入格式“CB”(频道,批处理)。
如果HasStateOutputs属性是1(真正的),然后用名字层有两个额外的输出“隐藏”和“细胞”,隐藏状态和细胞状态相对应,分别。这些额外的输出输出格式“CB”(频道,批处理)。
长期短期记忆层
LSTM层长期学习时间步骤时间序列和序列数据之间的依赖关系。
的层包含的状态隐藏状态(也被称为输出状态)和细胞状态。在时间步隐藏的状态t包含LSTM层的输出时间步。细胞状态包含信息从上一次的步骤。在每个时间步,图层添加或删除信息从细胞状态。层控制这些更新使用盖茨。
这些组件控制层的细胞状态和隐藏状态。
组件
目的
输入门(我)
控制水平的细胞状态更新
忘记门(f)
控制水平的细胞状态重置(忘记)
细胞的候选人(g)
添加信息到细胞状态
输出门(o)
控制水平的细胞状态添加到隐藏状态
这个图表说明了在时间步的数据流t。这个图展示了盖茨如何忘记,更新和输出单元和隐状态。
的可学的权重LSTM层输入权重W(InputWeights),复发性权重R(RecurrentWeights)和偏见b(偏见)。的矩阵W,R,b输入权重的串连,经常性的权重,分别和每个组件的偏见。根据这些层连接矩阵方程:
在哪里我,f,g,o表示输入门,忘记门,细胞的候选人,分别和输出门。
在时间步细胞状态t是由
在哪里
表示阿达玛产品(element-wise向量的乘法)。
在时间步隐藏的状态t是由
在哪里
表示状态的激活函数。默认情况下,lstmLayer函数使用双曲正切函数(双曲正切)计算状态激活函数。
这些公式描述的组件在时间步t。
组件
公式
输入门
忘记门
细胞的候选人
输出门
在这些计算,
表示门激活函数。默认情况下,lstmLayer函数,采用乙状结肠函数,给出的
为了计算门激活函数。
LSTM层长期学习时间步骤时间序列和序列数据之间的依赖关系。
的层包含的状态 这些组件控制层的细胞状态和隐藏状态。 这个图表说明了在时间步的数据流 的可学的权重LSTM层输入权重
在哪里 在时间步细胞状态
在哪里 在时间步隐藏的状态
在哪里 这些公式描述的组件在时间步 在这些计算,
组件 目的
输入门( 控制水平的细胞状态更新
忘记门( 控制水平的细胞状态重置(忘记)
细胞的候选人( 添加信息到细胞状态
输出门( 控制水平的细胞状态添加到隐藏状态
组件 公式
输入门
忘记门
细胞的候选人
输出门
层的输入和输出格式
层一层一层数组或图后续层传递数据格式化dlarray对象。的格式dlarray对象是一个字符串,其中每个字符描述相应的维度的数据。这些字符的格式由一个或多个:
“S”——空间
“C”——频道
“B”——批
“T”——时间
“U”——未指明的
例如,二维图像数据表示成一个四维数组,第一个二维对应于图像的空间维度,第三维对应于图像的通道,第四个维度对应批维度,可以被描述为有格式“SSCB”(空间、空间、通道、批)。
你可以与这些交互dlarray对象等自动分化工作流开发一个自定义图层,使用functionLayer对象,或使用向前和预测功能与dlnetwork对象。
此表显示了支持输入格式金宝appLSTMLayer对象和相应的输出格式。如果输出层的传递给一个定制的层不继承nnet.layer.Formattable类,或FunctionLayer对象的Formattable属性设置为0(假),然后层接收未格式化dlarray对象的尺寸要求相应的这个表的格式。
输入格式
OutputMode
输出格式
“CB”(通道、批处理)
“序列”
“CB”(通道、批处理)
“最后一次”
“认知行为治疗”(通道、批量、时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“某人”(空间、批处理)
“序列”
“CB”(通道、批处理)
“最后一次”
在dlnetwork对象,LSTMLayer对象也支持这些输入和输出格金宝app式的组合。
输入格式
OutputMode
输出格式
“渣打银行”(空间、通道、批处理)
“序列”
“CB”(通道、批处理)
“最后一次”
“SSCB”(空间、空间、通道、批处理)
“序列”
“最后一次”
“SSSCB”(空间、空间、空间、通道、批处理)
“序列”
“最后一次”
“SCBT”(空间、通道、批量、时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“SSCBT”(空间、空间、通道、批处理时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“SSSCBT”(空间、空间、空间、通道、批处理时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“SC”(空间、通道)
“序列”
“铜”(未指明的通道)
“最后一次”
“SSC”(空间、空间、通道)
“序列”
“最后一次”
“SSSC”(空间、空间、空间、通道)
“序列”
“最后一次”
“CT”(通道、时间)
“序列”
“CT”(通道、时间)
“最后一次”
“铜”(未指明的通道)
“SCT”(空间、通道、时间)
“序列”
“CT”(通道、时间)
“最后一次”
“铜”(未指明的通道)
“SSCT”(空间、空间、通道、时间)
“序列”
“CT”(通道、时间)
“最后一次”
“铜”(未指明的通道)
“SSSCT”(空间、空间、通道、时间)
“序列”
“CT”(通道、时间)
“最后一次”
“铜”(未指明的通道)
“单边带”(空间、空间、批处理)
“序列”
“CB”(通道、批处理)
“最后一次”
“SSSB”(空间、空间、空间、批处理)
“序列”
“最后一次”
“转基因”(批量、时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“SBT”(空间、批量、时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“名为SSBT”(空间、空间、批量、时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
“SSSBT”(空间、空间、空间、批处理时间)
“序列”
“认知行为治疗”(通道、批量、时间)
“最后一次”
“CB”(通道、批处理)
使用这些输入格式trainNetwork工作流转换数据“CB”(通道、批处理)“认知行为治疗”(通道、批量、时间)格式使用flattenLayer。
如果HasStateInputs属性是1(真正的),然后层有两个额外的输入名称“隐藏”和“细胞”,隐藏状态和细胞状态相对应,分别。这些额外的输入期望的输入格式“CB”(频道,批处理)。
如果HasStateOutputs属性是1(真正的),然后用名字层有两个额外的输出“隐藏”和“细胞”,隐藏状态和细胞状态相对应,分别。这些额外的输出输出格式“CB”(频道,批处理)。
层一层一层数组或图后续层传递数据格式化 例如,二维图像数据表示成一个四维数组,第一个二维对应于图像的空间维度,第三维对应于图像的通道,第四个维度对应批维度,可以被描述为有格式 你可以与这些交互 此表显示了支持输入格式金宝app 在 使用这些输入格式 如果 如果dlarray
“S”
“C”
“B”
“T”
“U”
functionLayer
向前
预测
输入格式 OutputMode
输出格式
“CB”
“序列”
“CB”
“最后一次”
“认知行为治疗”
“序列”
“认知行为治疗”
“最后一次”
“CB”
“某人”
“序列”
“CB”
“最后一次”
输入格式 OutputMode
输出格式
“渣打银行”
“序列”
“CB”
“最后一次”
“SSCB”
“序列”
“最后一次”
“SSSCB”
“序列”
“最后一次”
“SCBT”
“序列”
“认知行为治疗”
“最后一次”
“CB”
“SSCBT”
“序列”
“认知行为治疗”
“最后一次”
“CB”
“SSSCBT”
“序列”
“认知行为治疗”
“最后一次”
“CB”
“SC”
“序列”
“铜”
“最后一次”
“SSC”
“序列”
“最后一次”
“SSSC”
“序列”
“最后一次”
“CT”
“序列”
“CT”
“最后一次”
“铜”
“SCT”
“序列”
“CT”
“最后一次”
“铜”
“SSCT”
“序列”
“CT”
“最后一次”
“铜”
“SSSCT”
“序列”
“CT”
“最后一次”
“铜”
“单边带”
“序列”
“CB”
“最后一次”
“SSSB”
“序列”
“最后一次”
“转基因”
“序列”
“认知行为治疗”
“最后一次”
“CB”
“SBT”
“序列”
“认知行为治疗”
“最后一次”
“CB”
“名为SSBT”
“序列”
“认知行为治疗”
“最后一次”
“CB”
“SSSBT”
“序列”
“认知行为治疗”
“最后一次”
“CB”
flattenLayer
引用
[1]m .奖赏,富山,和m . Shimbo。“多维曲线分类使用通过地区。”模式识别的字母。11 - 13号20卷,第1111 - 1103页。
[2]UCI机器学习库:日本元音数据集。https://archive.ics.uci.edu/ml/datasets/Japanese +元音
[3]Hochreiter S, 1997,的j。施密德胡贝尔表示。短期记忆。神经计算,9 (8),pp.1735 - 1780。
[4]Glorot,泽维尔,Yoshua Bengio。“理解的难度训练前馈神经网络。”在《十三人工智能国际会议上和统计,249 - 356。意大利撒丁岛:AISTATS, 2010。
[5],他开明、象屿张任Shaoqing,剑太阳。“深深入整流器:超越人类表现ImageNet分类。”在学报2015年IEEE计算机视觉国际会议,1026 - 1034。华盛顿特区:IEEE计算机视觉的社会,2015年。
[6]萨克斯,安德鲁·M。,James L. McClelland, and Surya Ganguli. "Exact solutions to the nonlinear dynamics of learning in deep linear neural networks."arXiv预印本arXiv: 1312.6120(2013)。
[1]m .奖赏,富山,和m . Shimbo。“多维曲线分类使用通过地区。”
[2]
[3]Hochreiter S, 1997,的j。施密德胡贝尔表示。短期记忆。
[4]Glorot,泽维尔,Yoshua Bengio。“理解的难度训练前馈神经网络。”在
[5],他开明、象屿张任Shaoqing,剑太阳。“深深入整流器:超越人类表现ImageNet分类。”在
[6]萨克斯,安德鲁·M。,James L. McClelland, and Surya Ganguli. "Exact solutions to the nonlinear dynamics of learning in deep linear neural networks."arXiv预印本arXiv: 1312.6120
扩展功能
C / c++代码生成生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
在生成代码与英特尔®MKL-DNN:
的StateActivationFunction属性必须设置为的双曲正切。
的GateActivationFunction属性必须设置为“乙状结肠”。
的HasStateInputs和HasStateOutputs属性必须设置为0(假)。
GPU的代码生成生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。
使用笔记和限制:
GPU代码生成的StateActivationFunction属性必须设置为的双曲正切。
GPU代码生成的GateActivationFunction属性必须设置为“乙状结肠”。
的HasStateInputs和HasStateOutputs属性必须设置为0(假)。
C / c++代码生成生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
在生成代码与英特尔 的 的 的
GPU的代码生成生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。
使用笔记和限制: GPU代码生成的 GPU代码生成的 的
版本历史
介绍了R2017b
R2019a:默认的输入权值初始化Glorot
从R2019a开始,软件,默认情况下,初始化层使用Glorot初始化输入这一层的权重。这种行为可以帮助稳定培训和通常减少深层网络的训练时间。
在以前的版本中,软件,默认情况下,初始化层输入使用的抽样权重0.01零均值和方差的正态分布。复制这种行为,设置“InputWeightsInitializer”层的选项“narrow-normal”。
R2019a:默认复发性权重的初始化是正交的
从R2019a开始,软件,默认情况下,初始化这一层的层的权重问正交矩阵的QR分解Z=问R对于一个随机矩阵Z抽样单位正态分布。这种行为可以帮助稳定培训和通常减少深层网络的训练时间。
在以前的版本中,软件,默认情况下,初始化层反复使用的抽样权重0.01零均值和方差的正态分布。复制这种行为,设置“RecurrentWeightsInitializer”层的选项“narrow-normal”。
R2019a:默认的输入权值初始化Glorot
从R2019a开始,软件,默认情况下,初始化层使用Glorot初始化输入这一层的权重。这种行为可以帮助稳定培训和通常减少深层网络的训练时间。 在以前的版本中,软件,默认情况下,初始化层输入使用的抽样权重0.01零均值和方差的正态分布。复制这种行为,设置
R2019a:默认复发性权重的初始化是正交的
从R2019a开始,软件,默认情况下,初始化这一层的层的权重 在以前的版本中,软件,默认情况下,初始化层反复使用的抽样权重0.01零均值和方差的正态分布。复制这种行为,设置
MATLAB命令
你点击一个链接对应MATLAB命令: 运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站: 选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。表现最好的网站怎么走吗
欧洲