Я создаю CNN с двумя сверточными слоями и продолжаю получать эту ошибку: ожидаемый 4-мерный ввод для 4-мерного веса [32, 1, 5, 5], но получен ввод размера [1, 32, 784] вместоКажется, проблема заключается в out = self.features (x)
Вот мой код:
self.features = nn.Sequential(
nn.Conv2d(1, 32, 5, 1, 1),
nn.MaxPool2d(2.2),
nn.ReLU(True),
nn.BatchNorm2d(32),
nn.Conv2d(32, 64, 5, 1, 1),
nn.MaxPool2d(2,2),
nn.ReLU(True),
nn.BatchNorm2d(64),
nn.LogSoftmax(dim=1)
)
self.classifier = nn.Linear(4 * 4 * 16, 10)
def forward(self, x):
x = x.unsqueeze(0)
print(x.shape)
out = self.features(x)
return F.log_softmax(out, dim=-1)
Я смотрел на подобные ошибки, но я не могу понять, как ямогу это исправить. Спасибо