Как следить за градиентом исчезновения и взрывом в керасе с тензорной доской?

Я хотел бы отслеживать изменения градиента в тензорной доске с помощью кераса, чтобы решить, исчезнет ли градиент или взорвется. Что я должен делать?

1 ответ

Решение

Чтобы визуализировать тренировку в Tensorboard, добавьте keras.callbacks.TensorBoard обратный звонок в model.fit функция. Не забудьте установить write_grads=True чтобы увидеть градиенты там. Сразу после начала тренировки вы можете бегать...

tensorboard --logdir=/full_path_to_your_logs

... из командной строки и укажите в браузере htttp://localhost:6006, Смотрите пример кода в этом вопросе.

Чтобы проверить исчезающие / взрывающиеся градиенты, обратите внимание на распределение градиентов и абсолютные значения в интересующем слое (вкладка "Распределения"):

  • Если распределение сильно достигло максимума и сконцентрировано около 0, градиенты, вероятно, исчезают. Вот конкретный пример того, как это выглядит на практике.
  • Если распределение быстро растет в абсолютном значении со временем, градиенты взрываются. Часто выходные значения на том же слое становятся NaN очень быстро.
Другие вопросы по тегам