首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tensorflow早停不能正常工作

tensorflow早停不能正常工作
EN

Stack Overflow用户
提问于 2020-10-31 03:47:56
回答 1查看 1.9K关注 0票数 2

我在处理一堆图像数据集

然而,这需要大量的时间来学习,所以我在tensorflow中使用了早期停止。

这是我的回调选项& fit选项

(我知道监控acc不是一个很好的选择,但我只是想看看早停的效果如何)

代码语言:javascript
复制
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)

然而,这是结果。

代码语言:javascript
复制
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

由于监测值‘准确性’不断增加,预计它不会停止。

另外,我想早点停下来像这样监视acc

代码语言:javascript
复制
acc=0, acc=0.1....acc=0.5, acc=0.4, acc=0.5, acc=0.6 #dont stop if increases again in patience epoch 

acc=0, acc=0.1....acc=0.5, acc=0.3, acc=0.4, acc=0.35 #stop if acc does not increases again in patience epoch 

我该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-31 17:06:42

问题在于Baseline的使用

根据文件,它被定义为:

代码语言:javascript
复制
Baseline value for the monitored quantity. Training will stop if the model doesn't show improvement over the baseline.

通过将基线设置为98%,您是在说明模型的准确度从98%开始,并且在停止训练的三个时期内,它没有比基线提高。

相反,按照您的用例执行以下操作:

代码语言:javascript
复制
tf.keras.callbacks.EarlyStopping(
    monitor='accuracy', 
    min_delta=0.001,
    patience=3,
    mode='auto',
    verbose=2,
    baseline=None
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64618205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档