为了账号安全,请及时绑定邮箱和手机立即绑定

预期输入batch_size (64) 与目标batch_size (30) 匹配

预期输入batch_size (64) 与目标batch_size (30) 匹配

PHP
慕后森 2023-11-09 16:57:49
我目前正在训练一个神经网络来对食物图像的食物组进行分类,从而产生 5 个输出类别。然而,每当我开始训练网络时,我都会收到此错误:ValueError: Expected input batch_size (64) to match target batch_size (30).这是我的神经网络定义和训练代码。我真的很感谢帮助,我对 pytorch 比较陌生,无法弄清楚我的代码中到底有什么问题。谢谢!#Define the Network Architechturemodel = nn.Sequential(nn.Linear(7500, 4950),                      nn.ReLU(),                      nn.Linear(4950, 1000),                      nn.ReLU(),                      nn.Linear(1000, 250),                      nn.ReLU(),                      nn.Linear(250, 5),                      nn.LogSoftmax(dim = 1))#Define losscriterion = nn.NLLLoss()#Initial forward passimages, labels = next(iter(trainloader))images = images.view(images.shape[0], -1)print(images.shape)logits = model(images)print(logits.size)loss = criterion(logits, labels)print(loss)#Define Optimizeroptimizer = optim.SGD(model.parameters(), lr = 0.01)训练网络:epochs = 10for e in range(epochs):    running_loss = 0    for image, labels in trainloader:        #Flatten Images        images = images.view(images.shape[0], -1)        #Set gradients to 0        optimizer.zero_grad()        #Output        output = model(images)        loss = criterion(output, labels) #Where the error occurs        loss.backward()        #Gradient Descent Step        optimizer.step()        running_loss += loss.item()    else:        print(f"Training loss: {running_loss/len(trainloader)}")
查看完整描述

2 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

不是 100% 确定,但我认为错误在于这一行:

nn.Linear(7500, 4950)

除非您绝对确定您的输入是 7500,否则请输入 1 而不是 7500。请记住,第一个值始终是您的输入大小。通过设置 1,您将确保您的模型可以处理任何尺寸的图像。

顺便说一句,PyTorch 有一个扁平化功能。使用nn.Flatten而不是使用,images.view()因为您不想犯任何形状错误并必然浪费更多时间。

您犯的另一个小错误是您继续images and image在 for 循环中用作变量和参数。这是非常糟糕的做法,因为每当别人阅读你的代码时,你都会让他们感到困惑。确保不要一遍又一遍地重复使用相同的变量。

另外,您能否提供有关您的数据的更多信息?比如灰度、image_size 等。


查看完整回答
反对 回复 2023-11-09
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

错误结果出现在“for image, labels in trainloader:”行中(应该是图像)。修复了它,模型现在训练得很好。



查看完整回答
反对 回复 2023-11-09
  • 2 回答
  • 0 关注
  • 352 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信