小编Sar*_*rah的帖子

Tensorflow:sess.run中带有列表的变量赋值何时完成?

我认为变量赋值是在给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)的排列)此外,如果有一种方法可以实现后一种分配(在完成列表中的所有操作后完成分配),请让我知道如何实现它.

python variables timing variable-assignment tensorflow

10
推荐指数
1
解决办法
2639
查看次数