#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, как и в случае с большинством пользовательского кода. Лучше всего следовать ссылкам на страницы документации, чтобы лучше пережить будущие реорганизации кода и т.д.