Керас: Загруженная модель контрольной точки для возобновления тренировки может снизить точность?

Мой шаблон keras генерирует контрольную точку для каждого лучшего времени моей тренировки.

Однако мой интернет упал, и при загрузке моей последней контрольной точки и перезапуске тренировки с прошлого сезона (с использованием initial_epoch) точность упала с 89,1 (загруженное значение модели) до 83,6 в первом сезоне новой тренировки. Это нормальное поведение при возобновлении (перезапуске) тренировки? Потому что, когда моя сеть упала, это было уже в 30-м сезоне, и не было падения точности, также не было значительного улучшения, и поэтому не было создано никаких новых контрольных точек, что вынудило меня вернуться на несколько эпох.

Заранее спасибо за помощь.


person Cristiano Siebert    schedule 04.11.2019    source источник


Ответы (1)


Проблема с сохранением и повторным обучением заключается в том, что, когда вы начинаете повторное обучение с обученной модели до эпохи N, в эпоху N+1 она не сохраняет историю.

Сценарий:

Вы тренируете модель на 30 эпох. В эпоху 15 у вас есть точность 88% (скажем, вы сохраняете свою модель в соответствии с наилучшей точностью проверки). К сожалению, что-то происходит, и ваша тренировка вылетает. Однако, поскольку вы тренировались с контрольными точками, у вас есть результирующая модель, полученная в эпоху 15, до того, как ваша программа вылетела из строя.

Если вы начнете переобучение с эпохи 15, предыдущие validation_accuracies (поскольку вы теперь тренируетесь снова с нуля) не будут «нигде запомнены». Если вы получите в эпоху 16 точность проверки 84%, ваша «лучшая_модель» (с 88% acc) будет перезаписана моделью эпохи 16, потому что нет сохраненных / внутренних данных истории с предыдущей точностью обучения / проверки. . Под капотом при новом переобучении 84% будет сравниваться с -inf, поэтому сохранит модель эпохи 16.

Решение состоит в том, чтобы либо переобучиться с нуля, либо инициализировать вторую точность проверки обучения списком (вручную или полученным из обратного вызова) из предыдущего обучения. Таким образом, максимальная точность по сравнению с Керасом в конце вашей эпохи, будет 88% (в сценарии), а не -inf.

person Timbus Calin    schedule 04.11.2019
comment
Спасибо, тимбус. Теперь я это понимаю. :) Закройте тему. - person Cristiano Siebert; 04.11.2019