我按照本文档https://github.com/slavaglaps/ResNet_cifar10为cifar 10实施ResNet 但我的准确性与文件中获得的准确性有很大不同 我 - 86% Pcs女儿 - 94% 我的错是什么?
{{3}}
答案 0 :(得分:1)
您的问题有点过于笼统,我的观点是网络过度适应训练数据集,因为您可以看到训练损失非常低,但在50纪元之后,验证损失不再改善了
我没有深入阅读论文,所以我不知道他们是如何解决问题的,但增加正规化可能有所帮助。以下链接将指向正确的方向http://cs231n.github.io/neural-networks-3/
下面我复制了文本摘要:
摘要
训练神经网络:
- Gradient用一小批数据检查您的实现,并了解陷阱。
- 作为一个完整性检查,确保您的初始损失是合理的,并且您可以在很小的一部分上实现100%的训练准确性 数据
- 在培训期间,监控损失,培训/验证准确性,如果您感觉更高兴,则更新的程度与 参数值(应该是~1e-3),当处理ConvNets时, 第一层权重。
- 使用的两个推荐更新是SGD + Nesterov Momentum或Adam。
- 在培训期间减少学习率。例如,在固定数量的纪元之后将学习率减半,或者 每当验证准确度最高时。
- 使用随机搜索(不是网格搜索)搜索好的超参数。从粗略的(超广泛超参数范围, 训练只有1-5个时期),罚款(较窄的游侠,训练为 更多的时代)
- 用于提高性能的表单模型集合
答案 1 :(得分:1)
我认为数据预处理的差异会影响性能。他正在使用填充和随机作物,这实质上增加了训练样本的数量并减少了泛化误差。另外,正如之前的海报所说,你缺少正规化功能,例如重量衰减。
你应该再看一下这篇论文,并确保你像他们一样实现所有内容。