Keras EarlyStopping耐心参数

nab*_*yan 4 machine-learning deep-learning keras

我正在尝试做一些二进制分类,我使用Keras的是EarlyStopping回调.但是,我有一个关于patience参数的问题.

文件中说明

耐心:没有改善的时期数,之后将停止训练.

但我发现它表现得与众不同.例如,我已经设定

EarlyStopping(monitor='val_loss', min_delta=0.0001, patience=2, verbose=0, mode='auto')

以下是结果:

val_loss: 0.6811
val_loss: 0.6941 
val_loss: 0.6532
val_loss: 0.6546
val_loss: 0.6534
val_loss: 0.6489
val_loss: 0.6240
val_loss: 0.6285
val_loss: 0.6144
val_loss: 0.5921
val_loss: 0.5731
val_loss: 0.5956
val_loss: 0.5753
val_loss: 0.5977
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

训练结束后停止了.据我所知,最终没有2个连续增加的损失值.有人可以解释这个参数现象吗?

Tho*_*lut 8

失败有三次连续恶化,让我们来看看这些数字:

val_loss: 0.5921 < current best
val_loss: 0.5731 < current best
val_loss: 0.5956 < patience 1
val_loss: 0.5753 < patience 2
val_loss: 0.5977 < patience >2, stopping the training
Run Code Online (Sandbox Code Playgroud)

你已经发现了min delta参数,但是我认为它太小而不能在这里触发(你已经关闭了10倍).

  • 因此,这意味着将当前损耗值与当前最佳值进行比较,而不是先前的值。我认为那是令我困惑的部分。 (2认同)