Python 在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

如何在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_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.]