Есть функция раннего останова, которую Keras предоставляет, которую вы просто определяете.
EarlyStopping(patience=self.patience, verbose=self.verbose, monitor=self.monitor)
Предположим, что параметр epochs равен 80, как вы сказали ранее.Когда вы используете функцию EarlyStopping, количество эпох становится максимальным числом эпох.
Вы можете определить функцию EarlyStopping для мониторинга потери проверки, например, когда когда-либо эта потеря больше не улучшится, у нее будет несколько последних шансов (число, которое вы указали в параметре терпения), иесли после этих последних шансов контролируемое значение не улучшится, процесс обучения остановится.
Лучшей практикой, на мой взгляд, является использование как EarlyStopping, так и ModelCheckpoint, еще одной функции обратного вызова, предоставляемой в API Keras, которая просто сохраняет вашу последнюю лучшую модель (вы сами решаете, что лучше всего, лучшая потеря или другое).значение, с которым вы проверяете свои результаты).
Это решение Keras для проблемы, с которой вы пытаетесь разобраться.Кроме того, есть много онлайн-материалов, которые вы можете прочитать о том, как бороться с переобложением.