Разница - tf.gradients против tf.keras.backend.gradients - PullRequest
1 голос
/ 25 февраля 2020

Будучи новичком в Tensorflow, я пытаюсь понять разницу между базовыми функциональными возможностями tf.gradients и tf.keras.backend.gradients.

Последний находит градиент значений входных объектов в зависимости от функции стоимости.

Но я не мог получить четкое представление о первом, вычисляет ли он функцию градиента по стоимости или вероятности выхода (например, рассмотрим случай двоичной классификации с использованием простой сети прямой связи. Здесь вероятность выхода равна относится к результату активации сигмовидной оболочки в последнем слое с одним нейроном. Стоимость указана с помощью двоичной перекрестной энтропии Я не получил четкую картину - в документации упоминается просто «у» - это стоимость или вероятность выхода?

Зачем мне градиенты? Для реализации базовой c градиентной атрибуции объекта.

1 Ответ

1 голос
/ 25 февраля 2020

Они в основном одинаковы. tf.keras - это высокоуровневый API TensorFlow для построения и обучения моделей глубокого обучения. Он используется для быстрого создания прототипов, современных исследований и производства. tf.Keras в основном использует Tensorflow в своем бэкэнде. Глядя на tf.Keras исходный код здесь , мы видим, что tf.keras.backend.gradients действительно использует tf.gradients:

# Part of Keras.backend.py

from tensorflow.python.ops import gradients as gradients_module

@keras_export('keras.backend.gradients')
def gradients(loss, variables):
  """Returns the gradients of `loss` w.r.t. `variables`.
  Arguments:
      loss: Scalar tensor to minimize.
      variables: List of variables.
  Returns:
      A gradients tensor.
  """
   # ========
   # Uses tensorflow's gradient function
   # ========
  return gradients_module.gradients(
      loss, variables, colocate_gradients_with_ops=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...