我有CIFAR-10数据集的CNN架构,如下所示:
卷积: 64,64,池完全连接层: 256,256,10批大小: 60优化器: Adam(2e-4)损失:绝对交叉熵
当我训练这个模型的时候,训练和测试的准确性以及损失都有一个非常紧张的行为,不能很好的收敛。
定义的架构正确吗?在每个卷积层之后,我应该有一个最大池层吗?
Conv-2架构是以下文件的一种尝试实现。
下表摘自彩票假说:Jonathan,Michael
谢谢!
发布于 2020-02-17 15:09:33
通常,有两个conv的设置。层和一个池层对CIFAR很好地工作。由于您的批次大小相对较高,学习速度相对较低,这些可能不是缺乏收敛的根源。对于进一步的分析,你的培训计划和验证损失(不准确)将是有帮助的。
因此,我建议采取以下步骤:
1.绘制训练曲线和有效损失曲线,以了解你在收敛和过度拟合/不拟合方面的立场,例如,请参阅这篇文章关于如何读取损失曲线的内容。
2.如果您当前的模型容量不足,则训练更多的时间,或者添加另一层具有相同结构的层(功能应该在整个网络中增加,例如,首先有两个conv )。有深度32的层和下两层。层深64)
3.如果过度适应成为一个问题,增加辍学
此外,我不认为你需要多个完全连接的层,但它们可能也不会造成伤害。在这里,Adam可能会很好地使用标准的学习速率,但是如果您已经手动优化了您的学习速率,那也不错(事实上,学习速率是最有影响的超参数,所以优化它几乎总是有意义的)。
在深入学习中,检查哪些网络已经完成了您正在执行的任务(或类似的任务)通常是非常有意义的。对于CIFAR,您可以找到一个简单但工作良好的网络这里。
https://datascience.stackexchange.com/questions/68235
复制相似问题