Python 在while循环中更改张量的单个值
如何在while循环中更改张量的单个值? 我知道我可以使用Python 在while循环中更改张量的单个值,python,tensorflow,Python,Tensorflow,如何在while循环中更改张量的单个值? 我知道我可以使用tf.scatter\u update(Variable,index,value)操作tf.Variable的单个值,但在循环内部我无法访问变量。是否有一种方法/解决方法可以在while循环中操纵张量的给定值 以下是我目前的代码供参考: my_variable = tf.Variable() def body(i, my_variable): [...] return tf.add(i, 1), tf.scatter_u
tf.scatter\u update(Variable,index,value)
操作tf.Variable的单个值,但在循环内部我无法访问变量。是否有一种方法/解决方法可以在while循环中操纵张量的给定值
以下是我目前的代码供参考:
my_variable = tf.Variable()
def body(i, my_variable):
[...]
return tf.add(i, 1), tf.scatter_update(my_variable, [index], value)
loop = tf.while_loop(lambda i, _: tf.less(i, 5), body, [0, my_variable])
受此启发,您可以使用稀疏张量将增量存储到要指定的值,然后使用加法“设置”该值。例如,像这样(我在这里假设了一些形状/值,但应该直接将其推广到更高秩的张量):
这张照片
[1. 1. 1. 1. 1.]
[3. 3. 3. 3. 3.]
检查这个@TassosK,而_loop将我的tf.Variable
转换成tf.Tensor
,所以我得到TypeError:“Tensor”对象不支持项目分配,当我执行那篇文章中所说的操作时。
[1. 1. 1. 1. 1.]
[3. 3. 3. 3. 3.]