RuntimeError: mat1 and mat2 shapes cannot be multiplied (5x46656 and 50176x3)

RuntimeError: mat1 and mat2 shapes cannot be multiplied (5x46656 and 50176x3)

我正在尝试构建一个 cnn 模型,但在构建时出现 运行 时间错误。我的图像大小为 224x224x3,批量大小为 5,我有 3 类 个要预测。

class CNN(nn.Module):
def __init__(self):
    super().__init__()
    #5*3*224*224
    self.conv1=nn.Conv2d(3,6,3,1)
    self.relu1=nn.ReLU()
    self.pool=nn.MaxPool2d(2)
    #112*112*6

    self.conv2=nn.Conv2d(6,16,3,1)
    self.relu2=nn.ReLU()

    self.fc1=nn.Linear(16*56*56,3)

def forward(self,x):
    x=self.pool(self.relu1(self.conv1(x)))
    x=self.pool(self.relu2(self.conv2(x)))
    x=x.flatten(1)
    x=self.fc1(x)
    return x

我在训练期间遇到 运行 时间错误。我该如何解决这个问题?

考虑到您输入的大小,您的全连接层应该有 16*54*54 个神经元,而不是 16*56*56

self.fc1 = nn.Linear(16*54*54, 3)

或者,您可以使用一个惰性模块来推断所需的神经元数量:nn.LazyLinear:

self.fc1 = nn.LazyLinear(3)