Keras CNN训练准确性很好,但测试精度非常低

时间:2017-03-01 10:01:34

标签: python deep-learning keras

请对这些CNN结果发表评论。 我使用了2000张训练图像和400张测试图像。 训练准确性很好,但测试精度非常低。 我认为这是因为训练和测试图像之间存在很大差异。 对于这种情况,任何人都有好主意吗?

[Accuracy plot]

1 个答案:

答案 0 :(得分:5)

这是过度拟合的明显案例。你有多少学习参数?例如,VGGnet有138M参数,在这种情况下,不太难看出网络中的某些神经元必须记录一个训练图像,因此你的网络不能很好地概括。

要解决这个问题,首先你可以尝试一个更简单的模型,如果任务很简单,比如区分形状。您还可以通过交换来增加训练数据,例如交换颜色通道(如果它不影响输出类),翻转或旋转图像以使您的网络更好地概括。在损失函数中包含L1 / L2正则化并尝试删除。