我的图表中需要一个条件控制流程.如果pred是True,则图形应该调用更新变量的op然后返回它,否则它将返回变量不变.简化版本是:
pred = tf.constant(True)
x = tf.Variable([1])
assign_x_2 = tf.assign(x, [2])
def update_x_2():
with tf.control_dependencies([assign_x_2]):
return tf.identity(x)
y = tf.cond(pred, update_x_2, lambda: tf.identity(x))
with tf.Session() as session:
session.run(tf.initialize_all_variables())
print(y.eval())
Run Code Online (Sandbox Code Playgroud)
不过,我觉得,无论pred=True并pred=False导致相同的结果y=[2],这意味着分配运算时也被称为update_x_2没有被选中tf.cond.怎么解释这个?以及如何解决这个问题?
tensorflow ×1