我想举例说明函数tf.control_dependencies
的使用。例如,我想创建两个张量X
和Y
,如果它们相等,则执行或打印一些内容。
import tensorflow as tf
session = tf.Session()
X = tf.constant(5)
Y = tf.constant(50)
with tf.control_dependencies([tf.assert_equal(X, Y)]):
print('X and Y are equal!')
在上面的代码中,X
显然不等于Y
。在这种情况下tf.control_dependencies
做了什么?
答案 0 :(得分:33)
control_dependencies
不是有条件的。它是一种向with
块中创建的操作添加依赖关系的机制。更具体地说,您在control_dependencies
的参数中指定的内容可以确保在with
块中定义的任何内容之前进行评估。
在您的示例中,您不在with
块中添加任何(TensorFlow)操作,因此该块不执行任何操作。
This answer有一个如何使用control_dependencies
的示例,用于确保在评估batchnorm操作之前进行分配。