Keras EarlyStopping耐心参数

时间:2017-07-11 07:54:40

标签: machine-learning deep-learning keras

我正在尝试进行二进制分类,并使用Keras的{​​{1}}回调。但是,我对EarlyStopping参数有疑问。

documentation中声明了

  

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

但我发现它表现得与众不同。例如,我已经设置了

patience

以下是结果:

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

enter image description here

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

2 个答案:

答案 0 :(得分:7)

损失连续三次更糟糕,让我们来看看这些数字:

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

您已经发现了min delta参数,但我认为它太小而无法在此处触发(您已经关闭了10倍)。

答案 1 :(得分:0)

Epoch 1      val_loss: 0.6811 <- current best
Epoch 2      val_loss: 0.6941 <-patience 1
Epoch 3      val_loss: 0.6532 <- current best # current best gets updated
Epoch 4      val_loss: 0.6546 <- patience 1
Epoch 5      val_loss: 0.6534 <-patience 2

Training will stop at epoch 5

请在Google colab中尝试以下示例以更直观地理解:https://colab.research.google.com/github/minsuk-heo/tf2/blob/master/jupyter_notebooks/06.DropOut_EarlyStopping.ipynb