功能
计算单层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