什么时候应该使用tf.add(t,0)代替张量?

时间:2016-12-13 16:17:58

标签: python tensorflow

tensorflow.contrib.slim.batch_norm中,math_ops.add(moving_mean, 0)用于复制moving_mean的值,后来为passed to nn.moments

如果我们直接将moving_mean传递给nn.moments会不会有问题?

是否有关于使用复制操作(tf.add(t, 0))的指导原则?

2 个答案:

答案 0 :(得分:1)

问题在于,更新moving_mean的顺序可能会导致渐变使用moving_mean的更新版本,而不是用作shift的原始moving_mean。因此,为了确保在前向传递和后向传递中使用相同的值,我们制作一个显式副本。

答案 1 :(得分:0)

关于它的信息不多,但它可用于将张量参考转换为常规张量。将它们推入队列时它们的行为会有所不同(如果张量参考值改变了张量值)。您可以在此question中了解有关它的更多信息。