我正在尝试在Python中为TensorFlow变量分配新值。
import tensorflow as tf
import numpy as np
x = tf.Variable(0)
init = tf.initialize_all_variables()
sess = tf.InteractiveSession()
sess.run(init)
print(x.eval())
x.assign(1)
print(x.eval())
但我得到的输出是
0
0
所以价值并没有改变,我错过了什么?
assign
操作 / 可变张量之前,Variable
x
存储在内存中的数据是否被覆盖,还是创建了一个新的张量来存储更新后的值? - dannygoldsteinassign()
的当前实现会覆盖已有的数值。 - mrryVariable
分配一个新值,而不在图形中创建任何其他操作?似乎每个变量已经为其创建了一个Assign操作,但调用my_var.assign()
或tf.assign()
会创建一个新的操作,而不是使用现有的操作。 - Nathanassign
。通过这种方式创建一个计数器,在每次评估分配操作时更新该计数器:op = t.assign(tf.add(t, 1))
。 - Eliel Van Hojman