tensorflow提前停止无法正常工作

时间:2020-10-31 03:47:56

标签: python-3.x tensorflow

我正在处理一堆图像数据集
但是学习需要很多时间,所以我在tensorflow中使用了Earlystoping
这是我的回调选项和合适的选项
(我知道监视acc不是一个好选择,而只是想了解提早停止的工作方式)

Vineel Phatak, 520, Amkart, NOBODY
Ajay Joshi, 250, Amkart, Vineel Phatak
Abhishek Chauhan, 120, Amkart, Ajay Joshi
Jayesh Godse, 500, Airflix, NOBODY
Vijaya Mundada, 60, Amkart, Abhishek Chauhan
Shital Tuteja, 45, Airflix, Jayesh Godse
Rajan Gawli, 700, Amkart, Vineel Phatak
Sheila Rodrigues, 35, Amkart, Vineel Phatak
Zeba Khan, 300, Airflix, Jayesh Godse
Chaitali Sood, 100, Airflix, Zeba Khan

但是,这是结果

tf.keras.callbacks.EarlyStopping(
                monitor='accuracy', 
                patience=3, 
                #mode='max',
                verbose=2, 
                baseline=0.98)

model.fit(x, y, batch_size=16, epochs=10, verbose=2, validation_split=0.2, callbacks=callbacks)

由于监视值“准确性”不断提高,因此预计不会停止。
另外,我想尽早监控这样的访问控制

101/101 - 42s - loss: 6.9557 - accuracy: 6.2461e-04 - val_loss: 6.9565 - val_accuracy: 0.0000e+00
Epoch 2/10

101/101 - 39s - loss: 6.9549 - accuracy: 0.0019 - val_loss: 6.9558 - val_accuracy: 0.0000e+00
Epoch 3/10

101/101 - 37s - loss: 6.9537 - accuracy: 0.0037 - val_loss: 6.9569 - val_accuracy: 0.0000e+00
Epoch 00003: early stopping

我应该怎么做?

1 个答案:

答案 0 :(得分:1)

问题出在使用Baseline

根据文档,其定义为:

Baseline value for the monitored quantity. Training will stop if the model doesn't show improvement over the baseline.

通过将“基线”设置为98%,您表示该模型的准确性始于98%,并且在超过3个时间段的停止训练后,其准确性并未超过基线。

请根据您的用例执行以下操作:

tf.keras.callbacks.EarlyStopping(
    monitor='accuracy', 
    min_delta=0.001,
    patience=3,
    mode='auto',
    verbose=2,
    baseline=None
)
相关问题