Эквивалентные функции pytorch в тензорном потоке? - PullRequest
1 голос
/ 06 мая 2020

Недавно я читал код Pytorch и наткнулся на функции loss.backward () и optimizer.step (), есть ли их эквиваленты с использованием tensorflow / keras?

1 Ответ

1 голос
/ 12 мая 2020

loss.backward() эквивалент в тензорном потоке tf.GradientTape(). TensorFlow предоставляет tf.GradientTape API для автоматического c дифференцирования - вычисления градиента вычисления относительно его входных переменных. Tensorflow «записывает» все операции, выполняемые в контексте tf.GradientTape, на «ленту». Затем Tensorflow использует эту ленту и градиенты, связанные с каждой записанной операцией, для вычисления градиентов «записанного» вычисления с использованием обратного дифференцирования.

optimizer.step() эквивалент в тензорном потоке minimize(). Минимизирует потери за счет обновления списка переменных. Вызов minimize() заботится как о вычислении градиентов, так и о применении их к переменным.

Если вы хотите обработать градиенты перед их применением, вы можете вместо этого использовать оптимизатор в три этапа:

  1. Вычислить градиенты с помощью tf.GradientTape.
  2. Процесс градиенты, как вы wi sh.
  3. Примените обработанные градиенты с apply_gradients().

Надеюсь, это ответит на ваш вопрос. Удачного обучения.

...