numpy的索引操作我想更新的张量的值,如:与Tensorflow
ldream[w,:,x,y,z] = 0
但是要得到一个错误说:
TypeError: 'Tensor' object does not support item assignment
numpy的索引操作我想更新的张量的值,如:与Tensorflow
ldream[w,:,x,y,z] = 0
但是要得到一个错误说:
TypeError: 'Tensor' object does not support item assignment
看来ldream
是tensorflow可变的,不幸的不能像numpy数组一样直接赋值。
要更新tensorflow张量的值,可以进行分配操作,然后运行(EVAL)该操作。这里是如何做到这一点的例子:
Tensorflow: How to modify the value in tensor
这样做的原因是,当你编写你的TF变量和操作,你实际上是“分期”他们在稍后的时间发生(如当你做sess.run
);就像张量流量实际运行的蓝图一样。
通过使用numpy的阵列创建布尔掩模固定此:
ldream_mask = np.zeros(ldream.shape, dtype=np.bool)
然后选择所需的索引和将它们标记为真
ldream_mask[w,:,x,y,z] = True
然后,使用tf.where更新期望指标使用ldream_mask
如果你要做的仅仅是连接另外一个答案,那么你应该关闭这个作为重复 –
@facultyofmusic这个问题的答案是指修改tf.V良莠不齐,我想在通过使用索引和切片等与numpy的阵列基于张量来选择值e.g ldream = [X,:,Y,A,B] – thedlade