昇腾社区首页
中文
注册

GRU

功能

计算单层GRU,通常通过一些自定义实现来支持此运算符。

输入

  • x:输入Tensor,将输入序列打包成一个三维张量,shape是[seq_length, batch_size, input_size],数据类型:float16。
  • w:输入Tensor,gate的权重,(如果是双向的)沿维度0方向串联,shape是W[zrh] WB[zrh] [num_directions, 3*hidden_size, input_size],数据类型:float16。
  • r:输入Tensor,递归权重Tensor,(如果是双向的)沿维度0方向串联,shape是R[zrh] RB[zrh] [num_directions, 3*hidden_size, hidden_size],数据类型:float16。
  • b(可选):输入Tensor,gate的偏移Tensor,(如果是双向的)沿维度0方向串联,shape是[Wb[zrh], Rb[zrh]] [WBb[zrh], RBb[zrh]] [num_directions, 6*hidden_size],如未选中,默认为0,数据类型:float16。
  • sequence_lens(可选):输入Tensor,用于指定某批次中序列的长度,shape是seq_length[batch_size],如未选中假定所有序列都有length,数据类型:int32。
  • initial_h(可选):输入Tensor,hidden的初始值,shape是[num_directions, batch_size, hidden_size],如未选中假定为0,数据类型:float16。

属性

  • activation_alpha:数据类型支持floats,激活函数使用的可选缩放值。这些值按激活函数的顺序使用,例如LSTM中的(f, g, h)。默认值与相应的ONNX一样,而对于LeakyRelu,默认alpha为0.01。
  • activation_beta:数据类型支持floats,激活函数使用的可选缩放值。这些值按激活函数的顺序使用,例如LSTM中的(f, g, h)。默认值与相应的ONNX一样。
  • activations:数据类型支持strings,用于更新、重置和隐藏gates(如果是双向)激活函数列表。激活函数必须是上述指定的激活函数之一。
  • clip:数据类型支持float,单元clip阈值,将Tensor元素限制在具体单位内。
  • direction:数据类型支持string,默认是forward,指定RNN是正向、反向还是双向。必须是正向(默认)、反向或双向之一。
  • hidden_size:数据类型支持int,隐藏层神经元数量。
  • linear_before_reset:数据类型支持int ,默认为0,计算隐藏gates的输出时,在乘以复位门的输出之前应用线性变换。

输出

  • y:输出Tensor,连接了 hidden 的所有中间输出值,shape是[seq_length, num_directions, batch_size, hidden_size],数据类型:float16。
  • y_h:输出Tensor,隐藏的最后一个输出值,shape是[num_directions, batch_size, hidden_size],数据类型:float16。

约束与限制

无。

支持的ONNX版本

Opset v8/v9/v10/v11/v12/v13/v14/v15/v16/v17/v18