我不明白为什么在一次运行调用中运行Variable的初始化以及assign方法时,该值不会被分配?它与并行执行有关,还是没有操作优先级? TF session management没有解释它。
示例:
import tensorflow as tf
W = tf.Variable(10)
with tf.Session() as sess:
sess.run([W.initializer, W.assign(20)])
print W.eval() #
>> returns 10, but I would expect 20
#running it separately:
sess.run(W.initializer)
sess.run(W.assign(20))
print W.eval()
>> returns 20
答案 0 :(得分:0)
我怀疑发生这种情况是因为W.initializer
首先在W.assign(20)
将其值覆盖到其初始状态后执行import tensorflow as tf
W = tf.Variable(10)
with tf.Session() as sess:
sess.run(W.assign(20))
sess.run(W.initializer)
print W.eval()
。
如您所见,在第二个示例中更改顺序:
{{1}}
给出的结果与第一个结果相同。