Почему в реализациях TensorFlow метрик `tensorflow.python.ops.x` используется вместо `tf.x`

#python #tensorflow

#python #tensorflow

Вопрос:

Мне любопытно, почему в реализациях TF метрик (и, вероятно, везде еще) tensorflow.python.ops.x используются вместо просто tf.x , например, здесь tensorflow.python.ops.math_ops.reduce_sum используется вместо tf.reduce_sum .

Угадайте: это сделано для повышения эффективности, чтобы нам не нужно было делать import tensorflow as tf ?

Ответ №1:

Если вы посмотрите на справочную страницу Tensorflow для вашего примера (reduce_sum)https://www.tensorflow.org/api_docs/python/tf/math/reduce_sum

вы увидите, что вы можете использовать tf.math.reduce_sum или tf.reduce_sum взаимозаменяемо, поскольку они являются псевдонимами друг друга.

На странице примера, на которую вы ссылались, это был код Tensorflow в tensorflow/tensorflow/python/ops/metrics_impl.py модуль, и он ссылался на код, импортированный как

 from tensorflow.python.ops import math_ops
  

Это лучший способ для этого кода ссылаться на код в его собственном модуле tensorflow.python.ops. Ссылка на tf.reduce_sum — это способ ссылаться на код извне самого исходного кода tensorflow, как и в случае с большинством пользовательского кода. Лучше всего следовать ссылкам на страницы документации, чтобы лучше пережить будущие реорганизации кода и т.д.