control_dependencies函数有什么作用?

时间:2017-02-07 16:56:36

标签: python tensorflow

我想举例说明函数tf.control_dependencies的使用。例如,我想创建两个张量XY,如果它们相等,则执行或打印一些内容。

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做了什么?

1 个答案:

答案 0 :(得分:33)

control_dependencies不是有条件的。它是一种向with块中创建的操作添加依赖关系的机制。更具体地说,您在control_dependencies的参数中指定的内容可以确保在with块中定义的任何内容之前进行评估。

在您的示例中,您不在with块中添加任何(TensorFlow)操作,因此该块不执行任何操作。

This answer有一个如何使用control_dependencies的示例,用于确保在评估batchnorm操作之前进行分配。