Ранняя остановка, модель прошла через сколько эпох? - PullRequest
0 голосов
/ 05 июля 2019

Я использую Keras. Я тренирую свою нейронную сеть и использую раннюю остановку. Мое терпение - 10, и эпоха с наименьшими потерями при проверке - 15. Моя сеть работает до 25 эпох и останавливается, однако моя модель - та, с 25 эпохами, а не 15, если я правильно понимаю

Есть ли простой способ вернуться к модели 15 эпох, или мне нужно повторно создать экземпляр модели и запустить 15 эпох?

Ответы [ 3 ]

3 голосов
/ 05 июля 2019

Да, есть один, параметр restore_best_weights в обратном вызове EarlyStopping, установите для него значение True, и Keras будет отслеживать веса, дающие наилучшие потери:

callback = EarlyStopping(..., restore_best_weights=True)

См. Всепараметры для этого обратного вызова здесь .

0 голосов
/ 05 июля 2019

Ранняя остановка не работает так, как вы думаете, она должна возвращать модель с наименьшими потерями или наивысшей точностью, она работает, если нет улучшения точности или потери модели, в течение примерно x эпох (10 в вашем случае, параметр терпения) тогда он остановится. вы должны использовать функции контрольной точки обратного вызова, например,

keras.callbacks.ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=True, save_weights_only=False, mode='auto', period=1)

https://keras.io/callbacks/

Это сохранит или проверит лучшую модель, с которой вы столкнулись во время истории тренировок.

0 голосов
/ 05 июля 2019

Да, вы получаете модель (вес), соответствующую эпохе, когда она останавливается.Обычно используемая стратегия заключается в том, чтобы сохранять модель всякий раз, когда потери / акклиматизация улучшаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...