Проблема с сохранением и переподготовкой заключается в том, что когда вы начинаете переподготовку от обученной модели до эпохи N, в эпоху N + 1 история не сохраняется.
Сценарий:
Вы тренируете модель для 30 эпох. В эпоху 15 точность составляет 88% (скажем, вы сохраняете свою модель в соответствии с наилучшей точностью проверки). К сожалению, что-то происходит, и ваша тренировка падает. Однако, поскольку вы тренировались с контрольными точками , , у вас есть полученная модель, полученная в эпоху 15 , до того, как ваша программа потерпела крах.
Если вы начнете переподготовку с эпохи 15,предыдущие validation_accuracies (поскольку вы теперь тренируетесь с нуля), не будут «запомнены где-либо». Если в эпоху 16 вы получите точность проверки 84%, ваша 'best_model' (с 88% соответствием) будет перезаписана моделью эпохи 16, потому что нет данных сохраненной / внутренней истории предыдущей тренировки / проверки* 1012 точность *. Под капотом, при новой переподготовке, 84% будут сравниваться с -inf, поэтому это сохранит модель эпохи 16.
Решение состоит в том, чтобы либо переучить с нуля, либо инициализировать вторую точность валидации при обучениисо списком (вручную или полученным из Callback) из предыдущего обучения. Таким образом, максимальная точность по сравнению с Керасом под капотом в конце вашей эпохи будет 88% (в сценарии), а не -inf.