我在TensorFlow中创建了一个Variable
:
c = tf.Variable([1.0, 2.0, 3.0], tf.float32)
然后我定义一个占位符:
x = tf.placeholder(tf.float32)
之后我定义了一个结合上面两个定义对象的函数(计算图):
y = x + c
之后我“初始化”全局变量:
s = tf.Session()
init = tf.global_variables_initializer()
s.run(init)
最后,我可以运行我的功能:
s.run(y, {x : [10.0, 20.0, 30.0]})
现在,我想更改c
的值。 TensorFlow有可能吗?我试过例如:
c = tf.assign(c, [1.0, 1.0, 1.0])
还有:
c = tf.Variable([1.0, 1.0, 1.0], tf.float32)
没有任何作用。每当我打电话
s.run(y, {x : [10.0, 20.0, 30.0]})
我仍然得到旧结果(对应于c
的旧/初始值)。
那么,如何在TensorFlow中为全局变量赋值?
答案 0 :(得分:1)
在为变量'c'分配新值后,您必须使会话初始化新值
c = tf.assign(c, [1.0, 1.0, 1.0])
s.run(c)
s.run(y, {x : [10.0, 20.0, 30.0]})
array([ 11., 21., 31.], dtype=float32)
答案 1 :(得分:1)
使用您使用的某种方法为变量c
分配新值后,您需要对其进行评估:
c.eval(session=s)
或
s.run(c)