На этом шаге мы дадим краткую характеристику, что представляет собой обратный вызов.
Запуск процедуры обучения продолжительностью в десятки эпох на большом наборе данных вызовом model.fit() напоминает запуск бумажного самолетика: придав начальный импульс, вы больше никак не управляете ни траекторией его полета, ни местом приземления. Чтобы избежать отрицательных результатов (и потери самолетика), лучше использовать не бумажный самолетик, а управляемый беспилотник, анализирующий окружающую обстановку, посылающий информацию о ней обратно оператору и автоматически управляющий рулями в зависимости от своего текущего состояния. Поддержка обратных вызовов в Keras поможет превратить вызов model.fit() из бумажного самолетика в интеллектуальный, автономный беспилотник, способный оценивать свое состояние и своевременно выполнять управляющие действия.
Обратный вызов - это объект (экземпляр класса, реализующего конкретные методы), который передается в модель через вызов fit() и который будет вызываться моделью в разные моменты обучения. Он имеет доступ ко всей информации о состоянии модели и ее качестве и может предпринимать следующие действия: прерывать обучение, сохранять модель, загружать разные наборы весов или как-то иначе изменять состояние модели.
Вот несколько примеров использования обратных вызовов:
Модуль keras.callbacks включает ряд встроенных обратных вызовов. Вот далеко не полный список:
keras.callbacks.ModelCheckpoint keras.callbacks.EarlyStopping keras.callbacks.LearningRateScheduler keras.callbacks.ReduceLROnPlateau keras.callbacks.CSVLogger
Рассмотрим некоторые из них, чтобы понять, как ими пользоваться: EarlyStopping и ModelCheckpoint.
На следующем шаге мы рассмотрим два указанных выше обратных вызова.