我正在尝试进行二进制分类,并使用Keras
的{{1}}回调。但是,我对EarlyStopping
参数有疑问。
在documentation中声明了
耐心:没有改善的时期数量,之后将停止训练。
但我发现它表现得与众不同。例如,我已经设置了
patience
以下是结果:
EarlyStopping(monitor='val_loss', min_delta=0.0001, patience=2, verbose=0, mode='auto')
此培训结束后。据我所知,最终没有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