gruLayer
门控循环单元(GRU)层
描述
GRU层学习时间序列和序列数据中时间步长之间的依赖关系。
创建
描述
层= gruLayer (numHiddenUnits)
创建一个GRU层并设置NumHiddenUnits财产。
层= gruLayer (numHiddenUnits,名称,值)
设置额外的OutputMode,激活,状态,参数和初始化,学习率和正则化,名字使用一个或多个名称-值对参数的属性。您可以指定多个名称-值对参数。将每个属性名称用引号括起来。
属性
格勒乌
NumHiddenUnits
- - - - - -<年代pan itemprop="purpose">隐藏单元数
正整数
该属性是只读的。
隐藏单元数(也称为隐藏大小),指定为正整数。
隐藏单元的数量对应于在时间步之间记住的信息量(隐藏状态)。隐藏状态可以包含以前所有时间步长的信息,与序列长度无关。如果隐藏单元的数量太大,则层可能会过度拟合训练数据。这个值可以从几十到几千不等。
隐藏状态不限制在迭代中处理的时间步数。将您的序列拆分为更小的序列,以便在使用trainNetwork函数,使用SequenceLength培训的选择。
数据类型:单|双|int8|int16|int32|int64|uint8|uint16|uint32|uint64
OutputMode
- - - - - -<年代pan itemprop="purpose">输出模式
“序列”
(默认)|<年代pan itemprop="inputvalue">“最后一次”
该属性是只读的。
输出模式,指定为以下之一:
“序列”—输出完整序列。
“最后一次”—输出序列的最后一个时间步长。
HasStateInputs
- - - - - -<年代pan itemprop="purpose">状态输入到层的标志
0(假)(默认)|<年代pan itemprop="inputvalue">1(真正的)
层的状态输入标志,指定为1(真正的)或0(假)。
如果HasStateInputs属性是0(false),则该层有一个带名称的输入“在”,对应于输入数据。在本例中,图层使用HiddenState属性用于图层操作。
如果HasStateInputs属性是1(true),则该层有两个带名称的输入“在”和“隐藏”,分别对应输入数据和隐藏状态。在这种情况下,层使用传递给这些输入的值进行层操作。如果HasStateInputs是1(真的),然后HiddenState属性必须为空。
HasStateOutputs
- - - - - -<年代pan itemprop="purpose">从层输出状态的标志
0(假)(默认)|<年代pan itemprop="inputvalue">1(真正的)
层的状态输出标志,指定为真正的或假。
如果HasStateOutputs属性是0(false),则该层有一个带有名称的输出“出”,对应于输出数据。
如果HasStateOutputs属性是1(true),则该层有两个带有名称的输出“出”和“隐藏”,分别对应于输出数据和隐藏状态。在这种情况下,层还输出在层操作期间计算的状态值。
ResetGateMode
- - - - - -<年代pan itemprop="purpose">复位门模式
“after-multiplication”
(默认)|<年代pan itemprop="inputvalue">“before-multiplication”
|<年代pan itemprop="inputvalue">“recurrent-bias-after-multiplication”
复位门模式,指定为以下之一:
“after-multiplication”-在矩阵乘法后应用复位门。此选项与cuDNN兼容。
“before-multiplication”-在矩阵乘法之前应用复位门。
“recurrent-bias-after-multiplication”-在矩阵乘法后应用复位门,并为循环权重使用一组额外的偏置项。
有关复位门计算的详细信息,请参见门控循环单元层。
InputSize
- - - - - -<年代pan itemprop="purpose">输入的大小
“汽车”
(默认)|<年代pan itemprop="inputvalue">正整数
该属性是只读的。
输入大小,指定为正整数或“汽车”。如果InputSize是“汽车”,则软件在训练时自动分配输入大小。
数据类型:双|字符|字符串
激活
StateActivationFunction
- - - - - -<年代pan itemprop="purpose">激活功能,更新隐藏状态
的双曲正切
(默认)|<年代pan itemprop="inputvalue">“softsign”
激活函数更新隐藏状态,指定为以下之一:
的双曲正切—使用tanh(双曲正切函数)。
“softsign”—使用softsign功能<年代pan class="inlineequation">
。
层使用这个选项作为函数<年代pan class="inlineequation">
在计算中更新隐藏状态。
GateActivationFunction
- - - - - -<年代pan itemprop="purpose">激活功能适用于门
“乙状结肠”
(默认)|<年代pan itemprop="inputvalue">“hard-sigmoid”
该属性是只读的。
激活函数应用于闸门,指定为以下之一:
“乙状结肠”—使用sigmoid函数<年代pan class="inlineequation">
。
“hard-sigmoid”—使用硬sigmoid功能
层使用这个选项作为函数<年代pan class="inlineequation">
在层门的计算中。
状态
HiddenState
- - - - - -<年代pan itemprop="purpose">隐藏状态
数值向量
在层操作中使用的隐藏状态,指定为aNumHiddenUnits- × 1数值向量。这个值对应于数据传递到层时的初始隐藏状态。
手动设置此属性后,调用resetState将隐藏状态设置为该值。
如果HasStateInputs是真正的,然后是HiddenState属性必须为空。
参数和初始化
InputWeightsInitializer
- - - - - -<年代pan itemprop="purpose">函数初始化输入权重
“glorot”
(默认)|<年代pan itemprop="inputvalue">“他”
|<年代pan itemprop="inputvalue">“正交”
|<年代pan itemprop="inputvalue">“narrow-normal”|<年代pan itemprop="inputvalue">“零”|<年代pan itemprop="inputvalue">“的”|<年代pan itemprop="inputvalue">函数处理
函数初始化输入权重,指定为以下之一:
“glorot”-使用gloot初始化器初始化输入权重[2](也称为Xavier初始化器)。gloot初始化器从均值和方差均为零的均匀分布中独立采样2/(InputSize + numOut),在那里numOut = 3*NumHiddenUnits。
“他”-使用He初始化器初始化输入权重[3]。He初始化器从均值和方差均为零的正态分布中采样2 / InputSize。
“正交”—初始化输入权重问的QR分解得到的正交矩阵Z=问R对于一个随机矩阵Z从单位正态分布中抽样。[4]
“narrow-normal”—初始化输入权重,从均值为零、标准差为0.01的正态分布中独立采样。
“零”—初始化输入权重为0。
“的”—初始化输入权重为1。
函数句柄-使用自定义函数初始化输入权重。如果指定函数句柄,则该函数必须为权重= func(sz),在那里深圳是输入权值的大小。
层只初始化输入权重InputWeights房产是空的。
数据类型:字符|字符串|function_handle
RecurrentWeightsInitializer
- - - - - -<年代pan itemprop="purpose">函数初始化循环权值
“正交”
(默认)|<年代pan itemprop="inputvalue">“glorot”
|<年代pan itemprop="inputvalue">“他”
|<年代pan itemprop="inputvalue">“narrow-normal”|<年代pan itemprop="inputvalue">“零”|<年代pan itemprop="inputvalue">“的”|<年代pan itemprop="inputvalue">函数处理
函数初始化循环权值,指定为以下之一:
“正交”初始化循环权值问的QR分解得到的正交矩阵Z=问R对于一个随机矩阵Z从单位正态分布中抽样。[4]
“glorot”-使用gloot初始化器初始化循环权重[2](也称为Xavier初始化器)。gloot初始化器从均值和方差均为零的均匀分布中独立采样2/(numIn + numOut),在那里numIn = NumHiddenUnits和numOut = 3*NumHiddenUnits。
“他”-使用He初始化器初始化循环权重[3]。He初始化器从均值和方差均为零的正态分布中采样2 / NumHiddenUnits。
“narrow-normal”—通过从均值为零、标准差为0.01的正态分布中独立采样来初始化循环权值。
“零”—用零初始化循环权值。
“的”-将循环权值初始化为1。
函数句柄-使用自定义函数初始化循环权重。如果指定函数句柄,则该函数必须为权重= func(sz),在那里深圳是循环权值的大小。
层只初始化循环权值RecurrentWeights房产是空的。
数据类型:字符|字符串|function_handle
BiasInitializer
- - - - - -<年代pan itemprop="purpose">初始化偏置的函数
“零”
(默认)|<年代pan itemprop="inputvalue">“narrow-normal”
|<年代pan itemprop="inputvalue">“的”
|<年代pan itemprop="inputvalue">函数处理
函数初始化偏置,指定为以下之一:
0的—用零初始化偏置。
“narrow-normal”—通过从平均值为零、标准差为0.01的正态分布中独立采样来初始化偏差。
“的”-用1初始化偏置。
函数句柄-用自定义函数初始化偏差。如果指定函数句柄,则该函数必须为偏差= func(sz),在那里深圳是偏差的大小。
层只初始化偏差,当偏见房产是空的。
数据类型:字符|字符串|function_handle
InputWeights
- - - - - -<年代pan itemprop="purpose">输入重量
[]
(默认)|<年代pan itemprop="inputvalue">矩阵
输入权重,指定为矩阵。
输入权矩阵是GRU层中组件的三个输入权矩阵的串联。这三个矩阵按以下顺序垂直连接:
重设门
更新门
候选人的状态
输入权值是可学习的参数。在训练网络时,如果InputWeights是非空的trainNetwork使用InputWeights属性作为初始值。如果InputWeights那么它是空的trainNetwork指定的初始化项InputWeightsInitializer。
在训练时,InputWeights是一个3 * NumHiddenUnits——- - - - - -InputSize矩阵。
RecurrentWeights
- - - - - -<年代pan itemprop="purpose">复发性权重
[]
(默认)|<年代pan itemprop="inputvalue">矩阵
循环权值,用矩阵表示。
循环权矩阵是GRU层中组件的三个循环权矩阵的串联。这三个矩阵按以下顺序垂直连接:
重设门
更新门
候选人的状态
循环权值是可学习的参数。在训练网络时,如果RecurrentWeights是非空的trainNetwork使用RecurrentWeights属性作为初始值。如果RecurrentWeights那么它是空的trainNetwork指定的初始化项RecurrentWeightsInitializer。
在训练时RecurrentWeights是一个3 * NumHiddenUnits——- - - - - -NumHiddenUnits矩阵。
偏见
- - - - - -<年代pan itemprop="purpose">层的偏见
[]
(默认)|<年代pan itemprop="inputvalue">数值向量
GRU层的层偏差,指定为数值向量。
如果ResetGateMode是“after-multiplication”或“before-multiplication”,则偏置向量是GRU层中组件的三个偏置向量的串联。这三个向量按以下顺序垂直连接:
重设门
更新门
候选人的状态
在这种情况下,在训练时,偏见是一个3 * NumHiddenUnits- × 1数值向量。
如果ResetGateMode是recurrent-bias-after-multiplication”,则偏置向量是GRU层中组件的六个偏置向量的串联。这六个向量按以下顺序垂直连接:
重设门
更新门
候选人的状态
复位门(周期性偏置)
更新门(循环偏置)
候选状态(循环偏差)
在这种情况下,在训练时,偏见是一个6 * NumHiddenUnits- × 1数值向量。
层偏差是可学习的参数。当你训练一个网络时,如果偏见是非空的trainNetwork使用偏见属性作为初始值。如果偏见那么它是空的trainNetwork指定的初始化项BiasInitializer。
有关复位门计算的详细信息,请参见门控循环单元层。
学习率和正则化
InputWeightsLearnRateFactor
- - - - - -<年代pan itemprop="purpose">输入权重的学习率因子
1(默认)|<年代pan itemprop="inputvalue">数字标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
输入权重的学习率因子,指定为数字标量或1 × 3数字向量。
软件将该因子乘以全局学习率,以确定该层输入权重的学习率因子。例如,如果InputWeightsLearnRateFactor为2,则该层的输入权重的学习率因子是当前全局学习率的两倍。软件根据指定的设置确定全局学习率trainingOptions函数。
控制中三个单独矩阵的学习率因子的值InputWeights,指定一个1 × 3向量。的条目InputWeightsLearnRateFactor对应以下的学习率因子:
重设门
更新门
候选人的状态
若要为所有矩阵指定相同的值,请指定一个非负标量。
例子:2
例子:[1 2 1]
RecurrentWeightsLearnRateFactor
- - - - - -<年代pan itemprop="purpose">循环权值的学习率因子
1(默认)|<年代pan itemprop="inputvalue">数字标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
周期性权重的学习率因子,指定为数字标量或1 × 3数字向量。
软件将这个因子乘以全局学习率来确定层的循环权值的学习率。例如,如果RecurrentWeightsLearnRateFactor= 2,则该层循环权值的学习率是当前全局学习率的两倍。软件根据指定的设置确定全局学习率trainingOptions函数。
控制中三个单独矩阵的学习率因子的值RecurrentWeights,指定一个1 × 3向量。的条目RecurrentWeightsLearnRateFactor对应以下的学习率因子:
重设门
更新门
候选人的状态
若要为所有矩阵指定相同的值,请指定一个非负标量。
例子:2
例子:[1 2 1]
BiasLearnRateFactor
- - - - - -<年代pan itemprop="purpose">偏差的学习率因子
1(默认)|<年代pan itemprop="inputvalue">负的标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
偏差的学习率因子,指定为非负标量或1 × 3数字向量。
软件将这个因子乘以全局学习率来确定这一层偏差的学习率。例如,如果BiasLearnRateFactor是2,则该层中偏差的学习率是当前全局学习率的两倍。软件根据您指定的设置来确定全局学习率trainingOptions函数。
控制中三个独立向量的学习率因子的值偏见,指定一个1 × 3向量。的条目BiasLearnRateFactor对应以下的学习率因子:
重设门
更新门
候选人的状态
如果ResetGateMode是“recurrent-bias-after-multiplication”,然后软件使用相同的向量作为循环偏置向量。
若要为所有向量指定相同的值,请指定一个非负标量。
例子:2
例子:[1 2 1]
InputWeightsL2Factor
- - - - - -<年代pan itemprop="purpose">输入权重的L2正则化因子
1(默认)|<年代pan itemprop="inputvalue">数字标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
输入权重的L2正则化因子,指定为数字标量或1 × 3数字向量。
软件将此因子乘以全局L2正则化因子,以确定该层输入权重的L2正则化因子。例如,如果InputWeightsL2Factor为2,则该层的输入权重的L2正则化因子是当前全局L2正则化因子的两倍。软件根据指定的设置确定L2正则化因子trainingOptions函数。
中的三个单独矩阵的L2正则化因子的值InputWeights,指定一个1 × 3向量。的条目InputWeightsL2Factor对应如下的L2正则化因子:
重设门
更新门
候选人的状态
若要为所有矩阵指定相同的值,请指定一个非负标量。
例子:2
例子:[1 2 1]
RecurrentWeightsL2Factor
- - - - - -<年代pan itemprop="purpose">L2正则化因子用于循环权值
1(默认)|<年代pan itemprop="inputvalue">数字标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
用于循环权值的L2正则化因子,指定为数字标量或1 × 3数字向量。
软件将此因子乘以全局L2正则化因子,以确定该层的循环权重的L2正则化因子。例如,如果RecurrentWeightsL2Factor为2,则该层的循环权值的L2正则化因子是当前全局L2正则化因子的两倍。软件根据指定的设置确定L2正则化因子trainingOptions函数。
中的三个单独矩阵的L2正则化因子的值RecurrentWeights,指定一个1 × 3向量。的条目RecurrentWeightsL2Factor对应如下的L2正则化因子:
重设门
更新门
候选人的状态
若要为所有矩阵指定相同的值,请指定一个非负标量。
例子:2
例子:[1 2 1]
BiasL2Factor
- - - - - -<年代pan itemprop="purpose">偏差的L2正则化因子
0(默认)|<年代pan itemprop="inputvalue">负的标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
偏差的L2正则化因子,指定为非负标量或1 × 3数值向量。
软件将这个因子乘以全局l<年代ub>2正则化因子来确定l<年代ub>2对这一层的偏差进行正则化。例如,如果BiasL2Factor是2,然后是l<年代ub>2这一层偏差的正则化是全局的两倍l<年代ub>2正则化因子。您可以指定全局l<年代ub>2正则化因子trainingOptions函数。
中的单个向量的L2正则化因子的值偏见,指定一个1 × 3向量。的条目BiasL2Factor对应如下的L2正则化因子:
重设门
更新门
候选人的状态
如果ResetGateMode是“recurrent-bias-after-multiplication”,然后软件使用相同的向量作为循环偏置向量。
若要为所有向量指定相同的值,请指定一个非负标量。
例子:2
例子:[1 2 1]
层
名字
- - - - - -<年代pan itemprop="purpose">层的名字
''
(默认)|<年代pan itemprop="inputvalue">特征向量|<年代pan itemprop="inputvalue">字符串标量
图层名称,指定为字符向量或字符串标量。为层数组输入trainNetwork,assembleNetwork,layerGraph,dlnetwork函数会自动给有名称的图层分配名称''。
数据类型:字符|字符串
NumInputs
- - - - - -<年代pan itemprop="purpose">输入数
1
|<年代pan itemprop="inputvalue">2
层的输入数。
如果HasStateInputs属性是0(false),则该层有一个带名称的输入“在”,对应于输入数据。在本例中,图层使用HiddenState属性用于图层操作。
如果HasStateInputs属性是1(true),则该层有两个带名称的输入“在”和“隐藏”,分别对应输入数据和隐藏状态。在这种情况下,层使用传递给这些输入的值进行层操作。如果HasStateInputs是1(真的),然后HiddenState属性必须为空。
数据类型:双
InputNames
- - - - - -<年代pan itemprop="purpose">输入名字
{'在'}
|<年代pan itemprop="inputvalue">{“在”、“隐藏”}
输入图层的名称。
如果HasStateInputs属性是0(false),则该层有一个带名称的输入“在”,对应于输入数据。在本例中,图层使用HiddenState属性用于图层操作。
如果HasStateInputs属性是1(true),则该层有两个带名称的输入“在”和“隐藏”,分别对应输入数据和隐藏状态。在这种情况下,层使用传递给这些输入的值进行层操作。如果HasStateInputs是1(真的),然后HiddenState属性必须为空。
NumOutputs
- - - - - -<年代pan itemprop="purpose">输出数量
1
|<年代pan itemprop="inputvalue">2
层的输出数。
如果HasStateOutputs属性是0(false),则该层有一个带有名称的输出“出”,对应于输出数据。
如果HasStateOutputs属性是1(true),则该层有两个带有名称的输出“出”和“隐藏”,分别对应于输出数据和隐藏状态。在这种情况下,层还输出在层操作期间计算的状态值。
数据类型:双
OutputNames
- - - - - -<年代pan itemprop="purpose">输出的名字
{“出”}
|<年代pan itemprop="inputvalue">{‘出来’,‘隐藏’}
输出图层的名称。
如果HasStateOutputs属性是0(false),则该层有一个带有名称的输出“出”,对应于输出数据。
如果HasStateOutputs属性是1(true),则该层有两个带有名称的输出“出”和“隐藏”,分别对应于输出数据和隐藏状态。在这种情况下,层还输出在层操作期间计算的状态值。
例子
创建GRU层
创建一个名为GRU的图层“gru1”还有100个隐藏单位。
图层= gruLayer(100,<年代pan style="color:#A020F0">“名字”,<年代pan style="color:#A020F0">“gru1”)
layer = GRULayer with properties: Name: 'gru1' InputNames: {'in'} OutputNames: {'out'} NumInputs: 1 NumOutputs: 1 HasStateInputs: 0 HasStateOutputs: 0 Hyperparameters InputSize: 'auto' NumHiddenUnits: 100 OutputMode: 'sequence' StateActivationFunction: 'tanh' GateActivationFunction: 'sigmoid' ResetGateMode: 'after-multiplication'可学习参数InputWeights: [] RecurrentWeights: [] Bias: [] State Parameters hidulstate:[]显示所有属性
包含GRU层层数组中。
inputSize = 12;numHiddenUnits = 100;numClasses = 9;图层= [<年代pan style="color:#0000FF">…sequenceInputLayer(inputSize) gruLayer(numHiddenUnits) fulllyconnectedlayer (numClasses) softmaxLayer classificationLayer]
层= 5x1层阵列层:1“序列输入序列输入12维2”GRU GRU有100个隐藏单元3“全连接9全连接层4“Softmax Softmax 5”分类输出交叉
算法
门控循环单元层
GRU层学习时间序列和序列数据中时间步长之间的依赖关系。
的<年代pan class="emphasis">隐藏状态在时间步长处的层t包含GRU层在此时间步长的输出。在每个时间步骤中,该层向状态添加信息或从状态中删除信息。层控制这些更新使用<年代pan class="emphasis">盖茨。
以下组件控制层的隐藏状态。
组件
目的
复位门(r)
状态复位控制级别
更新门(z)
状态更新的控制级别
候选状态(<年代pan class="inlineequation">
)
添加到隐藏状态的更新控制级别
GRU层的可学习权值就是输入权值W(InputWeights),即循环权值R(RecurrentWeights),以及偏见b(偏见)。如果ResetGateMode属性是“recurrent-bias-after-multiplication”,则栅极和状态计算需要两组偏置值。的矩阵W和R分别是每个分量的输入权值和循环权值的连接。这些矩阵连接如下:
在哪里r,z,<年代pan class="inlineequation">
分别表示重置门、更新门和候选状态。
偏置向量取决于ResetGateMode财产。如果ResetGateMode是“after-multiplication”或“before-multiplication”,则偏置向量是三个向量的串联:
这里的下标W表示这是与输入权重乘法相对应的偏置。
如果ResetGateMode是“recurrent-bias-after-multiplication”,则偏置向量是六个向量的串联:
这里的下标R表示这是与循环权重乘法相对应的偏差。
在时间步长的隐藏状态t是由
下面的公式描述了在时间步长的分量t。
组件
ResetGateMode
公式
重设门
“after-multiplication”
“before-multiplication”
“recurrent-bias-after-multiplication”
更新门
“after-multiplication”
“before-multiplication”
“recurrent-bias-after-multiplication”
候选人的状态
“after-multiplication”
“before-multiplication”
“recurrent-bias-after-multiplication”
在这些计算中,<年代pan class="inlineequation">
和<年代pan class="inlineequation">
分别表示门和状态激活函数。的gruLayer函数,默认情况下使用由<年代pan class="inlineequation">
计算门激活函数和双曲正切函数(tanh),计算状态激活函数。要指定状态和门激活函数,请使用StateActivationFunction和GateActivationFunction属性,分别。
图层输入和输出格式
层数组或层图中的层传递指定为格式化的数据dlarray对象。
你可以与它们互动dlarray对象在自动区分工作流中,例如在开发自定义层时,使用functionLayer对象,或使用向前和预测功能与dlnetwork对象。
的支持输入格式金宝appGRULayer对象和相应的输出格式。如果将层的输出传递给不继承自的自定义层nnet.layer.Formattable类,或者FunctionLayer对象。Formattable选项设置为假,则该层接收一个未格式化的dlarray对象,其尺寸顺序与该表中列出的格式相对应。
输入格式
OutputMode
输出格式
“CB”(通道、批处理)
“序列”
“CB”(通道、批处理)
“最后一次”
“认知行为治疗”(通道、批次、时间)
“序列”
“认知行为治疗”(通道、批次、时间)
“最后一次”
“CB”(通道、批处理)
在dlnetwork对象,GRULayer对象还支持以下输入和输出格金宝app式组合。
输入格式
OutputMode
输出格式
“渣打银行”(空间、通道、批量)
“序列”
“CB”(通道、批处理)
“最后一次”
“SSCB”(空间、空间、通道)
“序列”
“CB”(通道、批处理)
“最后一次”
“SSSCB”(空间,空间,空间,通道)
“序列”
“CB”(通道、批处理)
“最后一次”
“SCBT”(空间、通道、批量)
“序列”
“认知行为治疗”(通道、批次、时间)
“最后一次”
“CB”(通道、批处理)
“SSCBT”(空间、空间、通道、批次、时间)
“序列”
“认知行为治疗”(通道、批次、时间)
“最后一次”
“CB”(通道、批处理)
“SSSCBT”(空间、空间、空间、通道、批次、时间)
“序列”
“认知行为治疗”(通道、批次、时间)
“最后一次”
“CB”(通道、批处理)
中使用这些输入格式trainNetwork工作流,首先将数据转换为“认知行为治疗”(通道、批处理、时间)格式使用flattenLayer。
如果HasStateInputs属性是1(true),则该层有两个带有名称的额外输入“隐藏”和“细胞”,分别对应于隐藏状态和单元状态。这些额外的输入需要输入格式“CB”(频道,批处理)。
如果HasStateOutputs属性是1(true),则该层有两个带有名称的附加输出“隐藏”和“细胞”,分别对应于隐藏状态和单元状态。这些附加输出具有输出格式“CB”(频道,批处理)。
参考文献
[1] Cho, Kyunghyun, Bart Van Merriënboer, Caglar Gulcehre, Dzmitry Bahdanau, Fethi Bougares, Holger Schwenk和Yoshua Bengio。使用RNN编码器-解码器学习用于统计机器翻译的短语表示。arXiv预印arXiv:1406.1078(2014)。
格罗洛特、泽维尔和约书亚·本吉奥。“理解训练深度前馈神经网络的难度。”在第十三届国际人工智能与统计会议论文集, 249 - 356。撒丁岛,意大利:AISTATS, 2010。
[10]何凯,张翔宇,任少卿,孙健。“深入研究整流器:在ImageNet分类上超越人类水平的表现。”在2015 IEEE计算机视觉国际会议论文集, 1026 - 1034。华盛顿特区:IEEE计算机视觉学会,2015。
[4] Saxe, Andrew M, James L. McClelland和Surya Ganguli。"深度线性神经金宝搏官方网站网络中学习的非线性动力学的精确解"arXiv预印arXiv:1312.6120(2013)。
扩展功能
C/ c++代码生成
<年代pan class=" remove_bold add_font_color_general">使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
的StateActivationFunction属性必须设置为的双曲正切。
的GateActivationFunction属性必须设置为“乙状结肠”。
的ResetGateMode属性必须设置为“after-multiplication”或“recurrent-bias-after-multiplication”。
的HasStateInputs和HasStateOutputs属性必须设置为0(假)。
GPU代码生成
<年代pan class=" remove_bold add_font_color_general">使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。
使用注意事项和限制:
的StateActivationFunction属性必须设置为的双曲正切。
的GateActivationFunction属性必须设置为“乙状结肠”。
的ResetGateMode属性必须设置为“after-multiplication”或“recurrent-bias-after-multiplication”。
的HasStateInputs和HasStateOutputs属性必须设置为0(假)。
版本历史
在R2020a中引入
另请参阅
trainingOptions
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">trainNetwork
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">sequenceInputLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">lstmLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">bilstmLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">convolution1dLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">maxPooling1dLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">averagePooling1dLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">globalMaxPooling1dLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">globalAveragePooling1dLayer
门控循环单元(GRU)层
描述
GRU层学习时间序列和序列数据中时间步长之间的依赖关系。
GRU层学习时间序列和序列数据中时间步长之间的依赖关系。
创建
描述
层= gruLayer (numHiddenUnits)
创建一个GRU层并设置NumHiddenUnits财产。
层= gruLayer (numHiddenUnits,名称,值)
设置额外的OutputMode,激活,状态,参数和初始化,学习率和正则化,名字使用一个或多个名称-值对参数的属性。您可以指定多个名称-值对参数。将每个属性名称用引号括起来。
描述
层= gruLayer (numHiddenUnits)
创建一个GRU层并设置NumHiddenUnits财产。
层= gruLayer (numHiddenUnits,名称,值)
设置额外的OutputMode,激活,状态,参数和初始化,学习率和正则化,名字使用一个或多个名称-值对参数的属性。您可以指定多个名称-值对参数。将每个属性名称用引号括起来。
创建一个GRU层并设置层
NumHiddenUnits
设置额外的层
OutputMode
名字
属性
格勒乌
NumHiddenUnits
- - - - - -<年代pan itemprop="purpose">隐藏单元数
正整数
该属性是只读的。
隐藏单元数(也称为隐藏大小),指定为正整数。
隐藏单元的数量对应于在时间步之间记住的信息量(隐藏状态)。隐藏状态可以包含以前所有时间步长的信息,与序列长度无关。如果隐藏单元的数量太大,则层可能会过度拟合训练数据。这个值可以从几十到几千不等。
隐藏状态不限制在迭代中处理的时间步数。将您的序列拆分为更小的序列,以便在使用trainNetwork函数,使用SequenceLength培训的选择。
数据类型:单|双|int8|int16|int32|int64|uint8|uint16|uint32|uint64
OutputMode
- - - - - -<年代pan itemprop="purpose">输出模式
“序列”
(默认)|<年代pan itemprop="inputvalue">“最后一次”
该属性是只读的。
输出模式,指定为以下之一:
“序列”—输出完整序列。
“最后一次”—输出序列的最后一个时间步长。
HasStateInputs
- - - - - -<年代pan itemprop="purpose">状态输入到层的标志
0(假)(默认)|<年代pan itemprop="inputvalue">1(真正的)
层的状态输入标志,指定为1(真正的)或0(假)。
如果HasStateInputs属性是0(false),则该层有一个带名称的输入“在”,对应于输入数据。在本例中,图层使用HiddenState属性用于图层操作。
如果HasStateInputs属性是1(true),则该层有两个带名称的输入“在”和“隐藏”,分别对应输入数据和隐藏状态。在这种情况下,层使用传递给这些输入的值进行层操作。如果HasStateInputs是1(真的),然后HiddenState属性必须为空。
HasStateOutputs
- - - - - -<年代pan itemprop="purpose">从层输出状态的标志
0(假)(默认)|<年代pan itemprop="inputvalue">1(真正的)
层的状态输出标志,指定为真正的或假。
如果HasStateOutputs属性是0(false),则该层有一个带有名称的输出“出”,对应于输出数据。
如果HasStateOutputs属性是1(true),则该层有两个带有名称的输出“出”和“隐藏”,分别对应于输出数据和隐藏状态。在这种情况下,层还输出在层操作期间计算的状态值。
ResetGateMode
- - - - - -<年代pan itemprop="purpose">复位门模式
“after-multiplication”
(默认)|<年代pan itemprop="inputvalue">“before-multiplication”
|<年代pan itemprop="inputvalue">“recurrent-bias-after-multiplication”
复位门模式,指定为以下之一:
“after-multiplication”-在矩阵乘法后应用复位门。此选项与cuDNN兼容。
“before-multiplication”-在矩阵乘法之前应用复位门。
“recurrent-bias-after-multiplication”-在矩阵乘法后应用复位门,并为循环权重使用一组额外的偏置项。
有关复位门计算的详细信息,请参见门控循环单元层。
InputSize
- - - - - -<年代pan itemprop="purpose">输入的大小
“汽车”
(默认)|<年代pan itemprop="inputvalue">正整数
该属性是只读的。
输入大小,指定为正整数或“汽车”。如果InputSize是“汽车”,则软件在训练时自动分配输入大小。
数据类型:双|字符|字符串
激活
StateActivationFunction
- - - - - -<年代pan itemprop="purpose">激活功能,更新隐藏状态
的双曲正切
(默认)|<年代pan itemprop="inputvalue">“softsign”
激活函数更新隐藏状态,指定为以下之一:
的双曲正切—使用tanh(双曲正切函数)。
“softsign”—使用softsign功能<年代pan class="inlineequation">
。
层使用这个选项作为函数<年代pan class="inlineequation">
在计算中更新隐藏状态。
GateActivationFunction
- - - - - -<年代pan itemprop="purpose">激活功能适用于门
“乙状结肠”
(默认)|<年代pan itemprop="inputvalue">“hard-sigmoid”
该属性是只读的。
激活函数应用于闸门,指定为以下之一:
“乙状结肠”—使用sigmoid函数<年代pan class="inlineequation">
。
“hard-sigmoid”—使用硬sigmoid功能
层使用这个选项作为函数<年代pan class="inlineequation">
在层门的计算中。
状态
HiddenState
- - - - - -<年代pan itemprop="purpose">隐藏状态
数值向量
在层操作中使用的隐藏状态,指定为aNumHiddenUnits- × 1数值向量。这个值对应于数据传递到层时的初始隐藏状态。
手动设置此属性后,调用resetState将隐藏状态设置为该值。
如果HasStateInputs是真正的,然后是HiddenState属性必须为空。
参数和初始化
InputWeightsInitializer
- - - - - -<年代pan itemprop="purpose">函数初始化输入权重
“glorot”
(默认)|<年代pan itemprop="inputvalue">“他”
|<年代pan itemprop="inputvalue">“正交”
|<年代pan itemprop="inputvalue">“narrow-normal”|<年代pan itemprop="inputvalue">“零”|<年代pan itemprop="inputvalue">“的”|<年代pan itemprop="inputvalue">函数处理
函数初始化输入权重,指定为以下之一:
“glorot”-使用gloot初始化器初始化输入权重[2](也称为Xavier初始化器)。gloot初始化器从均值和方差均为零的均匀分布中独立采样2/(InputSize + numOut),在那里numOut = 3*NumHiddenUnits。
“他”-使用He初始化器初始化输入权重[3]。He初始化器从均值和方差均为零的正态分布中采样2 / InputSize。
“正交”—初始化输入权重问的QR分解得到的正交矩阵Z=问R对于一个随机矩阵Z从单位正态分布中抽样。[4]
“narrow-normal”—初始化输入权重,从均值为零、标准差为0.01的正态分布中独立采样。
“零”—初始化输入权重为0。
“的”—初始化输入权重为1。
函数句柄-使用自定义函数初始化输入权重。如果指定函数句柄,则该函数必须为权重= func(sz),在那里深圳是输入权值的大小。
层只初始化输入权重InputWeights房产是空的。
数据类型:字符|字符串|function_handle
RecurrentWeightsInitializer
- - - - - -<年代pan itemprop="purpose">函数初始化循环权值
“正交”
(默认)|<年代pan itemprop="inputvalue">“glorot”
|<年代pan itemprop="inputvalue">“他”
|<年代pan itemprop="inputvalue">“narrow-normal”|<年代pan itemprop="inputvalue">“零”|<年代pan itemprop="inputvalue">“的”|<年代pan itemprop="inputvalue">函数处理
函数初始化循环权值,指定为以下之一:
“正交”初始化循环权值问的QR分解得到的正交矩阵Z=问R对于一个随机矩阵Z从单位正态分布中抽样。[4]
“glorot”-使用gloot初始化器初始化循环权重[2](也称为Xavier初始化器)。gloot初始化器从均值和方差均为零的均匀分布中独立采样2/(numIn + numOut),在那里numIn = NumHiddenUnits和numOut = 3*NumHiddenUnits。
“他”-使用He初始化器初始化循环权重[3]。He初始化器从均值和方差均为零的正态分布中采样2 / NumHiddenUnits。
“narrow-normal”—通过从均值为零、标准差为0.01的正态分布中独立采样来初始化循环权值。
“零”—用零初始化循环权值。
“的”-将循环权值初始化为1。
函数句柄-使用自定义函数初始化循环权重。如果指定函数句柄,则该函数必须为权重= func(sz),在那里深圳是循环权值的大小。
层只初始化循环权值RecurrentWeights房产是空的。
数据类型:字符|字符串|function_handle
BiasInitializer
- - - - - -<年代pan itemprop="purpose">初始化偏置的函数
“零”
(默认)|<年代pan itemprop="inputvalue">“narrow-normal”
|<年代pan itemprop="inputvalue">“的”
|<年代pan itemprop="inputvalue">函数处理
函数初始化偏置,指定为以下之一:
0的—用零初始化偏置。
“narrow-normal”—通过从平均值为零、标准差为0.01的正态分布中独立采样来初始化偏差。
“的”-用1初始化偏置。
函数句柄-用自定义函数初始化偏差。如果指定函数句柄,则该函数必须为偏差= func(sz),在那里深圳是偏差的大小。
层只初始化偏差,当偏见房产是空的。
数据类型:字符|字符串|function_handle
InputWeights
- - - - - -<年代pan itemprop="purpose">输入重量
[]
(默认)|<年代pan itemprop="inputvalue">矩阵
输入权重,指定为矩阵。
输入权矩阵是GRU层中组件的三个输入权矩阵的串联。这三个矩阵按以下顺序垂直连接:
重设门
更新门
候选人的状态
输入权值是可学习的参数。在训练网络时,如果InputWeights是非空的trainNetwork使用InputWeights属性作为初始值。如果InputWeights那么它是空的trainNetwork指定的初始化项InputWeightsInitializer。
在训练时,InputWeights是一个3 * NumHiddenUnits——- - - - - -InputSize矩阵。
RecurrentWeights
- - - - - -<年代pan itemprop="purpose">复发性权重
[]
(默认)|<年代pan itemprop="inputvalue">矩阵
循环权值,用矩阵表示。
循环权矩阵是GRU层中组件的三个循环权矩阵的串联。这三个矩阵按以下顺序垂直连接:
重设门
更新门
候选人的状态
循环权值是可学习的参数。在训练网络时,如果RecurrentWeights是非空的trainNetwork使用RecurrentWeights属性作为初始值。如果RecurrentWeights那么它是空的trainNetwork指定的初始化项RecurrentWeightsInitializer。
在训练时RecurrentWeights是一个3 * NumHiddenUnits——- - - - - -NumHiddenUnits矩阵。
偏见
- - - - - -<年代pan itemprop="purpose">层的偏见
[]
(默认)|<年代pan itemprop="inputvalue">数值向量
GRU层的层偏差,指定为数值向量。
如果ResetGateMode是“after-multiplication”或“before-multiplication”,则偏置向量是GRU层中组件的三个偏置向量的串联。这三个向量按以下顺序垂直连接:
重设门
更新门
候选人的状态
在这种情况下,在训练时,偏见是一个3 * NumHiddenUnits- × 1数值向量。
如果ResetGateMode是recurrent-bias-after-multiplication”,则偏置向量是GRU层中组件的六个偏置向量的串联。这六个向量按以下顺序垂直连接:
重设门
更新门
候选人的状态
复位门(周期性偏置)
更新门(循环偏置)
候选状态(循环偏差)
在这种情况下,在训练时,偏见是一个6 * NumHiddenUnits- × 1数值向量。
层偏差是可学习的参数。当你训练一个网络时,如果偏见是非空的trainNetwork使用偏见属性作为初始值。如果偏见那么它是空的trainNetwork指定的初始化项BiasInitializer。
有关复位门计算的详细信息,请参见门控循环单元层。
学习率和正则化
InputWeightsLearnRateFactor
- - - - - -<年代pan itemprop="purpose">输入权重的学习率因子
1(默认)|<年代pan itemprop="inputvalue">数字标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
输入权重的学习率因子,指定为数字标量或1 × 3数字向量。
软件将该因子乘以全局学习率,以确定该层输入权重的学习率因子。例如,如果InputWeightsLearnRateFactor为2,则该层的输入权重的学习率因子是当前全局学习率的两倍。软件根据指定的设置确定全局学习率trainingOptions函数。
控制中三个单独矩阵的学习率因子的值InputWeights,指定一个1 × 3向量。的条目InputWeightsLearnRateFactor对应以下的学习率因子:
重设门
更新门
候选人的状态
若要为所有矩阵指定相同的值,请指定一个非负标量。
例子:2
例子:[1 2 1]
RecurrentWeightsLearnRateFactor
- - - - - -<年代pan itemprop="purpose">循环权值的学习率因子
1(默认)|<年代pan itemprop="inputvalue">数字标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
周期性权重的学习率因子,指定为数字标量或1 × 3数字向量。
软件将这个因子乘以全局学习率来确定层的循环权值的学习率。例如,如果RecurrentWeightsLearnRateFactor= 2,则该层循环权值的学习率是当前全局学习率的两倍。软件根据指定的设置确定全局学习率trainingOptions函数。
控制中三个单独矩阵的学习率因子的值RecurrentWeights,指定一个1 × 3向量。的条目RecurrentWeightsLearnRateFactor对应以下的学习率因子:
重设门
更新门
候选人的状态
若要为所有矩阵指定相同的值,请指定一个非负标量。
例子:2
例子:[1 2 1]
BiasLearnRateFactor
- - - - - -<年代pan itemprop="purpose">偏差的学习率因子
1(默认)|<年代pan itemprop="inputvalue">负的标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
偏差的学习率因子,指定为非负标量或1 × 3数字向量。
软件将这个因子乘以全局学习率来确定这一层偏差的学习率。例如,如果BiasLearnRateFactor是2,则该层中偏差的学习率是当前全局学习率的两倍。软件根据您指定的设置来确定全局学习率trainingOptions函数。
控制中三个独立向量的学习率因子的值偏见,指定一个1 × 3向量。的条目BiasLearnRateFactor对应以下的学习率因子:
重设门
更新门
候选人的状态
如果ResetGateMode是“recurrent-bias-after-multiplication”,然后软件使用相同的向量作为循环偏置向量。
若要为所有向量指定相同的值,请指定一个非负标量。
例子:2
例子:[1 2 1]
InputWeightsL2Factor
- - - - - -<年代pan itemprop="purpose">输入权重的L2正则化因子
1(默认)|<年代pan itemprop="inputvalue">数字标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
输入权重的L2正则化因子,指定为数字标量或1 × 3数字向量。
软件将此因子乘以全局L2正则化因子,以确定该层输入权重的L2正则化因子。例如,如果InputWeightsL2Factor为2,则该层的输入权重的L2正则化因子是当前全局L2正则化因子的两倍。软件根据指定的设置确定L2正则化因子trainingOptions函数。
中的三个单独矩阵的L2正则化因子的值InputWeights,指定一个1 × 3向量。的条目InputWeightsL2Factor对应如下的L2正则化因子:
重设门
更新门
候选人的状态
若要为所有矩阵指定相同的值,请指定一个非负标量。
例子:2
例子:[1 2 1]
RecurrentWeightsL2Factor
- - - - - -<年代pan itemprop="purpose">L2正则化因子用于循环权值
1(默认)|<年代pan itemprop="inputvalue">数字标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
用于循环权值的L2正则化因子,指定为数字标量或1 × 3数字向量。
软件将此因子乘以全局L2正则化因子,以确定该层的循环权重的L2正则化因子。例如,如果RecurrentWeightsL2Factor为2,则该层的循环权值的L2正则化因子是当前全局L2正则化因子的两倍。软件根据指定的设置确定L2正则化因子trainingOptions函数。
中的三个单独矩阵的L2正则化因子的值RecurrentWeights,指定一个1 × 3向量。的条目RecurrentWeightsL2Factor对应如下的L2正则化因子:
重设门
更新门
候选人的状态
若要为所有矩阵指定相同的值,请指定一个非负标量。
例子:2
例子:[1 2 1]
BiasL2Factor
- - - - - -<年代pan itemprop="purpose">偏差的L2正则化因子
0(默认)|<年代pan itemprop="inputvalue">负的标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
偏差的L2正则化因子,指定为非负标量或1 × 3数值向量。
软件将这个因子乘以全局l<年代ub>2正则化因子来确定l<年代ub>2对这一层的偏差进行正则化。例如,如果BiasL2Factor是2,然后是l<年代ub>2这一层偏差的正则化是全局的两倍l<年代ub>2正则化因子。您可以指定全局l<年代ub>2正则化因子trainingOptions函数。
中的单个向量的L2正则化因子的值偏见,指定一个1 × 3向量。的条目BiasL2Factor对应如下的L2正则化因子:
重设门
更新门
候选人的状态
如果ResetGateMode是“recurrent-bias-after-multiplication”,然后软件使用相同的向量作为循环偏置向量。
若要为所有向量指定相同的值,请指定一个非负标量。
例子:2
例子:[1 2 1]
层
名字
- - - - - -<年代pan itemprop="purpose">层的名字
''
(默认)|<年代pan itemprop="inputvalue">特征向量|<年代pan itemprop="inputvalue">字符串标量
图层名称,指定为字符向量或字符串标量。为层数组输入trainNetwork,assembleNetwork,layerGraph,dlnetwork函数会自动给有名称的图层分配名称''。
数据类型:字符|字符串
NumInputs
- - - - - -<年代pan itemprop="purpose">输入数
1
|<年代pan itemprop="inputvalue">2
层的输入数。
如果HasStateInputs属性是0(false),则该层有一个带名称的输入“在”,对应于输入数据。在本例中,图层使用HiddenState属性用于图层操作。
如果HasStateInputs属性是1(true),则该层有两个带名称的输入“在”和“隐藏”,分别对应输入数据和隐藏状态。在这种情况下,层使用传递给这些输入的值进行层操作。如果HasStateInputs是1(真的),然后HiddenState属性必须为空。
数据类型:双
InputNames
- - - - - -<年代pan itemprop="purpose">输入名字
{'在'}
|<年代pan itemprop="inputvalue">{“在”、“隐藏”}
输入图层的名称。
如果HasStateInputs属性是0(false),则该层有一个带名称的输入“在”,对应于输入数据。在本例中,图层使用HiddenState属性用于图层操作。
如果HasStateInputs属性是1(true),则该层有两个带名称的输入“在”和“隐藏”,分别对应输入数据和隐藏状态。在这种情况下,层使用传递给这些输入的值进行层操作。如果HasStateInputs是1(真的),然后HiddenState属性必须为空。
NumOutputs
- - - - - -<年代pan itemprop="purpose">输出数量
1
|<年代pan itemprop="inputvalue">2
层的输出数。
如果HasStateOutputs属性是0(false),则该层有一个带有名称的输出“出”,对应于输出数据。
如果HasStateOutputs属性是1(true),则该层有两个带有名称的输出“出”和“隐藏”,分别对应于输出数据和隐藏状态。在这种情况下,层还输出在层操作期间计算的状态值。
数据类型:双
OutputNames
- - - - - -<年代pan itemprop="purpose">输出的名字
{“出”}
|<年代pan itemprop="inputvalue">{‘出来’,‘隐藏’}
输出图层的名称。
如果HasStateOutputs属性是0(false),则该层有一个带有名称的输出“出”,对应于输出数据。
如果HasStateOutputs属性是1(true),则该层有两个带有名称的输出“出”和“隐藏”,分别对应于输出数据和隐藏状态。在这种情况下,层还输出在层操作期间计算的状态值。
格勒乌
NumHiddenUnits
- - - - - -<年代pan itemprop="purpose">隐藏单元数
正整数
该属性是只读的。
隐藏单元数(也称为隐藏大小),指定为正整数。
隐藏单元的数量对应于在时间步之间记住的信息量(隐藏状态)。隐藏状态可以包含以前所有时间步长的信息,与序列长度无关。如果隐藏单元的数量太大,则层可能会过度拟合训练数据。这个值可以从几十到几千不等。
隐藏状态不限制在迭代中处理的时间步数。将您的序列拆分为更小的序列,以便在使用trainNetwork函数,使用SequenceLength培训的选择。
数据类型:单|双|int8|int16|int32|int64|uint8|uint16|uint32|uint64
OutputMode
- - - - - -<年代pan itemprop="purpose">输出模式
“序列”
(默认)|<年代pan itemprop="inputvalue">“最后一次”
该属性是只读的。
输出模式,指定为以下之一:
“序列”—输出完整序列。
“最后一次”—输出序列的最后一个时间步长。
HasStateInputs
- - - - - -<年代pan itemprop="purpose">状态输入到层的标志
0(假)(默认)|<年代pan itemprop="inputvalue">1(真正的)
层的状态输入标志,指定为1(真正的)或0(假)。
如果HasStateInputs属性是0(false),则该层有一个带名称的输入“在”,对应于输入数据。在本例中,图层使用HiddenState属性用于图层操作。
如果HasStateInputs属性是1(true),则该层有两个带名称的输入“在”和“隐藏”,分别对应输入数据和隐藏状态。在这种情况下,层使用传递给这些输入的值进行层操作。如果HasStateInputs是1(真的),然后HiddenState属性必须为空。
HasStateOutputs
- - - - - -<年代pan itemprop="purpose">从层输出状态的标志
0(假)(默认)|<年代pan itemprop="inputvalue">1(真正的)
层的状态输出标志,指定为真正的或假。
如果HasStateOutputs属性是0(false),则该层有一个带有名称的输出“出”,对应于输出数据。
如果HasStateOutputs属性是1(true),则该层有两个带有名称的输出“出”和“隐藏”,分别对应于输出数据和隐藏状态。在这种情况下,层还输出在层操作期间计算的状态值。
ResetGateMode
- - - - - -<年代pan itemprop="purpose">复位门模式
“after-multiplication”
(默认)|<年代pan itemprop="inputvalue">“before-multiplication”
|<年代pan itemprop="inputvalue">“recurrent-bias-after-multiplication”
复位门模式,指定为以下之一:
“after-multiplication”-在矩阵乘法后应用复位门。此选项与cuDNN兼容。
“before-multiplication”-在矩阵乘法之前应用复位门。
“recurrent-bias-after-multiplication”-在矩阵乘法后应用复位门,并为循环权重使用一组额外的偏置项。
有关复位门计算的详细信息,请参见门控循环单元层。
InputSize
- - - - - -<年代pan itemprop="purpose">输入的大小
“汽车”
(默认)|<年代pan itemprop="inputvalue">正整数
该属性是只读的。
输入大小,指定为正整数或“汽车”。如果InputSize是“汽车”,则软件在训练时自动分配输入大小。
数据类型:双|字符|字符串
NumHiddenUnits
- - - - - -<年代pan itemprop="purpose">隐藏单元数
正整数
正整数
该属性是只读的。 隐藏单元数(也称为隐藏大小),指定为正整数。 隐藏单元的数量对应于在时间步之间记住的信息量(隐藏状态)。隐藏状态可以包含以前所有时间步长的信息,与序列长度无关。如果隐藏单元的数量太大,则层可能会过度拟合训练数据。这个值可以从几十到几千不等。 隐藏状态不限制在迭代中处理的时间步数。将您的序列拆分为更小的序列,以便在使用 数据类型:SequenceLength
单
OutputMode
- - - - - -<年代pan itemprop="purpose">输出模式
“序列”
(默认)|<年代pan itemprop="inputvalue">“最后一次”
“序列”
(默认)|<年代pan itemprop="inputvalue">“最后一次”
该属性是只读的。 输出模式,指定为以下之一:
“序列”
“最后一次”
HasStateInputs
- - - - - -<年代pan itemprop="purpose">状态输入到层的标志
0(假)(默认)|<年代pan itemprop="inputvalue">1(真正的)
0(假)(默认)|<年代pan itemprop="inputvalue">1(真正的)
层的状态输入标志,指定为 如果 如果
HasStateOutputs
- - - - - -<年代pan itemprop="purpose">从层输出状态的标志
0(假)(默认)|<年代pan itemprop="inputvalue">1(真正的)
0(假)(默认)|<年代pan itemprop="inputvalue">1(真正的)
层的状态输出标志,指定为 如果 如果
ResetGateMode
- - - - - -<年代pan itemprop="purpose">复位门模式
“after-multiplication”
(默认)|<年代pan itemprop="inputvalue">“before-multiplication”
|<年代pan itemprop="inputvalue">“recurrent-bias-after-multiplication”
“after-multiplication”
(默认)|<年代pan itemprop="inputvalue">“before-multiplication”
|<年代pan itemprop="inputvalue">“recurrent-bias-after-multiplication”
复位门模式,指定为以下之一: 有关复位门计算的详细信息,请参见
“after-multiplication”
“before-multiplication”
“recurrent-bias-after-multiplication”
InputSize
- - - - - -<年代pan itemprop="purpose">输入的大小
“汽车”
(默认)|<年代pan itemprop="inputvalue">正整数
“汽车”
(默认)|<年代pan itemprop="inputvalue">正整数该属性是只读的。 输入大小,指定为正整数或 数据类型:双
激活
StateActivationFunction
- - - - - -<年代pan itemprop="purpose">激活功能,更新隐藏状态
的双曲正切
(默认)|<年代pan itemprop="inputvalue">“softsign”
激活函数更新隐藏状态,指定为以下之一:
的双曲正切—使用tanh(双曲正切函数)。
“softsign”—使用softsign功能<年代pan class="inlineequation">
。
层使用这个选项作为函数<年代pan class="inlineequation">
在计算中更新隐藏状态。
GateActivationFunction
- - - - - -<年代pan itemprop="purpose">激活功能适用于门
“乙状结肠”
(默认)|<年代pan itemprop="inputvalue">“hard-sigmoid”
该属性是只读的。
激活函数应用于闸门,指定为以下之一:
“乙状结肠”—使用sigmoid函数<年代pan class="inlineequation">
。
“hard-sigmoid”—使用硬sigmoid功能
层使用这个选项作为函数<年代pan class="inlineequation">
在层门的计算中。
StateActivationFunction
- - - - - -<年代pan itemprop="purpose">激活功能,更新隐藏状态
的双曲正切
(默认)|<年代pan itemprop="inputvalue">“softsign”
的双曲正切
(默认)|<年代pan itemprop="inputvalue">“softsign”
激活函数更新隐藏状态,指定为以下之一: 层使用这个选项作为函数<年代pan class="inlineequation">
在计算中更新隐藏状态。
的双曲正切
“softsign”
GateActivationFunction
- - - - - -<年代pan itemprop="purpose">激活功能适用于门
“乙状结肠”
(默认)|<年代pan itemprop="inputvalue">“hard-sigmoid”
“乙状结肠”
(默认)|<年代pan itemprop="inputvalue">“hard-sigmoid”
该属性是只读的。 激活函数应用于闸门,指定为以下之一:
层使用这个选项作为函数<年代pan class="inlineequation">
在层门的计算中。
“乙状结肠”
“hard-sigmoid”
状态
HiddenState
- - - - - -<年代pan itemprop="purpose">隐藏状态
数值向量
在层操作中使用的隐藏状态,指定为aNumHiddenUnits- × 1数值向量。这个值对应于数据传递到层时的初始隐藏状态。
手动设置此属性后,调用resetState将隐藏状态设置为该值。
如果HasStateInputs是真正的,然后是HiddenState属性必须为空。
HiddenState
- - - - - -<年代pan itemprop="purpose">隐藏状态
数值向量
数值向量
在层操作中使用的隐藏状态,指定为a 手动设置此属性后,调用 如果
参数和初始化
InputWeightsInitializer
- - - - - -<年代pan itemprop="purpose">函数初始化输入权重
“glorot”
(默认)|<年代pan itemprop="inputvalue">“他”
|<年代pan itemprop="inputvalue">“正交”
|<年代pan itemprop="inputvalue">“narrow-normal”|<年代pan itemprop="inputvalue">“零”|<年代pan itemprop="inputvalue">“的”|<年代pan itemprop="inputvalue">函数处理
函数初始化输入权重,指定为以下之一:
“glorot”-使用gloot初始化器初始化输入权重[2](也称为Xavier初始化器)。gloot初始化器从均值和方差均为零的均匀分布中独立采样2/(InputSize + numOut),在那里numOut = 3*NumHiddenUnits。
“他”-使用He初始化器初始化输入权重[3]。He初始化器从均值和方差均为零的正态分布中采样2 / InputSize。
“正交”—初始化输入权重问的QR分解得到的正交矩阵Z=问R对于一个随机矩阵Z从单位正态分布中抽样。[4]
“narrow-normal”—初始化输入权重,从均值为零、标准差为0.01的正态分布中独立采样。
“零”—初始化输入权重为0。
“的”—初始化输入权重为1。
函数句柄-使用自定义函数初始化输入权重。如果指定函数句柄,则该函数必须为权重= func(sz),在那里深圳是输入权值的大小。
层只初始化输入权重InputWeights房产是空的。
数据类型:字符|字符串|function_handle
RecurrentWeightsInitializer
- - - - - -<年代pan itemprop="purpose">函数初始化循环权值
“正交”
(默认)|<年代pan itemprop="inputvalue">“glorot”
|<年代pan itemprop="inputvalue">“他”
|<年代pan itemprop="inputvalue">“narrow-normal”|<年代pan itemprop="inputvalue">“零”|<年代pan itemprop="inputvalue">“的”|<年代pan itemprop="inputvalue">函数处理
函数初始化循环权值,指定为以下之一:
“正交”初始化循环权值问的QR分解得到的正交矩阵Z=问R对于一个随机矩阵Z从单位正态分布中抽样。[4]
“glorot”-使用gloot初始化器初始化循环权重[2](也称为Xavier初始化器)。gloot初始化器从均值和方差均为零的均匀分布中独立采样2/(numIn + numOut),在那里numIn = NumHiddenUnits和numOut = 3*NumHiddenUnits。
“他”-使用He初始化器初始化循环权重[3]。He初始化器从均值和方差均为零的正态分布中采样2 / NumHiddenUnits。
“narrow-normal”—通过从均值为零、标准差为0.01的正态分布中独立采样来初始化循环权值。
“零”—用零初始化循环权值。
“的”-将循环权值初始化为1。
函数句柄-使用自定义函数初始化循环权重。如果指定函数句柄,则该函数必须为权重= func(sz),在那里深圳是循环权值的大小。
层只初始化循环权值RecurrentWeights房产是空的。
数据类型:字符|字符串|function_handle
BiasInitializer
- - - - - -<年代pan itemprop="purpose">初始化偏置的函数
“零”
(默认)|<年代pan itemprop="inputvalue">“narrow-normal”
|<年代pan itemprop="inputvalue">“的”
|<年代pan itemprop="inputvalue">函数处理
函数初始化偏置,指定为以下之一:
0的—用零初始化偏置。
“narrow-normal”—通过从平均值为零、标准差为0.01的正态分布中独立采样来初始化偏差。
“的”-用1初始化偏置。
函数句柄-用自定义函数初始化偏差。如果指定函数句柄,则该函数必须为偏差= func(sz),在那里深圳是偏差的大小。
层只初始化偏差,当偏见房产是空的。
数据类型:字符|字符串|function_handle
InputWeights
- - - - - -<年代pan itemprop="purpose">输入重量
[]
(默认)|<年代pan itemprop="inputvalue">矩阵
输入权重,指定为矩阵。
输入权矩阵是GRU层中组件的三个输入权矩阵的串联。这三个矩阵按以下顺序垂直连接:
重设门
更新门
候选人的状态
输入权值是可学习的参数。在训练网络时,如果InputWeights是非空的trainNetwork使用InputWeights属性作为初始值。如果InputWeights那么它是空的trainNetwork指定的初始化项InputWeightsInitializer。
在训练时,InputWeights是一个3 * NumHiddenUnits——- - - - - -InputSize矩阵。
RecurrentWeights
- - - - - -<年代pan itemprop="purpose">复发性权重
[]
(默认)|<年代pan itemprop="inputvalue">矩阵
循环权值,用矩阵表示。
循环权矩阵是GRU层中组件的三个循环权矩阵的串联。这三个矩阵按以下顺序垂直连接:
重设门
更新门
候选人的状态
循环权值是可学习的参数。在训练网络时,如果RecurrentWeights是非空的trainNetwork使用RecurrentWeights属性作为初始值。如果RecurrentWeights那么它是空的trainNetwork指定的初始化项RecurrentWeightsInitializer。
在训练时RecurrentWeights是一个3 * NumHiddenUnits——- - - - - -NumHiddenUnits矩阵。
偏见
- - - - - -<年代pan itemprop="purpose">层的偏见
[]
(默认)|<年代pan itemprop="inputvalue">数值向量
GRU层的层偏差,指定为数值向量。
如果ResetGateMode是“after-multiplication”或“before-multiplication”,则偏置向量是GRU层中组件的三个偏置向量的串联。这三个向量按以下顺序垂直连接:
重设门
更新门
候选人的状态
在这种情况下,在训练时,偏见是一个3 * NumHiddenUnits- × 1数值向量。
如果ResetGateMode是recurrent-bias-after-multiplication”,则偏置向量是GRU层中组件的六个偏置向量的串联。这六个向量按以下顺序垂直连接:
重设门
更新门
候选人的状态
复位门(周期性偏置)
更新门(循环偏置)
候选状态(循环偏差)
在这种情况下,在训练时,偏见是一个6 * NumHiddenUnits- × 1数值向量。
层偏差是可学习的参数。当你训练一个网络时,如果偏见是非空的trainNetwork使用偏见属性作为初始值。如果偏见那么它是空的trainNetwork指定的初始化项BiasInitializer。
有关复位门计算的详细信息,请参见门控循环单元层。
InputWeightsInitializer
- - - - - -<年代pan itemprop="purpose">函数初始化输入权重
“glorot”
(默认)|<年代pan itemprop="inputvalue">“他”
|<年代pan itemprop="inputvalue">“正交”
|<年代pan itemprop="inputvalue">“narrow-normal”|<年代pan itemprop="inputvalue">“零”|<年代pan itemprop="inputvalue">“的”|<年代pan itemprop="inputvalue">函数处理
“glorot”
(默认)|<年代pan itemprop="inputvalue">“他”
|<年代pan itemprop="inputvalue">“正交”
|<年代pan itemprop="inputvalue">“narrow-normal”|<年代pan itemprop="inputvalue">“零”|<年代pan itemprop="inputvalue">“的”|<年代pan itemprop="inputvalue">函数处理
函数初始化输入权重,指定为以下之一: 函数句柄-使用自定义函数初始化输入权重。如果指定函数句柄,则该函数必须为 层只初始化输入权重 数据类型:
“glorot”
“他”
“正交”
“narrow-normal”
“零”
“的”
字符
RecurrentWeightsInitializer
- - - - - -<年代pan itemprop="purpose">函数初始化循环权值
“正交”
(默认)|<年代pan itemprop="inputvalue">“glorot”
|<年代pan itemprop="inputvalue">“他”
|<年代pan itemprop="inputvalue">“narrow-normal”|<年代pan itemprop="inputvalue">“零”|<年代pan itemprop="inputvalue">“的”|<年代pan itemprop="inputvalue">函数处理
“正交”
(默认)|<年代pan itemprop="inputvalue">“glorot”
|<年代pan itemprop="inputvalue">“他”
|<年代pan itemprop="inputvalue">“narrow-normal”|<年代pan itemprop="inputvalue">“零”|<年代pan itemprop="inputvalue">“的”|<年代pan itemprop="inputvalue">函数处理
函数初始化循环权值,指定为以下之一: 函数句柄-使用自定义函数初始化循环权重。如果指定函数句柄,则该函数必须为 层只初始化循环权值 数据类型:
“正交”
“glorot”
“他”
“narrow-normal”
“零”
“的”
字符
BiasInitializer
- - - - - -<年代pan itemprop="purpose">初始化偏置的函数
“零”
(默认)|<年代pan itemprop="inputvalue">“narrow-normal”
|<年代pan itemprop="inputvalue">“的”
|<年代pan itemprop="inputvalue">函数处理
“零”
(默认)|<年代pan itemprop="inputvalue">“narrow-normal”
|<年代pan itemprop="inputvalue">“的”
|<年代pan itemprop="inputvalue">函数处理函数初始化偏置,指定为以下之一: 函数句柄-用自定义函数初始化偏差。如果指定函数句柄,则该函数必须为 层只初始化偏差,当 数据类型:
0的
“narrow-normal”
“的”
字符
InputWeights
- - - - - -<年代pan itemprop="purpose">输入重量
[]
(默认)|<年代pan itemprop="inputvalue">矩阵
[]
(默认)|<年代pan itemprop="inputvalue">矩阵输入权重,指定为矩阵。 输入权矩阵是GRU层中组件的三个输入权矩阵的串联。这三个矩阵按以下顺序垂直连接: 重设门 更新门 候选人的状态 输入权值是可学习的参数。在训练网络时,如果 在训练时,
trainNetwork
RecurrentWeights
- - - - - -<年代pan itemprop="purpose">复发性权重
[]
(默认)|<年代pan itemprop="inputvalue">矩阵
[]
(默认)|<年代pan itemprop="inputvalue">矩阵循环权值,用矩阵表示。 循环权矩阵是GRU层中组件的三个循环权矩阵的串联。这三个矩阵按以下顺序垂直连接: 重设门 更新门 候选人的状态 循环权值是可学习的参数。在训练网络时,如果 在训练时
trainNetwork
偏见
- - - - - -<年代pan itemprop="purpose">层的偏见
[]
(默认)|<年代pan itemprop="inputvalue">数值向量
[]
(默认)|<年代pan itemprop="inputvalue">数值向量GRU层的层偏差,指定为数值向量。 如果 重设门 更新门 候选人的状态 在这种情况下,在训练时, 如果 重设门 更新门 候选人的状态 复位门(周期性偏置) 更新门(循环偏置) 候选状态(循环偏差) 在这种情况下,在训练时, 层偏差是可学习的参数。当你训练一个网络时,如果 有关复位门计算的详细信息,请参见
trainNetwork
学习率和正则化
InputWeightsLearnRateFactor
- - - - - -<年代pan itemprop="purpose">输入权重的学习率因子
1(默认)|<年代pan itemprop="inputvalue">数字标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
输入权重的学习率因子,指定为数字标量或1 × 3数字向量。
软件将该因子乘以全局学习率,以确定该层输入权重的学习率因子。例如,如果InputWeightsLearnRateFactor为2,则该层的输入权重的学习率因子是当前全局学习率的两倍。软件根据指定的设置确定全局学习率trainingOptions函数。
控制中三个单独矩阵的学习率因子的值InputWeights,指定一个1 × 3向量。的条目InputWeightsLearnRateFactor对应以下的学习率因子:
重设门
更新门
候选人的状态
若要为所有矩阵指定相同的值,请指定一个非负标量。
例子:2
例子:[1 2 1]
RecurrentWeightsLearnRateFactor
- - - - - -<年代pan itemprop="purpose">循环权值的学习率因子
1(默认)|<年代pan itemprop="inputvalue">数字标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
周期性权重的学习率因子,指定为数字标量或1 × 3数字向量。
软件将这个因子乘以全局学习率来确定层的循环权值的学习率。例如,如果RecurrentWeightsLearnRateFactor= 2,则该层循环权值的学习率是当前全局学习率的两倍。软件根据指定的设置确定全局学习率trainingOptions函数。
控制中三个单独矩阵的学习率因子的值RecurrentWeights,指定一个1 × 3向量。的条目RecurrentWeightsLearnRateFactor对应以下的学习率因子:
重设门
更新门
候选人的状态
若要为所有矩阵指定相同的值,请指定一个非负标量。
例子:2
例子:[1 2 1]
BiasLearnRateFactor
- - - - - -<年代pan itemprop="purpose">偏差的学习率因子
1(默认)|<年代pan itemprop="inputvalue">负的标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
偏差的学习率因子,指定为非负标量或1 × 3数字向量。
软件将这个因子乘以全局学习率来确定这一层偏差的学习率。例如,如果BiasLearnRateFactor是2,则该层中偏差的学习率是当前全局学习率的两倍。软件根据您指定的设置来确定全局学习率trainingOptions函数。
控制中三个独立向量的学习率因子的值偏见,指定一个1 × 3向量。的条目BiasLearnRateFactor对应以下的学习率因子:
重设门
更新门
候选人的状态
如果ResetGateMode是“recurrent-bias-after-multiplication”,然后软件使用相同的向量作为循环偏置向量。
若要为所有向量指定相同的值,请指定一个非负标量。
例子:2
例子:[1 2 1]
InputWeightsL2Factor
- - - - - -<年代pan itemprop="purpose">输入权重的L2正则化因子
1(默认)|<年代pan itemprop="inputvalue">数字标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
输入权重的L2正则化因子,指定为数字标量或1 × 3数字向量。
软件将此因子乘以全局L2正则化因子,以确定该层输入权重的L2正则化因子。例如,如果InputWeightsL2Factor为2,则该层的输入权重的L2正则化因子是当前全局L2正则化因子的两倍。软件根据指定的设置确定L2正则化因子trainingOptions函数。
中的三个单独矩阵的L2正则化因子的值InputWeights,指定一个1 × 3向量。的条目InputWeightsL2Factor对应如下的L2正则化因子:
重设门
更新门
候选人的状态
若要为所有矩阵指定相同的值,请指定一个非负标量。
例子:2
例子:[1 2 1]
RecurrentWeightsL2Factor
- - - - - -<年代pan itemprop="purpose">L2正则化因子用于循环权值
1(默认)|<年代pan itemprop="inputvalue">数字标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
用于循环权值的L2正则化因子,指定为数字标量或1 × 3数字向量。
软件将此因子乘以全局L2正则化因子,以确定该层的循环权重的L2正则化因子。例如,如果RecurrentWeightsL2Factor为2,则该层的循环权值的L2正则化因子是当前全局L2正则化因子的两倍。软件根据指定的设置确定L2正则化因子trainingOptions函数。
中的三个单独矩阵的L2正则化因子的值RecurrentWeights,指定一个1 × 3向量。的条目RecurrentWeightsL2Factor对应如下的L2正则化因子:
重设门
更新门
候选人的状态
若要为所有矩阵指定相同的值,请指定一个非负标量。
例子:2
例子:[1 2 1]
BiasL2Factor
- - - - - -<年代pan itemprop="purpose">偏差的L2正则化因子
0(默认)|<年代pan itemprop="inputvalue">负的标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
偏差的L2正则化因子,指定为非负标量或1 × 3数值向量。
软件将这个因子乘以全局l<年代ub>2正则化因子来确定l<年代ub>2对这一层的偏差进行正则化。例如,如果BiasL2Factor是2,然后是l<年代ub>2这一层偏差的正则化是全局的两倍l<年代ub>2正则化因子。您可以指定全局l<年代ub>2正则化因子trainingOptions函数。
中的单个向量的L2正则化因子的值偏见,指定一个1 × 3向量。的条目BiasL2Factor对应如下的L2正则化因子:
重设门
更新门
候选人的状态
如果ResetGateMode是“recurrent-bias-after-multiplication”,然后软件使用相同的向量作为循环偏置向量。
若要为所有向量指定相同的值,请指定一个非负标量。
例子:2
例子:[1 2 1]
InputWeightsLearnRateFactor
- - - - - -<年代pan itemprop="purpose">输入权重的学习率因子
1(默认)|<年代pan itemprop="inputvalue">数字标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
1
输入权重的学习率因子,指定为数字标量或1 × 3数字向量。 软件将该因子乘以全局学习率,以确定该层输入权重的学习率因子。例如,如果 控制中三个单独矩阵的学习率因子的值 重设门 更新门 候选人的状态 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
2
[1 2 1]
RecurrentWeightsLearnRateFactor
- - - - - -<年代pan itemprop="purpose">循环权值的学习率因子
1(默认)|<年代pan itemprop="inputvalue">数字标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
1
周期性权重的学习率因子,指定为数字标量或1 × 3数字向量。 软件将这个因子乘以全局学习率来确定层的循环权值的学习率。例如,如果 控制中三个单独矩阵的学习率因子的值 重设门 更新门 候选人的状态 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
2
[1 2 1]
BiasLearnRateFactor
- - - - - -<年代pan itemprop="purpose">偏差的学习率因子
1(默认)|<年代pan itemprop="inputvalue">负的标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
1
偏差的学习率因子,指定为非负标量或1 × 3数字向量。 软件将这个因子乘以全局学习率来确定这一层偏差的学习率。例如,如果 控制中三个独立向量的学习率因子的值 重设门 更新门 候选人的状态 如果 若要为所有向量指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
2
[1 2 1]
InputWeightsL2Factor
- - - - - -<年代pan itemprop="purpose">输入权重的L2正则化因子
1(默认)|<年代pan itemprop="inputvalue">数字标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
1
输入权重的L2正则化因子,指定为数字标量或1 × 3数字向量。 软件将此因子乘以全局L2正则化因子,以确定该层输入权重的L2正则化因子。例如,如果 中的三个单独矩阵的L2正则化因子的值 重设门 更新门 候选人的状态 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
2
[1 2 1]
RecurrentWeightsL2Factor
- - - - - -<年代pan itemprop="purpose">L2正则化因子用于循环权值
1(默认)|<年代pan itemprop="inputvalue">数字标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
1
用于循环权值的L2正则化因子,指定为数字标量或1 × 3数字向量。 软件将此因子乘以全局L2正则化因子,以确定该层的循环权重的L2正则化因子。例如,如果 中的三个单独矩阵的L2正则化因子的值 重设门 更新门 候选人的状态 若要为所有矩阵指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
2
[1 2 1]
BiasL2Factor
- - - - - -<年代pan itemprop="purpose">偏差的L2正则化因子
0(默认)|<年代pan itemprop="inputvalue">负的标量|<年代pan itemprop="inputvalue">1 × 3的数字向量
0
偏差的L2正则化因子,指定为非负标量或1 × 3数值向量。 软件将这个因子乘以全局 中的单个向量的L2正则化因子的值 重设门 更新门 候选人的状态 如果 若要为所有向量指定相同的值,请指定一个非负标量。 例子: 例子:trainingOptions
2
[1 2 1]
层
名字
- - - - - -<年代pan itemprop="purpose">层的名字
''
(默认)|<年代pan itemprop="inputvalue">特征向量|<年代pan itemprop="inputvalue">字符串标量
图层名称,指定为字符向量或字符串标量。为层数组输入trainNetwork,assembleNetwork,layerGraph,dlnetwork函数会自动给有名称的图层分配名称''。
数据类型:字符|字符串
NumInputs
- - - - - -<年代pan itemprop="purpose">输入数
1
|<年代pan itemprop="inputvalue">2
层的输入数。
如果HasStateInputs属性是0(false),则该层有一个带名称的输入“在”,对应于输入数据。在本例中,图层使用HiddenState属性用于图层操作。
如果HasStateInputs属性是1(true),则该层有两个带名称的输入“在”和“隐藏”,分别对应输入数据和隐藏状态。在这种情况下,层使用传递给这些输入的值进行层操作。如果HasStateInputs是1(真的),然后HiddenState属性必须为空。
数据类型:双
InputNames
- - - - - -<年代pan itemprop="purpose">输入名字
{'在'}
|<年代pan itemprop="inputvalue">{“在”、“隐藏”}
输入图层的名称。
如果HasStateInputs属性是0(false),则该层有一个带名称的输入“在”,对应于输入数据。在本例中,图层使用HiddenState属性用于图层操作。
如果HasStateInputs属性是1(true),则该层有两个带名称的输入“在”和“隐藏”,分别对应输入数据和隐藏状态。在这种情况下,层使用传递给这些输入的值进行层操作。如果HasStateInputs是1(真的),然后HiddenState属性必须为空。
NumOutputs
- - - - - -<年代pan itemprop="purpose">输出数量
1
|<年代pan itemprop="inputvalue">2
层的输出数。
如果HasStateOutputs属性是0(false),则该层有一个带有名称的输出“出”,对应于输出数据。
如果HasStateOutputs属性是1(true),则该层有两个带有名称的输出“出”和“隐藏”,分别对应于输出数据和隐藏状态。在这种情况下,层还输出在层操作期间计算的状态值。
数据类型:双
OutputNames
- - - - - -<年代pan itemprop="purpose">输出的名字
{“出”}
|<年代pan itemprop="inputvalue">{‘出来’,‘隐藏’}
输出图层的名称。
如果HasStateOutputs属性是0(false),则该层有一个带有名称的输出“出”,对应于输出数据。
如果HasStateOutputs属性是1(true),则该层有两个带有名称的输出“出”和“隐藏”,分别对应于输出数据和隐藏状态。在这种情况下,层还输出在层操作期间计算的状态值。
名字
- - - - - -<年代pan itemprop="purpose">层的名字
''
(默认)|<年代pan itemprop="inputvalue">特征向量|<年代pan itemprop="inputvalue">字符串标量
''
(默认)|<年代pan itemprop="inputvalue">特征向量图层名称,指定为字符向量或字符串标量。为
数据类型:字符
NumInputs
- - - - - -<年代pan itemprop="purpose">输入数
1
|<年代pan itemprop="inputvalue">2
1
|<年代pan itemprop="inputvalue">2
层的输入数。 如果 如果 数据类型:双
InputNames
- - - - - -<年代pan itemprop="purpose">输入名字
{'在'}
|<年代pan itemprop="inputvalue">{“在”、“隐藏”}
{'在'}
|<年代pan itemprop="inputvalue">{“在”、“隐藏”}
输入图层的名称。 如果 如果
NumOutputs
- - - - - -<年代pan itemprop="purpose">输出数量
1
|<年代pan itemprop="inputvalue">2
1
|<年代pan itemprop="inputvalue">2
层的输出数。 如果 如果 数据类型:双
OutputNames
- - - - - -<年代pan itemprop="purpose">输出的名字
{“出”}
|<年代pan itemprop="inputvalue">{‘出来’,‘隐藏’}
{“出”}
|<年代pan itemprop="inputvalue">{‘出来’,‘隐藏’}
输出图层的名称。 如果 如果
例子
创建GRU层
创建一个名为GRU的图层“gru1”还有100个隐藏单位。
图层= gruLayer(100,<年代pan style="color:#A020F0">“名字”,<年代pan style="color:#A020F0">“gru1”)
layer = GRULayer with properties: Name: 'gru1' InputNames: {'in'} OutputNames: {'out'} NumInputs: 1 NumOutputs: 1 HasStateInputs: 0 HasStateOutputs: 0 Hyperparameters InputSize: 'auto' NumHiddenUnits: 100 OutputMode: 'sequence' StateActivationFunction: 'tanh' GateActivationFunction: 'sigmoid' ResetGateMode: 'after-multiplication'可学习参数InputWeights: [] RecurrentWeights: [] Bias: [] State Parameters hidulstate:[]显示所有属性
包含GRU层层数组中。
inputSize = 12;numHiddenUnits = 100;numClasses = 9;图层= [<年代pan style="color:#0000FF">…sequenceInputLayer(inputSize) gruLayer(numHiddenUnits) fulllyconnectedlayer (numClasses) softmaxLayer classificationLayer]
层= 5x1层阵列层:1“序列输入序列输入12维2”GRU GRU有100个隐藏单元3“全连接9全连接层4“Softmax Softmax 5”分类输出交叉
创建GRU层
创建一个名为GRU的图层 包含GRU层图层= gruLayer(100,<年代pan style="color:#A020F0">“名字”
layer = GRULayer with properties: Name: 'gru1' InputNames: {'in'} OutputNames: {'out'} NumInputs: 1 NumOutputs: 1 HasStateInputs: 0 HasStateOutputs: 0 Hyperparameters InputSize: 'auto' NumHiddenUnits: 100 OutputMode: 'sequence' StateActivationFunction: 'tanh' GateActivationFunction: 'sigmoid' ResetGateMode: 'after-multiplication'可学习参数InputWeights: [] RecurrentWeights: [] Bias: [] State Parameters hidulstate:[]显示所有属性
inputSize = 12;numHiddenUnits = 100;numClasses = 9;图层= [<年代pan style="color:#0000FF">…
层= 5x1层阵列层:1“序列输入序列输入12维2”GRU GRU有100个隐藏单元3“全连接9全连接层4“Softmax Softmax 5”分类输出交叉
算法
门控循环单元层
GRU层学习时间序列和序列数据中时间步长之间的依赖关系。
的<年代pan class="emphasis">隐藏状态在时间步长处的层t包含GRU层在此时间步长的输出。在每个时间步骤中,该层向状态添加信息或从状态中删除信息。层控制这些更新使用<年代pan class="emphasis">盖茨。
以下组件控制层的隐藏状态。
组件
目的
复位门(r)
状态复位控制级别
更新门(z)
状态更新的控制级别
候选状态(<年代pan class="inlineequation">
)
添加到隐藏状态的更新控制级别
GRU层的可学习权值就是输入权值W(InputWeights),即循环权值R(RecurrentWeights),以及偏见b(偏见)。如果ResetGateMode属性是“recurrent-bias-after-multiplication”,则栅极和状态计算需要两组偏置值。的矩阵W和R分别是每个分量的输入权值和循环权值的连接。这些矩阵连接如下:
在哪里r,z,<年代pan class="inlineequation">
分别表示重置门、更新门和候选状态。
偏置向量取决于ResetGateMode财产。如果ResetGateMode是“after-multiplication”或“before-multiplication”,则偏置向量是三个向量的串联:
这里的下标W表示这是与输入权重乘法相对应的偏置。
如果ResetGateMode是“recurrent-bias-after-multiplication”,则偏置向量是六个向量的串联:
这里的下标R表示这是与循环权重乘法相对应的偏差。
在时间步长的隐藏状态t是由
下面的公式描述了在时间步长的分量t。
组件
ResetGateMode
公式
重设门
“after-multiplication”
“before-multiplication”
“recurrent-bias-after-multiplication”
更新门
“after-multiplication”
“before-multiplication”
“recurrent-bias-after-multiplication”
候选人的状态
“after-multiplication”
“before-multiplication”
“recurrent-bias-after-multiplication”
在这些计算中,<年代pan class="inlineequation">
和<年代pan class="inlineequation">
分别表示门和状态激活函数。的gruLayer函数,默认情况下使用由<年代pan class="inlineequation">
计算门激活函数和双曲正切函数(tanh),计算状态激活函数。要指定状态和门激活函数,请使用StateActivationFunction和GateActivationFunction属性,分别。
图层输入和输出格式
层数组或层图中的层传递指定为格式化的数据dlarray对象。
你可以与它们互动dlarray对象在自动区分工作流中,例如在开发自定义层时,使用functionLayer对象,或使用向前和预测功能与dlnetwork对象。
的支持输入格式金宝appGRULayer对象和相应的输出格式。如果将层的输出传递给不继承自的自定义层nnet.layer.Formattable类,或者FunctionLayer对象。Formattable选项设置为假,则该层接收一个未格式化的dlarray对象,其尺寸顺序与该表中列出的格式相对应。
输入格式
OutputMode
输出格式
“CB”(通道、批处理)
“序列”
“CB”(通道、批处理)
“最后一次”
“认知行为治疗”(通道、批次、时间)
“序列”
“认知行为治疗”(通道、批次、时间)
“最后一次”
“CB”(通道、批处理)
在dlnetwork对象,GRULayer对象还支持以下输入和输出格金宝app式组合。
输入格式
OutputMode
输出格式
“渣打银行”(空间、通道、批量)
“序列”
“CB”(通道、批处理)
“最后一次”
“SSCB”(空间、空间、通道)
“序列”
“CB”(通道、批处理)
“最后一次”
“SSSCB”(空间,空间,空间,通道)
“序列”
“CB”(通道、批处理)
“最后一次”
“SCBT”(空间、通道、批量)
“序列”
“认知行为治疗”(通道、批次、时间)
“最后一次”
“CB”(通道、批处理)
“SSCBT”(空间、空间、通道、批次、时间)
“序列”
“认知行为治疗”(通道、批次、时间)
“最后一次”
“CB”(通道、批处理)
“SSSCBT”(空间、空间、空间、通道、批次、时间)
“序列”
“认知行为治疗”(通道、批次、时间)
“最后一次”
“CB”(通道、批处理)
中使用这些输入格式trainNetwork工作流,首先将数据转换为“认知行为治疗”(通道、批处理、时间)格式使用flattenLayer。
如果HasStateInputs属性是1(true),则该层有两个带有名称的额外输入“隐藏”和“细胞”,分别对应于隐藏状态和单元状态。这些额外的输入需要输入格式“CB”(频道,批处理)。
如果HasStateOutputs属性是1(true),则该层有两个带有名称的附加输出“隐藏”和“细胞”,分别对应于隐藏状态和单元状态。这些附加输出具有输出格式“CB”(频道,批处理)。
门控循环单元层
GRU层学习时间序列和序列数据中时间步长之间的依赖关系。
的<年代pan class="emphasis">隐藏状态在时间步长处的层t包含GRU层在此时间步长的输出。在每个时间步骤中,该层向状态添加信息或从状态中删除信息。层控制这些更新使用<年代pan class="emphasis">盖茨。
以下组件控制层的隐藏状态。
组件
目的
复位门(r)
状态复位控制级别
更新门(z)
状态更新的控制级别
候选状态(<年代pan class="inlineequation">
)
添加到隐藏状态的更新控制级别
GRU层的可学习权值就是输入权值W(InputWeights),即循环权值R(RecurrentWeights),以及偏见b(偏见)。如果ResetGateMode属性是“recurrent-bias-after-multiplication”,则栅极和状态计算需要两组偏置值。的矩阵W和R分别是每个分量的输入权值和循环权值的连接。这些矩阵连接如下:
在哪里r,z,<年代pan class="inlineequation">
分别表示重置门、更新门和候选状态。
偏置向量取决于ResetGateMode财产。如果ResetGateMode是“after-multiplication”或“before-multiplication”,则偏置向量是三个向量的串联:
这里的下标W表示这是与输入权重乘法相对应的偏置。
如果ResetGateMode是“recurrent-bias-after-multiplication”,则偏置向量是六个向量的串联:
这里的下标R表示这是与循环权重乘法相对应的偏差。
在时间步长的隐藏状态t是由
下面的公式描述了在时间步长的分量t。
组件
ResetGateMode
公式
重设门
“after-multiplication”
“before-multiplication”
“recurrent-bias-after-multiplication”
更新门
“after-multiplication”
“before-multiplication”
“recurrent-bias-after-multiplication”
候选人的状态
“after-multiplication”
“before-multiplication”
“recurrent-bias-after-multiplication”
在这些计算中,<年代pan class="inlineequation">
和<年代pan class="inlineequation">
分别表示门和状态激活函数。的gruLayer函数,默认情况下使用由<年代pan class="inlineequation">
计算门激活函数和双曲正切函数(tanh),计算状态激活函数。要指定状态和门激活函数,请使用StateActivationFunction和GateActivationFunction属性,分别。
GRU层学习时间序列和序列数据中时间步长之间的依赖关系。
的<年代pan class="emphasis">隐藏状态 以下组件控制层的隐藏状态。 GRU层的可学习权值就是输入权值
在哪里 偏置向量取决于
这里的下标 如果
这里的下标 在时间步长的隐藏状态
下面的公式描述了在时间步长的分量 在这些计算中,<年代pan class="inlineequation">
和<年代pan class="inlineequation">
分别表示门和状态激活函数。的
组件 目的
复位门( 状态复位控制级别
更新门( 状态更新的控制级别
候选状态(<年代pan class="inlineequation">
) 添加到隐藏状态的更新控制级别
组件 ResetGateMode
公式
重设门 “after-multiplication”
“before-multiplication”
“recurrent-bias-after-multiplication”
更新门 “after-multiplication”
“before-multiplication”
“recurrent-bias-after-multiplication”
候选人的状态 “after-multiplication”
“before-multiplication”
“recurrent-bias-after-multiplication”
StateActivationFunction
GateActivationFunction
图层输入和输出格式
层数组或层图中的层传递指定为格式化的数据dlarray对象。
你可以与它们互动dlarray对象在自动区分工作流中,例如在开发自定义层时,使用functionLayer对象,或使用向前和预测功能与dlnetwork对象。
的支持输入格式金宝appGRULayer对象和相应的输出格式。如果将层的输出传递给不继承自的自定义层nnet.layer.Formattable类,或者FunctionLayer对象。Formattable选项设置为假,则该层接收一个未格式化的dlarray对象,其尺寸顺序与该表中列出的格式相对应。
输入格式
OutputMode
输出格式
“CB”(通道、批处理)
“序列”
“CB”(通道、批处理)
“最后一次”
“认知行为治疗”(通道、批次、时间)
“序列”
“认知行为治疗”(通道、批次、时间)
“最后一次”
“CB”(通道、批处理)
在dlnetwork对象,GRULayer对象还支持以下输入和输出格金宝app式组合。
输入格式
OutputMode
输出格式
“渣打银行”(空间、通道、批量)
“序列”
“CB”(通道、批处理)
“最后一次”
“SSCB”(空间、空间、通道)
“序列”
“CB”(通道、批处理)
“最后一次”
“SSSCB”(空间,空间,空间,通道)
“序列”
“CB”(通道、批处理)
“最后一次”
“SCBT”(空间、通道、批量)
“序列”
“认知行为治疗”(通道、批次、时间)
“最后一次”
“CB”(通道、批处理)
“SSCBT”(空间、空间、通道、批次、时间)
“序列”
“认知行为治疗”(通道、批次、时间)
“最后一次”
“CB”(通道、批处理)
“SSSCBT”(空间、空间、空间、通道、批次、时间)
“序列”
“认知行为治疗”(通道、批次、时间)
“最后一次”
“CB”(通道、批处理)
中使用这些输入格式trainNetwork工作流,首先将数据转换为“认知行为治疗”(通道、批处理、时间)格式使用flattenLayer。
如果HasStateInputs属性是1(true),则该层有两个带有名称的额外输入“隐藏”和“细胞”,分别对应于隐藏状态和单元状态。这些额外的输入需要输入格式“CB”(频道,批处理)。
如果HasStateOutputs属性是1(true),则该层有两个带有名称的附加输出“隐藏”和“细胞”,分别对应于隐藏状态和单元状态。这些附加输出具有输出格式“CB”(频道,批处理)。
层数组或层图中的层传递指定为格式化的数据 你可以与它们互动 的支持输入格式金宝app 在 中使用这些输入格式 如果 如果
输入格式 OutputMode
输出格式
“CB”
“序列”
“CB”
“最后一次”
“认知行为治疗”
“序列”
“认知行为治疗”
“最后一次”
“CB”
输入格式 OutputMode
输出格式
“渣打银行”
“序列”
“CB”
“最后一次”
“SSCB”
“序列”
“CB”
“最后一次”
“SSSCB”
“序列”
“CB”
“最后一次”
“SCBT”
“序列”
“认知行为治疗”
“最后一次”
“CB”
“SSCBT”
“序列”
“认知行为治疗”
“最后一次”
“CB”
“SSSCBT”
“序列”
“认知行为治疗”
“最后一次”
“CB”
参考文献
[1] Cho, Kyunghyun, Bart Van Merriënboer, Caglar Gulcehre, Dzmitry Bahdanau, Fethi Bougares, Holger Schwenk和Yoshua Bengio。使用RNN编码器-解码器学习用于统计机器翻译的短语表示。arXiv预印arXiv:1406.1078(2014)。
格罗洛特、泽维尔和约书亚·本吉奥。“理解训练深度前馈神经网络的难度。”在第十三届国际人工智能与统计会议论文集, 249 - 356。撒丁岛,意大利:AISTATS, 2010。
[10]何凯,张翔宇,任少卿,孙健。“深入研究整流器:在ImageNet分类上超越人类水平的表现。”在2015 IEEE计算机视觉国际会议论文集, 1026 - 1034。华盛顿特区:IEEE计算机视觉学会,2015。
[4] Saxe, Andrew M, James L. McClelland和Surya Ganguli。"深度线性神经金宝搏官方网站网络中学习的非线性动力学的精确解"arXiv预印arXiv:1312.6120(2013)。
[1] Cho, Kyunghyun, Bart Van Merriënboer, Caglar Gulcehre, Dzmitry Bahdanau, Fethi Bougares, Holger Schwenk和Yoshua Bengio。使用RNN编码器-解码器学习用于统计机器翻译的短语表示。
格罗洛特、泽维尔和约书亚·本吉奥。“理解训练深度前馈神经网络的难度。”在
[10]何凯,张翔宇,任少卿,孙健。“深入研究整流器:在ImageNet分类上超越人类水平的表现。”在
[4] Saxe, Andrew M, James L. McClelland和Surya Ganguli。"深度线性神经金宝搏官方网站网络中学习的非线性动力学的精确解"
扩展功能
C/ c++代码生成
<年代pan class=" remove_bold add_font_color_general">使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
的StateActivationFunction属性必须设置为的双曲正切。
的GateActivationFunction属性必须设置为“乙状结肠”。
的ResetGateMode属性必须设置为“after-multiplication”或“recurrent-bias-after-multiplication”。
的HasStateInputs和HasStateOutputs属性必须设置为0(假)。
GPU代码生成
<年代pan class=" remove_bold add_font_color_general">使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。
使用注意事项和限制:
的StateActivationFunction属性必须设置为的双曲正切。
的GateActivationFunction属性必须设置为“乙状结肠”。
的ResetGateMode属性必须设置为“after-multiplication”或“recurrent-bias-after-multiplication”。
的HasStateInputs和HasStateOutputs属性必须设置为0(假)。
C/ c++代码生成
<年代pan class=" remove_bold add_font_color_general">使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
的
StateActivationFunction 属性必须设置为 的双曲正切 。 的
GateActivationFunction 属性必须设置为 “乙状结肠” 。 的
ResetGateMode 属性必须设置为 “after-multiplication” 或 “recurrent-bias-after-multiplication” 。 的
HasStateInputs 和 HasStateOutputs 属性必须设置为 0 (假)。
GPU代码生成
<年代pan class=" remove_bold add_font_color_general">使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。
使用注意事项和限制: 的 的 的 的
版本历史
另请参阅
trainingOptions
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">trainNetwork
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">sequenceInputLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">lstmLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">bilstmLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">convolution1dLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">maxPooling1dLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">averagePooling1dLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">globalMaxPooling1dLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">globalAveragePooling1dLayer
trainingOptions
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">trainNetwork
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">sequenceInputLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">lstmLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">bilstmLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">convolution1dLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">maxPooling1dLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">averagePooling1dLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">globalMaxPooling1dLayer
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">globalAveragePooling1dLayer
对MATLAB
您的avez cliquques sur unlien quques对应的命令MATLAB: 在MATLAB中,你可以使用MATLAB的命令。Les navigateurs web ne支金宝app持通过Les命令MATLAB。
你亦可选择下列网址: 选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家网站没有针对您所在位置的访问进行优化。如何获得最佳的网站性能
欧洲