我在训练集中得到非常好的输出,而在测试集中得到了非常差的输出

时间:2019-03-08 19:07:50

标签: python keras

我正在使用具有4500张图像的角膜训练模型,该模型属于七个类别,我构建了一个具有一个输入层,一个隐藏层和一个输出层的神经网络,然后在开始训练时,我获得了高精度和低损失训练测试,但在验证测试中,val_loss从一开始就以较高的百分比增加,而val_acc则缓慢增加。 我正在使用softmax激活函数和catgorical_crossintroby来弥补损失 你能帮我找到问题吗?

1 个答案:

答案 0 :(得分:1)

这是称为overfitting的经典问题,它的确发生是因为您的模型存储了训练样本,而不是创建通用模型。因此,通过这种方式,您可以在训练过程中看到非常少的错误,而您的机器在训练过程中就已经看到了。另一方面,由于缺乏通用模型,您在测试数据上有一个巨大的错误(您的计算机没有看到并没有记住它们)。

您应该使用正则化术语(请阅读此article,清楚地说明有关正则化的理论及其在实践中的用法)。 如果您有深度学习框架,从经验上可以看出,辍学可以起到很大的帮助(这个medium article似乎对此有很好的解释)