神经网络做图像分类,训练集与验证集准确率相差1%-2%

神经网络做图像分类,训练集准确率在99.5以上,验证集准确率在97%,98%之间徘徊,这正常吗?还是属于过拟合或者其他的不正常情况?

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/654974
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:神经网络的分类准确率是100%到底意味着什么?
  • 除此之外, 这篇博客: 手把手写深度学习(6):用最简单的神经网络多层感知机识别数字中的 3、添加激活函数:明显提高正确率 97% 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •  我们在两层网络之间添加tanh()激活函数和relu激活函数,明显提高的正确率。

    class MLP(nn.Module):
        def __init__(self):
            super().__init__()
            # self.mlp = nn.Sequential(
            #     nn.Linear(28*28, 28*28),
            #     nn.Linear(28*28, 10)
            # )
            # self.mlp = nn.Sequential(
            #     nn.Linear(28 * 28, 128),
            #     nn.Linear(128, 256),
            #     nn.Linear(256, 512),
            #     nn.Linear(512, 256),
            #     nn.Linear(256, 128),
            #     nn.Linear(128, 10)  # 输出10个类
            # )
            self.layer1 = nn.Linear(28*28, 28*28)
            self.layer2 = nn.Linear(28*28, 10)
    
        def forward(self, x):
            # output = self.mlp(x)
            x = self.layer1(x)
            x = torch.tanh(x)
            x = self.layer2(x)
            output = nn.functional.relu(x)
            return output