masked_scatter¶
返回一个 N-D 的 Tensor,Tensor 的值是根据 mask
信息,将 value
中的值逐个填充到 x
中 mask
对应为 True
的位置,mask
的数据类型是 bool。
参数¶
x (Tensor) - 输入 Tensor,数据类型为 float,double,int,int64_t,float16 或者 bfloat16。
mask (Tensor) - 布尔张量,表示要填充的位置。mask 的数据类型必须为 bool。
value (Tensor) - 用于填充目标张量的值,数据类型为 float,double,int,int64_t,float16 或者 bfloat16。
name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。
返回¶
返回一个根据 mask
将对应位置逐个填充 value
中的 Tensor,数据类型与 x
相同。
代码示例¶
>>> import paddle
>>> paddle.seed(2048)
>>> x = paddle.randn([2, 2])
>>> print(x)
Tensor(shape=[2, 2], dtype=float32, place=Place(cpu), stop_gradient=True,
[[-1.24725831, 0.03843464],
[-0.31660911, 0.04793844]])
>>> mask = paddle.to_tensor([[True, True], [False, False]])
>>> value = paddle.to_tensor([1, 2, 3, 4, 5,], dtype="float32")
>>> out = paddle.masked_scatter(x, mask, value)
>>> print(out)
Tensor(shape=[2, 2], dtype=float32, place=Place(cpu), stop_gradient=True,
[[1, 2],
[-0.31660911, 0.04793844]])