sequence_reverse

  • paddle.fluid.layers.sequence_reverse(x, name=None)[源代码]

注意:该OP的输入只能是LoDTensor,如果您需要处理的输入是Tensor类型,请使用reverse函数(fluid.layers. reverse )。

该OP仅支持LoDTensor ,对于输入的LoDTensor,在每个序列(sequence)上进行反转。目前仅支持对LoD层次(LoD level)为1的LoDTensor进行反转。该OP在构建反向 DynamicRNN 网络时十分有用。

  1. 输入x是一个LoDTensor:
  2. x.lod = [[0, 2, 5]]
  3. x.data = [[1, 2, 3, 4],
  4. [5, 6, 7, 8],
  5. [9, 10, 11, 12],
  6. [13,14, 15, 16],
  7. [17,18, 19, 20]]
  8. x.shape = [5, 4]
  9.  
  10. 输出outx具有同样的shapeLoD信息:
  11. out.lod = [[0, 2, 5]]
  12. out.data = [[5, 6, 7, 8],
  13. [1, 2, 3, 4],
  14. [17,18, 19, 20],
  15. [13,14, 15, 16],
  16. [9, 10, 11, 12]]
  17. out.shape = [5, 4]
  • 参数:
    • x (Variable) – 输入是LoD level为1的LoDTensor。目前仅支持对LoD层次(LoD level)为1的LoDTensor进行反转。数据类型为float32,float64,int8,int32或int64。
    • name (str,可选) – 具体用法请参见 Name ,一般无需设置,默认值为None。

返回:输出在每个序列上反转后的LoDTensor,数据类型和输入类型一致。

返回类型:Variable

代码示例

  1. import paddle.fluid as fluid
  2. x = fluid.layers.data(name='x', shape=[2, 6], dtype='float32')
  3. x_reversed = fluid.layers.sequence_reverse(x)