RuntimeError: 张量 a (61) 的大小必须与张量 b (64) 在非单维维度 3

问题描述 投票:0回答:1

有人知道这里的错误是什么吗?我已经查看了其他 StackOverflow 线程或 PyTorch 论坛线程,但我没有找到任何东西 😕

我的数据集来自https://github.com/skyatmoon/CHoiCe-Dataset。对于标签,我使用图像所在目录的名称。

如果您需要更多代码/信息,请随时询问。

训练方法

def train():
   criterion = nn.MSELoss()
   optimizer = optim.SGD(model.parameters(), lr=0.3, momentum=0.9)

   for epoch in range(3000):
       running_loss = 0
       for images, labels in dataloader:
           optimizer.zero_grad()

           output = model(images)
           loss = criterion(output, labels.view(1, -1))

           loss.backward()
           optimizer.step()
           running_loss += loss.item()

型号

model = nn.Sequential(
    nn.Linear(28, 16),
    nn.Sigmoid(),
    nn.Linear(16, 16),
    nn.Sigmoid(),
    nn.Linear(16, 61)
)
python tensorflow deep-learning pytorch neural-network
1个回答
1
投票

我认为您还应该共享创建数据加载器的代码,它在这里看起来很模糊。但是,模型的输出维度 (..., 61) 似乎与标签的维度 (..., 64) 不匹配。您应该检查从存储库名称创建的标签数。此外,您似乎正在向密集神经网络(nn.Linear 层)提供 3D 输入,这对于像图像这样的 3D 数据来说不是一个好主意。您可以改用卷积层

您还应该在这里查看类似的问题

© www.soinside.com 2019 - 2024. All rights reserved.