gpt4 book ai didi

tensorflow - tf.group中的操作是否按顺序执行?

转载 作者:行者123 更新时间:2023-12-03 00:13:18 24 4
gpt4 key购买 nike

tf.group()中的操作按顺序执行?

如果它们不按顺序执行,是否有类似的操作使它们按顺序运行?或者有没有一种干净的方法来按顺序运行它们?

我的目标是一遍又一遍地运行操作 A 和 B,即

sess.run(A)
sess.run(B)
sess.run(A)
sess.run(B)
sess.run(A)
sess.run(B)
sess.run(A)
sess.run(B)
...

最佳答案

操作不一定按顺序执行。

这是一个证明这一点的测试:

import tensorflow as tf
sess = tf.InteractiveSession()
a = tf.Variable(1.0)
b = tf.Variable(10.0)
c = tf.Variable(0.0)
grp = tf.group(tf.assign(c, a), tf.assign(c, b)) # this is the group op
for i in range(100):
sess.run(tf.global_variables_initializer()) # initialize c each time
sess.run(grp) # run the group op
print(sess.run(c)) # observe results

当我在 CPU 上运行它时,我发现一些迭代产生 1.0 和一些 10.0

tf.group 不要求操作在同一设备上,这意味着不能期望它们遵循命令。

如果您希望操作按顺序执行,请确保使用 control_dependencies 来构建它们

import tensorflow as tf
sess = tf.InteractiveSession()
a = tf.Variable(1.0)
b = tf.Variable(10.0)
c = tf.Variable(0.0)
op1 = tf.assign(c, a)
with tf.get_default_graph().control_dependencies([op1]):
op2 = tf.assign(c, b) # op2 will execute only after op1
grp = tf.group(op1,op2)
for i in range(100):
sess.run(tf.global_variables_initializer())
sess.run(grp)
print(sess.run(c))

关于tensorflow - tf.group中的操作是否按顺序执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48015622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com