sequence_reshape

  • paddle.fluid.layers.sequence_reshape(input, new_dim)[源代码]

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

该OP仅支持LoDTensor ,在指定 new_dim 参数下,通过序列原始长度、和原始shape计算出新的shape,以输出包含新维度(new_dim)下的LoDTensor。目前仅支持1-level LoDTensor,请确保(原长度*原维数)可以除以新的维数,且每个序列没有余数。

  1. input是一个LoDTensor:
  2. input.lod = [[0, 2, 6]]
  3. input.data = [[1, 2], [3, 4],
  4. [5, 6], [7, 8],
  5. [9, 10], [11, 12]]
  6. input.shape = [6, 2]
  7. 设置 new_dim = 4
  8. 输出为LoDTensor:
  9. out.lod = [[0, 1, 3]]
  10.  
  11. out.data = [[1, 2, 3, 4],
  12. [5, 6, 7, 8],
  13. [9, 10, 11, 12]]
  14. out.shape = [3, 4]
  • 参数:
    • input (Variable) - 维度为 sequence_reshape - 图1 的二维LoDTensor,且仅支持lod_level为1。数据类型为int32,int64,float32或float64。
    • new_dim (int)- 指定reshape后的新维度,即对输入LoDTensor重新reshape后的新维度。

返回:根据新维度重新reshape后的LoDTensor,数据类型和输入一致。

返回类型:Variable

代码示例

  1. import paddle.fluid as fluid
  2. x = fluid.layers.data(name='x', shape=[2, 6], append_batch_size=False, dtype='float32', lod_level=1)
  3. x_reshaped = fluid.layers.sequence_reshape(input=x, new_dim=4)