【发布时间】:2017-05-08 09:47:24
【问题描述】:
我曾认为变量赋值是在给 sess.run 的列表中的所有操作之后完成的,但是下面的代码在不同的执行时返回不同的结果。似乎在列表中随机运行操作,并在列表中的操作运行后分配变量。
a = tf.Variable(0)
b = tf.Variable(1)
c = tf.Variable(1)
update_a = tf.assign(a, b + c)
update_b = tf.assign(b, c + a)
update_c = tf.assign(c, a + b)
with tf.Session() as sess:
sess.run(initialize_all_variables)
for i in range(5):
a_, b_, c_ = sess.run([update_a, update_b, update_c])
我想知道变量赋值的时间。 哪些是正确的:“update_x -> 分配 x -> ... -> udpate_z -> 分配 z”或“update_x -> udpate_y -> udpate_z -> 分配 a、b、c”? (其中 (x, y, z) 是 (a, b, c) 的排列) 另外,如果有实现后一种赋值的方法(列表中所有操作都完成后赋值),请告诉我如何实现。
【问题讨论】:
标签: python variables tensorflow variable-assignment timing