sequence_enumerate

paddle.fluid.layers.sequence_enumerate ( input, win_size, pad_value=0, name=None ) [源代码]

枚举形状为 [d_1, 1] 的输入序列所有长度为 win_size 的子序列,生成一个形状为 [d_1, win_size] 的新序列,需要时以 pad_value 填充。

注意,该OP的输入 input 只能是LodTensor。

范例如下:

  1. 给定输入 x
  2. x.lod = [[0, 3, 5]]
  3. x.data = [[1], [2], [3], [4], [5]]
  4. x.dims = [5, 1]
  5. 设置属性 win_size = 2 pad_value = 0
  6. 得到输出 out
  7. out.lod = [[0, 3, 5]]
  8. out.data = [[1, 2], [2, 3], [3, 0], [4, 5], [5, 0]]
  9. out.dims = [5, 2]

参数:

  • input (Variable)- 输入序列,形状为 [d_1, 1] ,lod level为1的LodTensor。数据类型支持int32,int64,float32或float64。

  • win_size (int)- 子序列窗口大小。

  • pad_value (int,可选)- 填充值,默认为0。

  • name (str,可选) - 具体用法请参见 Name ,一般无需设置,默认值为None。

返回: 枚举序列,形状为 [d_1, win_size] ,lod_level为1的LoDTensor。数据类型与输入 input 一致。

返回类型: Variable

代码示例

  1. import paddle.fluid as fluid
  2. x = fluid.layers.data(name='x',shape=[-1, 1], dtype='int32', lod_level=1)
  3. out = fluid.layers.sequence_enumerate(input=x, win_size=3, pad_value=0)