RNN¶
RNN - 22¶
版本¶
名称: RNN (GitHub)
域:
main
自版本:
22
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
此版本的运算符自版本 22起可用。
概述¶
计算单层简单 RNN。此运算符通常通过一些自定义实现(如 CuDNN)来支持。
符号
X
- 输入张量i
- 输入门t
- 时间步长(t-1 表示前一个时间步长)Wi
- 输入门的 W 参数权重矩阵Ri
- 输入门的 R 循环权重矩阵Wbi
- 输入门的 W 参数偏置向量Rbi
- 输入门的 R 参数偏置向量WBi
- 反向输入门的 W 参数权重矩阵RBi
- 反向输入门的 R 循环权重矩阵WBbi
- 反向输入门的 WR 偏置向量RBbi
- 反向输入门的 RR 偏置向量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 >= 0,则为 x,否则为 alpha * x
ThresholdedRelu(x) - 如果 x >= alpha,则为 x,否则为 0
ScaledTanh(x) - alphaTanh(betax)
HardSigmoid(x) - min(max(alpha*x + beta, 0), 1)
Elu(x) - 如果 x >= 0,则为 x,否则为 alpha*(e^x - 1)
Softsign(x) - x/(1 + |x|)
Softplus(x) - log(1 + e^x)
方程式(默认值:f=Tanh)
Ht = f(Xt*(Wi^T) + Ht-1*(Ri^T) + Wbi + Rbi) 此运算符具有可选输入/输出。有关可选参数表示的更多详细信息,请参阅 ONNX IR。空字符串可用于实际参数名称的位置,以指示缺少的参数。尾随可选参数(没有后续参数的那些参数)也可以简单地省略。
属性¶
activation_alpha - FLOATS :
一些激活函数使用的可选缩放值。这些值按激活函数的顺序使用,例如 LSTM 中的 (f, g, h)。默认值与相应 ONNX 运算符的默认值相同。例如,对于 LeakyRelu,默认 alpha 为 0.01。
activation_beta - FLOATS :
一些激活函数使用的可选缩放值。这些值按激活函数的顺序使用,例如 LSTM 中的 (f, g, h)。默认值与相应 ONNX 运算符的默认值相同。
activations - STRINGS (默认值为
['Tanh', 'Tanh']
)输入门的激活函数(如果为双向,则为两个)。激活函数必须是上面指定的激活函数之一。可选:如果未指定,则默认值为
Tanh
。clip - FLOAT :
单元剪切阈值。剪切将张量的元素限制在 [-threshold, +threshold] 范围内,并应用于激活的输入。如果未指定,则不进行剪切。
direction - STRING (默认值为
'forward'
)指定 RNN 是向前、向后还是双向的。必须是 forward(默认)、reverse 或 bidirectional 之一。
hidden_size - INT :
隐藏层中的神经元数量
layout - INT (默认值为
'0'
)输入 X、initial_h 和输出 Y、Y_h 的形状格式。如果为 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 = [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 = [batch_size, num_directions, hidden_size]。
输入¶
3 到 6 个输入。
X (异构) - T
输入序列打包(并可能进行填充),打包成一个形状为
[seq_length, batch_size, input_size]
的 3-D 张量。W (异构) - T
输入门的权重张量。
Wi
和WBi
(如果为双向)的串联。张量具有形状[num_directions, hidden_size, input_size]
。R (异构) - T
循环权重张量。
Ri
和RBi
(如果为双向)的串联。张量具有形状[num_directions, hidden_size, hidden_size]
。B (可选,异构) - T
输入门的偏置张量。
[Wbi, Rbi]
和[WBbi, RBbi]
(如果为双向)的串联。张量具有形状[num_directions, 2*hidden_size]
。可选:如果未指定 - 假设为 0。sequence_lens (可选,异构) - T1
可选张量,指定批次中序列的长度。如果未指定 - 假设批次中所有序列的长度均为
seq_length
。它具有形状[batch_size]
。initial_h (可选,异构) - T
可选隐藏的初始值。如果未指定 - 假设为 0。它具有形状
[num_directions, batch_size, hidden_size]
。
输出¶
0 到 2 个输出。
Y (可选,异构) - T
一个张量,连接隐藏层的中间所有输出值。它的形状为
[seq_length, num_directions, batch_size, hidden_size]
。Y_h (可选,异构) - T
隐藏层的最后一个输出值。它的形状为
[num_directions, batch_size, hidden_size]
。
类型约束¶
T 在 (
tensor(bfloat16)
,tensor(double)
,tensor(float)
,tensor(float16)
) 中将输入和输出类型限制为浮点张量。
T1 在 (
tensor(int32)
) 中将 seq_lens 限制为整数张量。
RNN - 14¶
版本¶
名称: RNN (GitHub)
域:
main
since_version:
14
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
该版本的运算符已在版本 14 中可用。
概要¶
计算单层简单 RNN。此运算符通常通过一些自定义实现(如 CuDNN)来支持。
符号
X
- 输入张量i
- 输入门t
- 时间步长(t-1 表示前一个时间步长)Wi
- 输入门的 W 参数权重矩阵Ri
- 输入门的 R 循环权重矩阵Wbi
- 输入门的 W 参数偏置向量Rbi
- 输入门的 R 参数偏置向量WBi
- 反向输入门的 W 参数权重矩阵RBi
- 反向输入门的 R 循环权重矩阵WBbi
- 反向输入门的 WR 偏置向量RBbi
- 反向输入门的 RR 偏置向量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 >= 0,则为 x,否则为 alpha * x
ThresholdedRelu(x) - 如果 x >= alpha,则为 x,否则为 0
ScaledTanh(x) - alphaTanh(betax)
HardSigmoid(x) - min(max(alpha*x + beta, 0), 1)
Elu(x) - 如果 x >= 0,则为 x,否则为 alpha*(e^x - 1)
Softsign(x) - x/(1 + |x|)
Softplus(x) - log(1 + e^x)
方程式(默认值:f=Tanh)
Ht = f(Xt*(Wi^T) + Ht-1*(Ri^T) + Wbi + Rbi) 此运算符具有可选输入/输出。有关可选参数表示的更多详细信息,请参阅 ONNX IR。空字符串可用于实际参数名称的位置,以指示缺少的参数。尾随可选参数(没有后续参数的那些参数)也可以简单地省略。
属性¶
activation_alpha - FLOATS :
一些激活函数使用的可选缩放值。这些值按激活函数的顺序使用,例如 LSTM 中的 (f, g, h)。默认值与相应 ONNX 运算符的默认值相同。例如,对于 LeakyRelu,默认 alpha 为 0.01。
activation_beta - FLOATS :
一些激活函数使用的可选缩放值。这些值按激活函数的顺序使用,例如 LSTM 中的 (f, g, h)。默认值与相应 ONNX 运算符的默认值相同。
activations - STRINGS (默认值为
['Tanh', 'Tanh']
)输入门的激活函数(如果为双向,则为两个)。激活函数必须是上面指定的激活函数之一。可选:如果未指定,则默认值为
Tanh
。clip - FLOAT :
单元剪切阈值。剪切将张量的元素限制在 [-threshold, +threshold] 范围内,并应用于激活的输入。如果未指定,则不进行剪切。
direction - STRING (默认值为
'forward'
)指定 RNN 是向前、向后还是双向的。必须是 forward(默认)、reverse 或 bidirectional 之一。
hidden_size - INT :
隐藏层中的神经元数量
layout - INT (默认值为
'0'
)输入 X、initial_h 和输出 Y、Y_h 的形状格式。如果为 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 = [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 = [batch_size, num_directions, hidden_size]。
输入¶
3 到 6 个输入。
X (异构) - T
输入序列打包(并可能进行填充),打包成一个形状为
[seq_length, batch_size, input_size]
的 3-D 张量。W (异构) - T
输入门的权重张量。
Wi
和WBi
(如果为双向)的串联。张量具有形状[num_directions, hidden_size, input_size]
。R (异构) - T
循环权重张量。
Ri
和RBi
(如果为双向)的串联。张量具有形状[num_directions, hidden_size, hidden_size]
。B (可选,异构) - T
输入门的偏置张量。
[Wbi, Rbi]
和[WBbi, RBbi]
(如果为双向)的串联。张量具有形状[num_directions, 2*hidden_size]
。可选:如果未指定 - 假设为 0。sequence_lens (可选,异构) - T1
可选张量,指定批次中序列的长度。如果未指定 - 假设批次中所有序列的长度均为
seq_length
。它具有形状[batch_size]
。initial_h (可选,异构) - T
可选隐藏的初始值。如果未指定 - 假设为 0。它具有形状
[num_directions, batch_size, hidden_size]
。
输出¶
0 到 2 个输出。
Y (可选,异构) - T
一个张量,连接隐藏层的中间所有输出值。它的形状为
[seq_length, num_directions, batch_size, hidden_size]
。Y_h (可选,异构) - T
隐藏层的最后一个输出值。它的形状为
[num_directions, batch_size, hidden_size]
。
类型约束¶
T 在 (
tensor(double)
,tensor(float)
,tensor(float16)
) 中将输入和输出类型限制为浮点张量。
T1 在 (
tensor(int32)
) 中将 seq_lens 限制为整数张量。
RNN - 7¶
版本¶
名称: RNN (GitHub)
域:
main
since_version:
7
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
该版本的运算符已在版本 7 中可用。
概要¶
计算单层简单 RNN。此运算符通常通过一些自定义实现(如 CuDNN)来支持。
符号
X
- 输入张量
i
- 输入门
t
- 时间步长(t-1 表示前一个时间步长)
Wi
- 输入门的 W 参数权重矩阵
Ri
- 输入门的 R 循环权重矩阵
Wbi
- 输入门的 W 参数偏置向量
Rbi
- 输入门的 R 参数偏置向量
WBi
- 反向输入门的 W 参数权重矩阵
RBi
- 反向输入门的 R 循环权重矩阵
WBbi
- 反向输入门的 WR 偏置向量
RBbi
- 反向输入门的 RR 偏置向量
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 >= 0,则为 x,否则为 alpha * x
ThresholdedRelu(x) - 如果 x >= alpha,则为 x,否则为 0
ScaledTanh(x) - alphaTanh(betax)
HardSigmoid(x) - min(max(alpha*x + beta, 0), 1)
Elu(x) - 如果 x >= 0,则为 x,否则为 alpha*(e^x - 1)
Softsign(x) - x/(1 + |x|)
Softplus(x) - log(1 + e^x)
方程式(默认值:f=Tanh)
Ht = f(Xt*(Wi^T) + Ht-1*(Ri^T) + Wbi + Rbi) 此运算符具有可选输入/输出。有关可选参数表示的更多详细信息,请参阅 ONNX IR。空字符串可用于实际参数名称的位置,以指示缺少的参数。尾随可选参数(没有后续参数的那些参数)也可以简单地省略。
属性¶
activation_alpha - FLOATS :
一些激活函数使用的可选缩放值。这些值按激活函数的顺序使用,例如 LSTM 中的 (f, g, h)。默认值与相应 ONNX 运算符的默认值相同。例如,对于 LeakyRelu,默认 alpha 为 0.01。
activation_beta - FLOATS :
一些激活函数使用的可选缩放值。这些值按激活函数的顺序使用,例如 LSTM 中的 (f, g, h)。默认值与相应 ONNX 运算符的默认值相同。
activations - STRINGS (默认值为
['Tanh', 'Tanh']
)输入门的激活函数(如果为双向,则为两个)。激活函数必须是上面指定的激活函数之一。可选:如果未指定,则默认值为
Tanh
。clip - FLOAT :
单元剪切阈值。剪切将张量的元素限制在 [-threshold, +threshold] 范围内,并应用于激活的输入。如果未指定,则不进行剪切。
direction - STRING (默认值为
'forward'
)指定 RNN 是向前、向后还是双向的。必须是 forward(默认)、reverse 或 bidirectional 之一。
hidden_size - INT :
隐藏层中的神经元数量
输入¶
3 到 6 个输入。
X (异构) - T
输入序列打包(并可能进行填充),打包成一个形状为
[seq_length, batch_size, input_size]
的 3-D 张量。W (异构) - T
输入门的权重张量。
Wi
和WBi
(如果为双向)的串联。张量具有形状[num_directions, hidden_size, input_size]
。R (异构) - T
循环权重张量。
Ri
和RBi
(如果为双向)的串联。张量具有形状[num_directions, hidden_size, hidden_size]
。B (可选,异构) - T
输入门的偏置张量。
[Wbi, Rbi]
和[WBbi, RBbi]
(如果为双向)的串联。张量具有形状[num_directions, 2*hidden_size]
。可选:如果未指定 - 假设为 0。sequence_lens (可选,异构) - T1
可选张量,指定批次中序列的长度。如果未指定 - 假设批次中所有序列的长度均为
seq_length
。它具有形状[batch_size]
。initial_h (可选,异构) - T
可选隐藏的初始值。如果未指定 - 假设为 0。它具有形状
[num_directions, batch_size, hidden_size]
。
输出¶
0 到 2 个输出。
Y (可选,异构) - T
一个张量,连接隐藏层的中间所有输出值。它的形状为
[seq_length, num_directions, batch_size, hidden_size]
。Y_h (可选,异构) - T
隐藏层的最后一个输出值。它的形状为
[num_directions, batch_size, hidden_size]
。
类型约束¶
T 在 (
tensor(double)
,tensor(float)
,tensor(float16)
) 中将输入和输出类型限制为浮点张量。
T1 在 (
tensor(int32)
) 中将 seq_lens 限制为整数张量。
RNN - 1¶
版本¶
名称: RNN (GitHub)
域:
main
since_version:
1
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
该版本的运算符已在版本 1 中可用。
概要¶
计算单层简单 RNN。此运算符通常通过一些自定义实现(如 CuDNN)来支持。
符号
X
- 输入张量
i
- 输入门
t
- 时间步长(t-1 表示前一个时间步长)
Wi
- 输入门的 W 参数权重矩阵
Ri
- 输入门的 R 循环权重矩阵
Wbi
- 输入门的 W 参数偏置向量
Rbi
- 输入门的 R 参数偏置向量
WBi
- 反向输入门的 W 参数权重矩阵
RBi
- 反向输入门的 R 循环权重矩阵
WBbi
- 反向输入门的 WR 偏置向量
RBbi
- 反向输入门的 RR 偏置向量
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 >= 0,则为 x,否则为 alpha * x
ThresholdedRelu(x) - 如果 x >= alpha,则为 x,否则为 0
ScaledTanh(x) - alphaTanh(betax)
HardSigmoid(x) - min(max(alpha*x + beta, 0), 1)
Elu(x) - 如果 x >= 0,则为 x,否则为 alpha*(e^x - 1)
Softsign(x) - x/(1 + |x|)
Softplus(x) - log(1 + e^x)
方程式(默认值:f=Tanh)
Ht = f(Xt*(Wi^T) + Ht-1*Ri + Wbi + Rbi)
属性¶
activation_alpha - FLOATS :
一些激活函数使用的可选缩放值。这些值按激活函数的顺序使用,例如 LSTM 中的 (f, g, h)。默认值与相应 ONNX 运算符的默认值相同。例如,对于 LeakyRelu,默认 alpha 为 0.01。
activation_beta - FLOATS :
一些激活函数使用的可选缩放值。这些值按激活函数的顺序使用,例如 LSTM 中的 (f, g, h)。默认值与相应 ONNX 运算符的默认值相同。
activations - STRINGS (默认值为
['Tanh', 'Tanh']
)输入门的激活函数(如果为双向,则为两个)。激活函数必须是上面指定的激活函数之一。可选:如果未指定,则默认值为
Tanh
。clip - FLOAT :
单元剪切阈值。剪切将张量的元素限制在 [-threshold, +threshold] 范围内,并应用于激活的输入。如果未指定,则不进行剪切。
direction - STRING (默认值为
'forward'
)指定 RNN 是向前、向后还是双向的。必须是 forward(默认)、reverse 或 bidirectional 之一。
hidden_size - INT :
隐藏层中的神经元数量
output_sequence - INT (默认值为
'0'
)隐藏层的序列输出为可选,如果为 0 则为可选。默认为 0。
输入¶
3 到 6 个输入。
X (异构) - T
输入序列打包(并可能进行填充),打包成一个形状为
[seq_length, batch_size, input_size]
的 3-D 张量。W (异构) - T
输入门的权重张量。
Wi
和WBi
(如果为双向)的串联。张量具有形状[num_directions, hidden_size, input_size]
。R (异构) - T
循环权重张量。
Ri
和RBi
(如果为双向)的串联。张量具有形状[num_directions, hidden_size, hidden_size]
。B (可选,异构) - T
输入门的偏置张量。
[Wbi, Rbi]
和[WBbi, RBbi]
(如果为双向)的串联。张量具有形状[num_directions, 2*hidden_size]
。可选:如果未指定 - 假设为 0。sequence_lens (可选,异构) - T1
可选张量,指定批次中序列的长度。如果未指定 - 假设批次中所有序列的长度均为
seq_length
。它具有形状[batch_size]
。initial_h (可选,异构) - T
可选隐藏的初始值。如果未指定 - 假设为 0。它具有形状
[num_directions, batch_size, hidden_size]
。
输出¶
0 到 2 个输出。
Y (可选,异构) - T
一个张量,连接隐藏层的中间所有输出值。它的形状为
[seq_length, num_directions, batch_size, hidden_size]
。如果output_sequence
为 0,则它为可选。Y_h (可选,异构) - T
隐藏层的最后一个输出值。它的形状为
[num_directions, batch_size, hidden_size]
。
类型约束¶
T 在 (
tensor(double)
,tensor(float)
,tensor(float16)
) 中将输入和输出类型限制为浮点张量。
T1 在 (
tensor(int32)
) 中将 seq_lens 限制为整数张量。