tf.control_dependencies如何适用于其他地方定义的操作?

时间:2018-03-22 05:57:56

标签: tensorflow

在最新的张量流代码中,行(https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/training/python/training/training.py#L428)打算确保在完成total_loss后计算update_ops

但是,我的问题是total_loss是在别处定义的。只有total_loss的引用,不应使control_dependencies生效。

如何确保在完成total_loss后计算update_ops?我的意思是total_loss可能在update_ops之前用变量的陈旧值计算。

1 个答案:

答案 0 :(得分:1)

它确实不会影响最初定义的op(不会触发更新操作的运行),但是with_dependencies返回的新操作(由Python变量total_loss引起的混淆)具有对更新操作的控制依赖性,因此只有在它们运行时才会运行。具有控制依赖关系is passed as the loss to compute_gradients的新操作系统将与操作系统绑定。