如何在飞桨中实现根据条件对张量进行动态赋值
Created by: liu0haha123
- 标题:如何在飞桨中实现根据条件对张量进行动态赋值
- 版本、环境信息: 1)PaddlePaddle版本:1.8.3 2)CPU/GPU 1660ti 3)系统环境:WIN10 4)Python版本号 3.6 5)显存信息 如何实现类似torch.where的条件赋值功能,飞桨的where返回的是对应元素的下标,我编写了如下的代码实现类似功能,报错 import paddle import paddle.fluid as fluid import paddle.fluid.dygraph as D from paddle.fluid.dygraph import nn import numpy as np
A = np.array([[1,2,3],[4,5,6],[7,7,7]]) B = np.array([[1,2,1],[4,4,4],[7,8,9]])
with D.guard(): A = D.to_variable(A) B = D.to_variable(B) W = fluid.layers.where(A==B) W = W.numpy().tolist() out = fluid.layers.assign(shape=(3,3),dtype="float32")*1000 for pos in W: X = pos[0] y = pos[1] out[X,y] = 0.00001
报错信息:
TypeError: 'paddle.fluid.core_avx.VarBase' object does not support item assignment
在动态图环境下,飞桨是否支持根据下标对Variable进行动态赋值,或者说是否有类似torch.where 功能的函数