我很好奇为什么在TF的指标实施中(可能还有其他地方)使用tensorflow.python.ops.x
而不是仅使用tf.x
,例如,使用here tensorflow.python.ops.math_ops.reduce_sum
的tf.reduce_sum
。
猜猜:这样做是为了提高效率,所以我们不需要import tensorflow as tf
?
答案 0 :(得分:2)
如果您查看示例的Tensorflow参考页面(reduce_sum) https://www.tensorflow.org/api_docs/python/tf/math/reduce_sum
您会看到,您可以互换使用tf.math.reduce_sum或tf.reduce_sum,因为它们彼此互为别名。
在您链接到的示例页面中,这是tensorflow / tensorflow / python / ops / metrics_impl.py模块中的Tensorflow代码,它引用的代码导入为
from tensorflow.python.ops import math_ops
这是此代码在其自己的tensorflow.python.ops模块中引用代码的最佳方法。 tf.reduce_sum引用是从tensorflow源代码本身的外部引用代码的方法,大多数用户代码就是这种情况。最好遵循文档页面参考,以更好地保存将来的代码重组等。