Как рассчитать градиент вместе с тренировками в Керасе? - PullRequest
0 голосов
/ 28 мая 2019

У меня есть модель в Керасе, для которой я хочу вывести результаты модели и градиенты входных данных w.r.t. total_loss.

Существуют два ответа, которые обсуждают получение градиентов, которые я понимаю.

Получение градиента выходных данных модели с весами .rt с использованием Keras

Как получить градиенты в кератах?

Однако оба из этих ответов дают решение, которое требует дублирования вычислений прямого / обратного прохода для вывода градиентов в отдельном вызове sess.run.

Сделать это в собственном тензорном потоке легко, градиенты - это просто тензор, который вы выводите из модели. Однако в Keras потери не определяются при генерации выходных тензоров модели, а определяются в compile(...), поэтому вы не можете создавать градиенты как обычный вывод модели.

Должен быть способ добавить операцию (градиенты) к вычислению графа, выполняемому во время этапов обучения в Keras, чтобы я мог получить к ним доступ в обратном вызове или в качестве вывода модели.

Если кто-то не знает лучшего способа, единственное, о чем я могу думать, - это вывод необучаемой переменной из модели и добавление операции присваивания в compile(...), которая присваивает градиенты необучаемой переменной. Но это довольно забавно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...