lod_reset

    根据给定的参数 ytarget_lod ,重设输入 x (LoDTensor) 的 LoD 信息。

    参数:

    • y (Variable|None) : 当 y 非空时,输出 LoDTensor 的 LoD 信息将与 y 的 LoD 一致。

    • target_lod (list|tuple|None) : 一级 LoD,当 y 为空时,输出 LoDTensor 的 LoD 信息将与 target_lod 一致。

    • Variable (LoDTensor),重设了 LoD 信息的 LoDTensor。

    返回类型:

    • Variable (LoDTensor)。

    抛出异常:

    • TypeError : 当 ytarget_lod 二者均为空时抛出此异常。
    1. import paddle.fluid as fluid
    2. import numpy
    3. x = fluid.layers.data(name='x', shape=[6])
    4. output = fluid.layers.lod_reset(x=x, y=y)
    5. # Create an executor using CPU as an example
    6. place = fluid.CPUPlace()
    7. exe = fluid.Executor(place)
    8. exe.run(fluid.default_startup_program())
    9. # Execute
    10. x_tensor = fluid.core.LoDTensor()
    11. x_tensor.set(numpy.ones([6]).astype(numpy.float32), place)
    12. y_ndarray = numpy.ones([6]).astype(numpy.float32)
    13. y_tensor = fluid.create_lod_tensor(y_ndarray, y_lod, place)
    14. res, = exe.run(fluid.default_main_program(),
    15. feed={'x':x_tensor, 'y':y_tensor},
    16. fetch_list=[output],
    17. return_numpy=False)
    18. print(res)
    19. # Output Value:
    20. # lod: [[0, 2, 4], [0, 2, 4, 5, 6]]
    21. # dim: 6
    22. # layout: NCHW
    23. # data: [1 1 1 1 1 1]