На что Керас Рано перестает смотреть

Я настраиваю раннюю остановку в val_loss, как показано ниже:

earlystop = EarlyStopping(monitor='val_loss',
                          min_delta=0.0001,
                          patience=3,
                          verbose=1,
                          mode='auto')

Он останавливается правильно после отсутствия улучшений в 3 эпохи, но я не вижу, откуда он получает убытки, поскольку 1,73011? Кто-нибудь может помочь? Также обратите внимание, что он начинает это даже после 1-й эпохи, разве он не должен подождать как минимум две эпохи для сравнения, а затем объявить "без улучшения (уменьшения)" потери?

Эпохи тренировочного процесса

2 ответа

Это зависит от того, как вы установили свои параметры, вы можете просто увеличить patience так что обратный вызов наблюдает за результатами для большего количества эпох перед остановкой процесса обучения.

Вот что означает каждый параметр:


    monitor: Quantity to be monitored.
    min_delta: Minimum change in the monitored quantity to qualify as an improvement, i.e. an absolute change of less than min_delta, will count as no improvement.
    patience: Number of epochs with no improvement after which training will be stopped.
    verbose: verbosity mode.
    mode: One of {"auto", "min", "max"}. In min mode, training will stop when the quantity monitored has stopped decreasing; in "max" mode it will stop when the quantity monitored has stopped increasing; in "auto" mode, the direction is automatically inferred from the name of the monitored quantity.
    baseline: Baseline value for the monitored quantity. Training will stop if the model doesn't show improvement over the baseline.
    restore_best_weights: Whether to restore model weights from the epoch with the best value of the monitored quantity. If False, the model weights obtained at the last step of training are used.

ссылка: https://keras.io/api/callbacks/early_stopping/

Кажется, он использует какое-то базовое значение по умолчанию или вычисляет базовый уровень (каким-то образом!), Когда вы явно не указываете его.

Явно установите baseline = None и попробуйте.

Другие вопросы по тегам