我认为变量赋值是在给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])
Run Code Online (Sandbox Code Playgroud)
我想知道变量赋值的时间.哪个是正确的:"update_x - > assign x - > ... - > udpate_z - > assign z"或"update_x - > udpate_y - > udpate_z - > assign a,b,c"?(其中(x,y,z)是(a,b,c)的排列)此外,如果有一种方法可以实现后一种分配(在完成列表中的所有操作后完成分配),请让我知道如何实现它.