在最新的张量流代码中,行(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
之前用变量的陈旧值计算。
答案 0 :(得分:1)
它确实不会影响最初定义的op(不会触发更新操作的运行),但是with_dependencies
返回的新操作(由Python变量total_loss
引起的混淆)具有对更新操作的控制依赖性,因此只有在它们运行时才会运行。具有控制依赖关系is passed as the loss to compute_gradients
的新操作系统将与操作系统绑定。