array_write¶
- paddle.fluid.layers. array_write ( x, i, array=None ) ¶
该 OP 将输入的变量 x
写入到数组 cn_api_fluid_LoDTensorArray array
的第 i 个位置,并返回修改后的 LoDTensorArray,如果 array
为 None,则创建一个新的 LoDTensorArray。常与 array_read OP 联合使用对 LoDTensorArray 进行读写。
参数¶
x (Variable) – 待写入的数据,多维 Tensor,数据类型支持 float32,float64,int32,int64
i (Variable) – shape 为[1]的 1-D Tensor,表示写入到输出数组 LoDTensorArray 的位置,数据类型为 int64
array (Variable,可选) – 指定写入
x
的数组 LoDTensorArray。默认值为 None,此时将创建新的 LoDTensorArray 并作为结果返回
返回¶
写入输入
x
之后的 LoDTensorArray
返回类型¶
Variable
代码示例¶
import paddle.fluid as fluid
tmp = fluid.layers.fill_constant(shape=[3, 2], dtype='int64', value=5)
i = fluid.layers.fill_constant(shape=[1], dtype='int64', value=10)
#将 tmp 写入数组 arr 下标为 10 的位置,并返回 arr
arr = fluid.layers.array_write(tmp, i=i)
#此时 arr 是长度为 11 的 LoDTensorArray,可以通过 array_read 来查看下标为 10 的 LoDTensor,并将之打印出来
item = fluid.layers.array_read(arr, i=i)
input = fluid.layers.Print(item, message="The content of i-th LoDTensor:")
main_program = fluid.default_main_program()
exe = fluid.Executor(fluid.CPUPlace())
exe.run(main_program)
输出结果
COPY-FROM: paddle.fluid.layers.array_write