有没有人知道这里的错误是什么?我已经看过其他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)
)
DataLoader
dataloader = DataLoader(
dataset=dataset,
batch_size=64,
shuffle=True,
)
1条答案
按热度按时间643ylb081#
我认为你也应该分享你创建数据加载器的代码,它看起来很模糊,但是,它看起来像模型的输出维度(...,61)与标签的尺寸不匹配(...,64).你应该检查你从存储库名称创建的标签的数量。你似乎也在给密集的神经网络提供3D输入(nn.线性层)这对于像图像这样的3D数据不是一个好主意。你可以使用Convolutional layers代替。
您还应该检查here中的类似问题。