所以我正在训练一个 CNN 网络来检测输入图像中的某些特征。结构如下:

输入图像 -> Conv2D -> Relu -> Dense -> Softmax -> 结果

该数据集包含 3 个类别的 180 张黑白图像,每个类别正好有 60 张图像。

我的问题是验证准确率和训练准确率在大约 6-7 个 epoch 后都没有改变,如下图所示:

python - CNN 准确性卡住-LMLPHP

我尝试谷歌搜索解决方案,但到目前为止没有结果。起初我认为我的模型过拟合了,因为它不再“学习”并且训练损失不断减少而验证损失没有。因此,我尝试添加学习率衰减、Nesterov 动量、增加批量大小以减少过度拟合,但它们并没有太大变化(不过,总体准确度确实从 0.90 提高到 0.92),而我的准确度恰好停留在 1.00、0.88每次都是 0.87(之前是 1.00、0.85 和 0.85)。

我想要识别的特征相当简单,我需要在控制循环中使用结果,所以我想要一个轻量级模型,如果可能的话,精度至少为 95%。你们对应该做什么或至少是改进这个模型的研究方向有什么想法吗?

最佳答案

您的模型过度拟合。训练损失接近于零(训练准确率已经达到 100%);而验证损失远高于训练损失。理想的模型将同时降低训练和验证损失。您尚未提供任何代码;因此,假设您的模型没有错,我会建议使用正则化技术,例如 dropout、权重衰减 (L2) 和批量归一化。

关于python - CNN 准确性卡住,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49889385/

10-13 00:06