lod_reset
根据给定的参数 y
或 target_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
: 当y
和target_lod
二者均为空时抛出此异常。
import paddle.fluid as fluid
import numpy
x = fluid.layers.data(name='x', shape=[6])
output = fluid.layers.lod_reset(x=x, y=y)
# Create an executor using CPU as an example
place = fluid.CPUPlace()
exe = fluid.Executor(place)
exe.run(fluid.default_startup_program())
# Execute
x_tensor = fluid.core.LoDTensor()
x_tensor.set(numpy.ones([6]).astype(numpy.float32), place)
y_ndarray = numpy.ones([6]).astype(numpy.float32)
y_tensor = fluid.create_lod_tensor(y_ndarray, y_lod, place)
res, = exe.run(fluid.default_main_program(),
feed={'x':x_tensor, 'y':y_tensor},
fetch_list=[output],
return_numpy=False)
print(res)
# Output Value:
# lod: [[0, 2, 4], [0, 2, 4, 5, 6]]
# dim: 6
# layout: NCHW
# data: [1 1 1 1 1 1]