LSTM¶
LSTM - 22¶
版本¶
名称: LSTM (GitHub)
域:
main
since_version:
22
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
此版本的运算符已从版本 22 开始可用。
摘要¶
计算单层 LSTM。此运算符通常通过一些自定义实现(例如 CuDNN)来支持。
符号
X
- 输入张量i
- 输入门o
- 输出门f
- 遗忘门c
- 细胞门t
- 时间步长(t-1 表示上一个时间步长)W[iofc]
- 输入、输出、遗忘和细胞门的 W 参数权重矩阵R[iofc]
- 输入、输出、遗忘和细胞门的 R 递归权重矩阵Wb[iofc]
- 输入、输出、遗忘和细胞门的 W 偏置向量Rb[iofc]
- 输入、输出、遗忘和细胞门的 R 偏置向量P[iof]
- 输入、输出和遗忘门的 P 窥视孔权重向量WB[iofc]
- 反向输入、输出、遗忘和细胞门的 W 参数权重矩阵RB[iofc]
- 反向输入、输出、遗忘和细胞门的 R 递归权重矩阵WBb[iofc]
- 反向输入、输出、遗忘和细胞门的 W 偏置向量RBb[iofc]
- 反向输入、输出、遗忘和细胞门的 R 偏置向量PB[iof]
- 反向输入、输出和遗忘门的 P 窥视孔权重向量H
- 隐藏状态num_directions
- 如果 direction == 双向,则为 2,否则为 1
激活函数
Relu(x) - max(0, x)
Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x})
Sigmoid(x) - 1/(1 + e^{-x})
注意:以下为可选
Affine(x) - alpha*x + beta
LeakyRelu(x) - x if x >= 0 else alpha * x
ThresholdedRelu(x) - x if x >= alpha else 0
ScaledTanh(x) - alphaTanh(betax)
HardSigmoid(x) - min(max(alpha*x + beta, 0), 1)
Elu(x) - x if x >= 0 else alpha*(e^x - 1)
Softsign(x) - x/(1 + |x|)
Softplus(x) - log(1 + e^x)
方程式(默认值:f=Sigmoid,g=Tanh,h=Tanh)
it = f(Xt*(Wi^T) + Ht-1*(Ri^T) + Pi (.) Ct-1 + Wbi + Rbi)
ft = f(Xt*(Wf^T) + Ht-1*(Rf^T) + Pf (.) Ct-1 + Wbf + Rbf)
ct = g(Xt*(Wc^T) + Ht-1*(Rc^T) + Wbc + Rbc)
Ct = ft (.) Ct-1 + it (.) ct
ot = f(Xt*(Wo^T) + Ht-1*(Ro^T) + Po (.) Ct + Wbo + Rbo)
Ht = ot (.) h(Ct) 此运算符具有可选输入/输出。有关可选参数表示的更多详细信息,请参阅ONNX IR。空字符串可用作实际参数名称的占位符,以指示缺少的参数。尾随可选参数(那些未跟在存在的参数之后)也可以简单地省略。
属性¶
activation_alpha - FLOATS :
某些激活函数使用的可选缩放值。这些值按激活函数的顺序使用,例如 LSTM 中的 (f, g, h)。默认值与相应 ONNX 运算符的默认值相同。例如,对于 LeakyRelu,默认 alpha 为 0.01。
activation_beta - FLOATS :
某些激活函数使用的可选缩放值。这些值按激活函数的顺序使用,例如 LSTM 中的 (f, g, h)。默认值与相应 ONNX 运算符的默认值相同。
activations - STRINGS :
用于输入、输出、遗忘、细胞和隐藏的 3 个(或 6 个,如果为双向)激活函数的列表。激活函数必须是上面指定的激活函数之一。可选:如果未指定,请参阅方程式以了解默认值。
clip - FLOAT :
细胞剪切阈值。剪切将张量的元素限制在 [-threshold, +threshold] 范围内,并应用于激活的输入。如果未指定,则不进行剪切。
direction - STRING(默认值为
'forward'
)指定 RNN 是前向、反向还是双向。必须是前向(默认)、反向或双向之一。
hidden_size - INT :
隐藏层中的神经元数量
input_forget - INT(默认值为
'0'
)如果为 1,则将输入门和遗忘门耦合。
layout - INT(默认值为
'0'
)输入 X、initial_h、initial_c 和输出 Y、Y_h、Y_c 的形状格式。如果为 0,则预期以下形状:X.shape = [seq_length, batch_size, input_size],Y.shape = [seq_length, num_directions, batch_size, hidden_size],initial_h.shape = Y_h.shape = initial_c.shape = Y_c.shape = [num_directions, batch_size, hidden_size]。如果为 1,则预期以下形状:X.shape = [batch_size, seq_length, input_size],Y.shape = [batch_size, seq_length, num_directions, hidden_size],initial_h.shape = Y_h.shape = initial_c.shape = Y_c.shape = [batch_size, num_directions, hidden_size]。
输入¶
3 到 8 个输入。
X(异构) - T
打包(并可能填充)到一个形状为
[seq_length, batch_size, input_size]
的 3-D 张量中的输入序列。W(异构) - T
门的权重张量。沿着维度 0 连接
W[iofc]
和WB[iofc]
(如果为双向)。该张量具有形状[num_directions, 4*hidden_size, input_size]
。R(异构) - T
递归权重张量。沿着维度 0 连接
R[iofc]
和RB[iofc]
(如果为双向)。此张量具有形状[num_directions, 4*hidden_size, hidden_size]
。B(可选,异构) - T
输入门的偏置张量。沿着维度 0 连接
[Wb[iofc], Rb[iofc]]
和[WBb[iofc], RBb[iofc]]
(如果为双向)。此张量具有形状[num_directions, 8*hidden_size]
。可选:如果未指定,则假定为 0。sequence_lens(可选,异构) - T1
指定批次中序列长度的可选张量。如果未指定,则假定批次中的所有序列都具有长度
seq_length
。它具有形状[batch_size]
。initial_h(可选,异构) - T
隐藏状态的可选初始值。如果未指定,则假定为 0。其形状为
[num_directions, batch_size, hidden_size]
。initial_c (可选,异构) - T
单元格的可选初始值。如果未指定,则假定为 0。其形状为
[num_directions, batch_size, hidden_size]
。P (可选,异构) - T
窥视孔的权重张量。将
P[iof]
和PB[iof]
(如果为双向)沿维度 0 连接。其形状为[num_directions, 3*hidde_size]
。可选:如果未指定,则假定为 0。
输出¶
0 到 3 个输出。
Y (可选,异构) - T
将所有隐藏的中间输出值连接在一起的张量。其形状为
[seq_length, num_directions, batch_size, hidden_size]
。Y_h (可选,异构) - T
隐藏状态的最后一个输出值。其形状为
[num_directions, batch_size, hidden_size]
。Y_c (可选,异构) - T
单元格的最后一个输出值。其形状为
[num_directions, batch_size, hidden_size]
。
类型约束¶
T in (
tensor(bfloat16)
,tensor(double)
,tensor(float)
,tensor(float16)
)将输入和输出类型限制为浮点张量。
T1 in (
tensor(int32)
)将 seq_lens 限制为整型张量。
LSTM - 14¶
版本¶
名称: LSTM (GitHub)
域:
main
since_version:
14
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
此版本的运算符已从版本 14开始可用。
摘要¶
计算单层 LSTM。此运算符通常通过一些自定义实现(例如 CuDNN)来支持。
符号
X
- 输入张量i
- 输入门o
- 输出门f
- 遗忘门c
- 细胞门t
- 时间步长(t-1 表示上一个时间步长)W[iofc]
- 输入、输出、遗忘和细胞门的 W 参数权重矩阵R[iofc]
- 输入、输出、遗忘和细胞门的 R 递归权重矩阵Wb[iofc]
- 输入、输出、遗忘和细胞门的 W 偏置向量Rb[iofc]
- 输入、输出、遗忘和细胞门的 R 偏置向量P[iof]
- 输入、输出和遗忘门的 P 窥视孔权重向量WB[iofc]
- 反向输入、输出、遗忘和细胞门的 W 参数权重矩阵RB[iofc]
- 反向输入、输出、遗忘和细胞门的 R 递归权重矩阵WBb[iofc]
- 反向输入、输出、遗忘和细胞门的 W 偏置向量RBb[iofc]
- 反向输入、输出、遗忘和细胞门的 R 偏置向量PB[iof]
- 反向输入、输出和遗忘门的 P 窥视孔权重向量H
- 隐藏状态num_directions
- 如果 direction == 双向,则为 2,否则为 1
激活函数
Relu(x) - max(0, x)
Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x})
Sigmoid(x) - 1/(1 + e^{-x})
注意:以下为可选
Affine(x) - alpha*x + beta
LeakyRelu(x) - x if x >= 0 else alpha * x
ThresholdedRelu(x) - x if x >= alpha else 0
ScaledTanh(x) - alphaTanh(betax)
HardSigmoid(x) - min(max(alpha*x + beta, 0), 1)
Elu(x) - x if x >= 0 else alpha*(e^x - 1)
Softsign(x) - x/(1 + |x|)
Softplus(x) - log(1 + e^x)
方程式(默认值:f=Sigmoid,g=Tanh,h=Tanh)
it = f(Xt*(Wi^T) + Ht-1*(Ri^T) + Pi (.) Ct-1 + Wbi + Rbi)
ft = f(Xt*(Wf^T) + Ht-1*(Rf^T) + Pf (.) Ct-1 + Wbf + Rbf)
ct = g(Xt*(Wc^T) + Ht-1*(Rc^T) + Wbc + Rbc)
Ct = ft (.) Ct-1 + it (.) ct
ot = f(Xt*(Wo^T) + Ht-1*(Ro^T) + Po (.) Ct + Wbo + Rbo)
Ht = ot (.) h(Ct) 此运算符具有可选输入/输出。有关可选参数表示的更多详细信息,请参阅ONNX IR。空字符串可用作实际参数名称的占位符,以指示缺少的参数。尾随可选参数(那些未跟在存在的参数之后)也可以简单地省略。
属性¶
activation_alpha - FLOATS :
某些激活函数使用的可选缩放值。这些值按激活函数的顺序使用,例如 LSTM 中的 (f, g, h)。默认值与相应 ONNX 运算符的默认值相同。例如,对于 LeakyRelu,默认 alpha 为 0.01。
activation_beta - FLOATS :
某些激活函数使用的可选缩放值。这些值按激活函数的顺序使用,例如 LSTM 中的 (f, g, h)。默认值与相应 ONNX 运算符的默认值相同。
activations - STRINGS :
用于输入、输出、遗忘、细胞和隐藏的 3 个(或 6 个,如果为双向)激活函数的列表。激活函数必须是上面指定的激活函数之一。可选:如果未指定,请参阅方程式以了解默认值。
clip - FLOAT :
细胞剪切阈值。剪切将张量的元素限制在 [-threshold, +threshold] 范围内,并应用于激活的输入。如果未指定,则不进行剪切。
direction - STRING(默认值为
'forward'
)指定 RNN 是前向、反向还是双向。必须是前向(默认)、反向或双向之一。
hidden_size - INT :
隐藏层中的神经元数量
input_forget - INT(默认值为
'0'
)如果为 1,则将输入门和遗忘门耦合。
layout - INT(默认值为
'0'
)输入 X、initial_h、initial_c 和输出 Y、Y_h、Y_c 的形状格式。如果为 0,则预期以下形状:X.shape = [seq_length, batch_size, input_size],Y.shape = [seq_length, num_directions, batch_size, hidden_size],initial_h.shape = Y_h.shape = initial_c.shape = Y_c.shape = [num_directions, batch_size, hidden_size]。如果为 1,则预期以下形状:X.shape = [batch_size, seq_length, input_size],Y.shape = [batch_size, seq_length, num_directions, hidden_size],initial_h.shape = Y_h.shape = initial_c.shape = Y_c.shape = [batch_size, num_directions, hidden_size]。
输入¶
3 到 8 个输入。
X(异构) - T
打包(并可能填充)到一个形状为
[seq_length, batch_size, input_size]
的 3-D 张量中的输入序列。W(异构) - T
门的权重张量。沿着维度 0 连接
W[iofc]
和WB[iofc]
(如果为双向)。该张量具有形状[num_directions, 4*hidden_size, input_size]
。R(异构) - T
递归权重张量。沿着维度 0 连接
R[iofc]
和RB[iofc]
(如果为双向)。此张量具有形状[num_directions, 4*hidden_size, hidden_size]
。B(可选,异构) - T
输入门的偏置张量。沿着维度 0 连接
[Wb[iofc], Rb[iofc]]
和[WBb[iofc], RBb[iofc]]
(如果为双向)。此张量具有形状[num_directions, 8*hidden_size]
。可选:如果未指定,则假定为 0。sequence_lens(可选,异构) - T1
指定批次中序列长度的可选张量。如果未指定,则假定批次中的所有序列都具有长度
seq_length
。它具有形状[batch_size]
。initial_h(可选,异构) - T
隐藏状态的可选初始值。如果未指定,则假定为 0。其形状为
[num_directions, batch_size, hidden_size]
。initial_c (可选,异构) - T
单元格的可选初始值。如果未指定,则假定为 0。其形状为
[num_directions, batch_size, hidden_size]
。P (可选,异构) - T
窥视孔的权重张量。将
P[iof]
和PB[iof]
(如果为双向)沿维度 0 连接。其形状为[num_directions, 3*hidde_size]
。可选:如果未指定,则假定为 0。
输出¶
0 到 3 个输出。
Y (可选,异构) - T
将所有隐藏的中间输出值连接在一起的张量。其形状为
[seq_length, num_directions, batch_size, hidden_size]
。Y_h (可选,异构) - T
隐藏状态的最后一个输出值。其形状为
[num_directions, batch_size, hidden_size]
。Y_c (可选,异构) - T
单元格的最后一个输出值。其形状为
[num_directions, batch_size, hidden_size]
。
类型约束¶
T in (
tensor(double)
,tensor(float)
,tensor(float16)
)将输入和输出类型限制为浮点张量。
T1 in (
tensor(int32)
)将 seq_lens 限制为整型张量。
LSTM - 7¶
版本¶
名称: LSTM (GitHub)
域:
main
since_version:
7
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
此版本的运算符已从版本 7开始可用。
摘要¶
计算单层 LSTM。此运算符通常通过一些自定义实现(例如 CuDNN)来支持。
符号
X
- 输入张量
i
- 输入门
o
- 输出门
f
- 遗忘门
c
- 细胞门
t
- 时间步长(t-1 表示上一个时间步长)
W[iofc]
- 输入、输出、遗忘和细胞门的 W 参数权重矩阵
R[iofc]
- 输入、输出、遗忘和细胞门的 R 递归权重矩阵
Wb[iofc]
- 输入、输出、遗忘和细胞门的 W 偏置向量
Rb[iofc]
- 输入、输出、遗忘和细胞门的 R 偏置向量
P[iof]
- 输入、输出和遗忘门的 P 窥视孔权重向量
WB[iofc]
- 反向输入、输出、遗忘和细胞门的 W 参数权重矩阵
RB[iofc]
- 反向输入、输出、遗忘和细胞门的 R 递归权重矩阵
WBb[iofc]
- 反向输入、输出、遗忘和细胞门的 W 偏置向量
RBb[iofc]
- 反向输入、输出、遗忘和细胞门的 R 偏置向量
PB[iof]
- 反向输入、输出和遗忘门的 P 窥视孔权重向量
H
- 隐藏状态
num_directions
- 如果 direction == 双向,则为 2,否则为 1
激活函数
Relu(x) - max(0, x)
Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x})
Sigmoid(x) - 1/(1 + e^{-x})
(注意:以下是可选的)
Affine(x) - alpha*x + beta
LeakyRelu(x) - x if x >= 0 else alpha * x
ThresholdedRelu(x) - x if x >= alpha else 0
ScaledTanh(x) - alphaTanh(betax)
HardSigmoid(x) - min(max(alpha*x + beta, 0), 1)
Elu(x) - x if x >= 0 else alpha*(e^x - 1)
Softsign(x) - x/(1 + |x|)
Softplus(x) - log(1 + e^x)
方程式(默认值:f=Sigmoid,g=Tanh,h=Tanh)
it = f(Xt*(Wi^T) + Ht-1*(Ri^T) + Pi (.) Ct-1 + Wbi + Rbi)
ft = f(Xt*(Wf^T) + Ht-1*(Rf^T) + Pf (.) Ct-1 + Wbf + Rbf)
ct = g(Xt*(Wc^T) + Ht-1*(Rc^T) + Wbc + Rbc)
Ct = ft (.) Ct-1 + it (.) ct
ot = f(Xt*(Wo^T) + Ht-1*(Ro^T) + Po (.) Ct + Wbo + Rbo)
Ht = ot (.) h(Ct) 此运算符具有可选输入/输出。有关可选参数表示的更多详细信息,请参阅ONNX IR。空字符串可用作实际参数名称的占位符,以指示缺少的参数。尾随可选参数(那些未跟在存在的参数之后)也可以简单地省略。
属性¶
activation_alpha - FLOATS :
某些激活函数使用的可选缩放值。这些值按激活函数的顺序使用,例如 LSTM 中的 (f, g, h)。默认值与相应 ONNX 运算符的默认值相同。例如,对于 LeakyRelu,默认 alpha 为 0.01。
activation_beta - FLOATS :
某些激活函数使用的可选缩放值。这些值按激活函数的顺序使用,例如 LSTM 中的 (f, g, h)。默认值与相应 ONNX 运算符的默认值相同。
activations - STRINGS :
用于输入、输出、遗忘、细胞和隐藏的 3 个(或 6 个,如果为双向)激活函数的列表。激活函数必须是上面指定的激活函数之一。可选:如果未指定,请参阅方程式以了解默认值。
clip - FLOAT :
细胞剪切阈值。剪切将张量的元素限制在 [-threshold, +threshold] 范围内,并应用于激活的输入。如果未指定,则不进行剪切。
direction - STRING(默认值为
'forward'
)指定 RNN 是前向、反向还是双向。必须是前向(默认)、反向或双向之一。
hidden_size - INT :
隐藏层中的神经元数量
input_forget - INT(默认值为
'0'
)如果为 1,则将输入门和遗忘门耦合。
输入¶
3 到 8 个输入。
X(异构) - T
打包(并可能填充)到一个形状为
[seq_length, batch_size, input_size]
的 3-D 张量中的输入序列。W(异构) - T
门的权重张量。沿着维度 0 连接
W[iofc]
和WB[iofc]
(如果为双向)。该张量具有形状[num_directions, 4*hidden_size, input_size]
。R(异构) - T
递归权重张量。沿着维度 0 连接
R[iofc]
和RB[iofc]
(如果为双向)。此张量具有形状[num_directions, 4*hidden_size, hidden_size]
。B(可选,异构) - T
输入门的偏置张量。沿着维度 0 连接
[Wb[iofc], Rb[iofc]]
和[WBb[iofc], RBb[iofc]]
(如果为双向)。此张量具有形状[num_directions, 8*hidden_size]
。可选:如果未指定,则假定为 0。sequence_lens(可选,异构) - T1
指定批次中序列长度的可选张量。如果未指定,则假定批次中的所有序列都具有长度
seq_length
。它具有形状[batch_size]
。initial_h(可选,异构) - T
隐藏状态的可选初始值。如果未指定,则假定为 0。其形状为
[num_directions, batch_size, hidden_size]
。initial_c (可选,异构) - T
单元格的可选初始值。如果未指定,则假定为 0。其形状为
[num_directions, batch_size, hidden_size]
。P (可选,异构) - T
窥视孔的权重张量。将
P[iof]
和PB[iof]
(如果为双向)沿维度 0 连接。其形状为[num_directions, 3*hidde_size]
。可选:如果未指定,则假定为 0。
输出¶
0 到 3 个输出。
Y (可选,异构) - T
将所有隐藏的中间输出值连接在一起的张量。其形状为
[seq_length, num_directions, batch_size, hidden_size]
。Y_h (可选,异构) - T
隐藏状态的最后一个输出值。其形状为
[num_directions, batch_size, hidden_size]
。Y_c (可选,异构) - T
单元格的最后一个输出值。其形状为
[num_directions, batch_size, hidden_size]
。
类型约束¶
T in (
tensor(double)
,tensor(float)
,tensor(float16)
)将输入和输出类型限制为浮点张量。
T1 in (
tensor(int32)
)将 seq_lens 限制为整型张量。
LSTM - 1¶
版本¶
名称: LSTM (GitHub)
域:
main
since_version:
1
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
此版本的运算符已从版本 1开始可用。
摘要¶
计算单层 LSTM。此运算符通常通过一些自定义实现(例如 CuDNN)来支持。
符号
X
- 输入张量
i
- 输入门
o
- 输出门
f
- 遗忘门
c
- 细胞门
t
- 时间步长(t-1 表示上一个时间步长)
W[iofc]
- 输入、输出、遗忘和细胞门的 W 参数权重矩阵
R[iofc]
- 输入、输出、遗忘和细胞门的 R 递归权重矩阵
Wb[iofc]
- 输入、输出、遗忘和细胞门的 W 偏置向量
Rb[iofc]
- 输入、输出、遗忘和细胞门的 R 偏置向量
P[iof]
- 输入、输出和遗忘门的 P 窥视孔权重向量
WB[iofc]
- 反向输入、输出、遗忘和细胞门的 W 参数权重矩阵
RB[iofc]
- 反向输入、输出、遗忘和细胞门的 R 递归权重矩阵
WBb[iofc]
- 反向输入、输出、遗忘和细胞门的 W 偏置向量
RBb[iofc]
- 反向输入、输出、遗忘和细胞门的 R 偏置向量
PB[iof]
- 反向输入、输出和遗忘门的 P 窥视孔权重向量
H
- 隐藏状态
num_directions
- 如果 direction == 双向,则为 2,否则为 1
激活函数
Relu(x) - max(0, x)
Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x})
Sigmoid(x) - 1/(1 + e^{-x})
(注意:以下是可选的)
Affine(x) - alpha*x + beta
LeakyRelu(x) - x if x >= 0 else alpha * x
ThresholdedRelu(x) - x if x >= alpha else 0
ScaledTanh(x) - alphaTanh(betax)
HardSigmoid(x) - min(max(alpha*x + beta, 0), 1)
Elu(x) - x if x >= 0 else alpha*(e^x - 1)
Softsign(x) - x/(1 + |x|)
Softplus(x) - log(1 + e^x)
方程式(默认值:f=Sigmoid,g=Tanh,h=Tanh)
it = f(Xt*(Wi^T) + Ht-1*Ri + Pi (.) Ct-1 + Wbi + Rbi)
ft = f(Xt*(Wf^T) + Ht-1*Rf + Pf (.) Ct-1 + Wbf + Rbf)
ct = g(Xt*(Wc^T) + Ht-1*Rc + Wbc + Rbc)
Ct = ft (.) Ct-1 + it (.) ct
ot = f(Xt*(Wo^T) + Ht-1*Ro + Po (.) Ct + Wbo + Rbo)
Ht = ot (.) h(Ct)
属性¶
activation_alpha - FLOATS :
某些激活函数使用的可选缩放值。这些值按激活函数的顺序使用,例如 LSTM 中的 (f, g, h)。默认值与相应 ONNX 运算符的默认值相同。例如,对于 LeakyRelu,默认 alpha 为 0.01。
activation_beta - FLOATS :
某些激活函数使用的可选缩放值。这些值按激活函数的顺序使用,例如 LSTM 中的 (f, g, h)。默认值与相应 ONNX 运算符的默认值相同。
activations - STRINGS :
用于输入、输出、遗忘、细胞和隐藏的 3 个(或 6 个,如果为双向)激活函数的列表。激活函数必须是上面指定的激活函数之一。可选:如果未指定,请参阅方程式以了解默认值。
clip - FLOAT :
细胞剪切阈值。剪切将张量的元素限制在 [-threshold, +threshold] 范围内,并应用于激活的输入。如果未指定,则不进行剪切。
direction - STRING(默认值为
'forward'
)指定 RNN 是前向、反向还是双向。必须是前向(默认)、反向或双向之一。
hidden_size - INT :
隐藏层中的神经元数量
input_forget - INT(默认值为
'0'
)如果为 1,则将输入门和遗忘门耦合,默认值为 0。
output_sequence - INT (默认值为
'0'
)如果为 0,则隐藏状态的序列输出是可选的。默认值为 0。
输入¶
3 到 8 个输入。
X(异构) - T
打包(并可能填充)到一个形状为
[seq_length, batch_size, input_size]
的 3-D 张量中的输入序列。W(异构) - T
门的权重张量。沿着维度 0 连接
W[iofc]
和WB[iofc]
(如果为双向)。该张量具有形状[num_directions, 4*hidden_size, input_size]
。R(异构) - T
递归权重张量。沿着维度 0 连接
R[iofc]
和RB[iofc]
(如果为双向)。此张量具有形状[num_directions, 4*hidden_size, hidden_size]
。B(可选,异构) - T
输入门的偏置张量。沿着维度 0 连接
[Wb[iofc], Rb[iofc]]
和[WBb[iofc], RBb[iofc]]
(如果为双向)。此张量具有形状[num_directions, 8*hidden_size]
。可选:如果未指定,则假定为 0。sequence_lens(可选,异构) - T1
指定批次中序列长度的可选张量。如果未指定,则假定批次中的所有序列都具有长度
seq_length
。它具有形状[batch_size]
。initial_h(可选,异构) - T
隐藏状态的可选初始值。如果未指定,则假定为 0。其形状为
[num_directions, batch_size, hidden_size]
。initial_c (可选,异构) - T
单元格的可选初始值。如果未指定,则假定为 0。其形状为
[num_directions, batch_size, hidden_size]
。P (可选,异构) - T
窥视孔的权重张量。将
P[iof]
和PB[iof]
(如果为双向)沿维度 0 连接。其形状为[num_directions, 3*hidde_size]
。可选:如果未指定,则假定为 0。
输出¶
0 到 3 个输出。
Y (可选,异构) - T
将所有隐藏的中间输出值连接在一起的张量。其形状为
[seq_length, num_directions, batch_size, hidden_size]
。如果output_sequence
为 0,则它是可选的。Y_h (可选,异构) - T
隐藏状态的最后一个输出值。其形状为
[num_directions, batch_size, hidden_size]
。Y_c (可选,异构) - T
单元格的最后一个输出值。其形状为
[num_directions, batch_size, hidden_size]
。
类型约束¶
T in (
tensor(double)
,tensor(float)
,tensor(float16)
)将输入和输出类型限制为浮点张量。
T1 in (
tensor(int32)
)将 seq_lens 限制为整型张量。