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