pytorch中MNIST数据集的DNN大小不匹配

时间:2019-04-20 20:43:24

标签: neural-network pytorch mnist

我必须找到一种创建神经网络模型并将其训练在MNIST数据集上的方法。我需要有5层,每层有100个神经元。但是,当我尝试进行此设置时,我收到一个错误,指出尺寸不匹配。你能帮忙吗?我希望可以在以下模型上进行训练:

class Mnist_DNN(nn.Module):
    def __init__(self):
        super().__init__()
        self.layer1 = nn.Linear(784, 100)
        self.layer2 = nn.Linear(100, 100)
        self.layer3 = nn.Linear(100, 100)
        self.layer4 = nn.Linear(100, 100)
        self.layer5 = nn.Linear(100, 10)

    def forward(self, xb):
        xb = xb.view(-1, 1, 28, 28)
        xb = F.relu(self.layer1(xb))
        xb = F.relu(self.layer2(xb))
        xb = F.relu(self.layer3(xb))
        xb = F.relu(self.layer4(xb))
        xb = F.relu(self.layer5(xb))
        return self.layer5(xb)

1 个答案:

答案 0 :(得分:0)

您可以设置图层以获取一批暗784(= 28 * 28)的一维矢量。但是,在forward函数中,您将view输入为一批大小为28 * 28的2D矩阵。
尝试将输入视为一批一维信号:

xb = xb.view(-1, 784)