神经网络做图像分类,训练集准确率在99.5以上,验证集准确率在97%,98%之间徘徊,这正常吗?还是属于过拟合或者其他的不正常情况?
我们在两层网络之间添加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