首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Keras序列模型中使用的历元数

在Keras序列模型中使用的历元数
EN

Stack Overflow用户
提问于 2019-06-26 22:26:31
回答 3查看 2.6K关注 0票数 2

我正在构建一个Keras序列模型来进行二值图像分类。现在,当我使用大约70到80个历元时,我开始获得很好的验证精度(81%)。但我被告知,这是一个非常大的数字将用于划时代,这将影响网络的性能。

我的问题是:是否有数量有限的时代,我不应该超过,请注意,我有2000张培训图像和800张验证图像。

EN

回答 3

Stack Overflow用户

发布于 2019-06-27 06:49:29

如果划时代的数量很高,你的模型可能会过分适合,你的训练精度将达到100%。在这种方法中,您可以在培训和验证数据上绘制错误率。水平轴是年数,垂直轴是误差率。当验证数据的错误率最小时,应停止培训。

您需要在正则化参数之间进行权衡。深度学习的主要问题是过度拟合模型。使用了各种正则化技术,如

(一)减少批量。

(二)数据增强(仅当数据不多样时)

(三)批标准化

(4)降低建筑的复杂性(主要是卷积层)

(五)引入辍学层(只有在使用任何密集层的情况下)

(六)学习率下降。

(七)转移学习

批次大小与时代的权衡是相当重要的。而且,它依赖于您的数据,并且随应用程序的不同而不同。在这种情况下,您必须稍微使用数据才能知道确切的数字。通常,一批32幅中等大小的图像需要10个年代才能从卷积层中提取出较好的特征。再说一次,它是相对的

票数 4
EN

Stack Overflow用户

发布于 2019-06-27 07:16:37

您只需定义Keras提供的早期停止函数。

代码语言:javascript
复制
EarlyStopping(patience=self.patience, verbose=self.verbose, monitor=self.monitor)

就像你之前说过的,假设历元参数等于80。当您使用EarlyStopping函数时,历元数就变成了最大的历元数。

您可以定义EarlyStopping函数来监视验证损失,例如,当该损失不再改善时,它将给它一些最后的机会(您在耐心参数中输入的数字),如果在最后一次机会之后,被监控的值没有改进培训过程。

在我看来,最佳实践是同时使用EarlyStopping和ModelCheckpoint,这是Keras中提供的另一个回调函数,它简单地保存了您上一个最好的模型(您决定了测试结果的最佳方法、最佳损失或其他值)。

这是您试图解决的问题的Keras解决方案。此外,有很多在线材料,你可以阅读如何处理过度适合。

票数 2
EN

Stack Overflow用户

发布于 2019-06-27 05:24:55

雅亚!他们是解决你问题的方法。选择纪元,例如1k ,2k只是在你的神经网络上使用早期回采。

早期停止: Keras通过一个名为“早期停止”的回调来支持早期停止训练。

此回调允许您指定要监视的性能度量、触发器,一旦触发,它将停止培训过程。例如,您应用了一个触发器,如果在前5个周期中精度没有提高,则该触发器将停止训练。因此,如果你的准确率没有提高,卡拉斯就会通过回叫看到前5个时代,并停止训练。

早期停止链接:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56781680

复制
相关文章

相似问题

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