Из документации Keras:
Обратный вызов — множество функций, применяемых на данной стадии тренировки. Вы можете использовать их, чтобы посмотреть на внутреннее состояние и статистику модели во время обучения.
Вы определяете и используете обратные вызовы, когда хотите автоматизировать какие-то задачи после тренировки/эпохи, что помогает контролировать обучение. Это включает остановку тренировки, когда достигнута определённая точность или потери, сохранение модели после эпохи, настройку коэффициента скорости обучения и многое другое. Приступим!
EarlyStoppingПереобучение — кошмар ML. Один из способов избежать его — остановить тренировку раньше. EarlyStopping имеет различные параметры/метрики, которые вы можете изменять, чтобы установить, когда обучение должно завершиться. Вот несколько дельных метрик:
val_loss
.min_delta=1
означает, что тренировка остановится, когда абсолютное изменение значения будет меньше единицы.True
, если хотите сохранить лучшие веса нейронов, как только обучение остановится.Код ниже определяет EarlyStopping, который отслеживает val_loss
и останавливает тренировку, если не было изменений после трёх эпох, сохраняя лучшие веса.
from keras.callbacks import EarlyStoppingearlystop = EarlyStopping(monitor = 'val_loss',
min_delta = 0,
patience = 3,
verbose = 1,
restore_best_weights = True)
ModelCheckpoint
Сохраняет модель после каждой тренировки. Важные метрики:
True
, если хотите перезаписать последнюю лучшую модель.auto
, min
или max
. Например, mode=’min’
, если хотите минимизировать отслеживаемое значение. Пример:from keras.callbacks import ModelCheckpointcheckpoint = ModelCheckpoint(filepath,
monitor='val_loss',
mode='min',
save_best_only=True,
verbose=1)
LearningRateScheduler
from keras.callbacks import LearningRateSchedulerscheduler = LearningRateScheduler(schedule, verbose=0) # schedule - функция.
Он регулирует скорость обучения с течением времени, используя schedule
, которую вы уже написали. Эта функция возвращает желаемую скорость обучения. Входной параметр — индекс эпохи.
tensorboard — logdir=/full_path_to_your_logs
csv
.В этой статье мы изучили основную концепцию обратных вызовов в Keras. Исчерпывающее описание приведено в документации: http://keras.io/callbacks.
Перевод статьи
Комментарии