Как следить за градиентом исчезновения и взрывом в керасе с тензорной доской?
Я хотел бы отслеживать изменения градиента в тензорной доске с помощью кераса, чтобы решить, исчезнет ли градиент или взорвется. Что я должен делать?
1 ответ
Решение
Чтобы визуализировать тренировку в Tensorboard, добавьте keras.callbacks.TensorBoard
обратный звонок в model.fit
функция. Не забудьте установить write_grads=True
чтобы увидеть градиенты там. Сразу после начала тренировки вы можете бегать...
tensorboard --logdir=/full_path_to_your_logs
... из командной строки и укажите в браузере htttp://localhost:6006
, Смотрите пример кода в этом вопросе.
Чтобы проверить исчезающие / взрывающиеся градиенты, обратите внимание на распределение градиентов и абсолютные значения в интересующем слое (вкладка "Распределения"):
- Если распределение сильно достигло максимума и сконцентрировано около 0, градиенты, вероятно, исчезают. Вот конкретный пример того, как это выглядит на практике.
- Если распределение быстро растет в абсолютном значении со временем, градиенты взрываются. Часто выходные значения на том же слое становятся
NaN
очень быстро.