请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

2回答

李超 2025-07-26 23:27:06

这里确实有一个bug, 将图片传给模型进行预测时,应该在其前面增加一个维度,指明批量大小。如果对一张图片进行预测,批量大小为1.具体修改方法如下:

model.eval()

x, y = test_data[1][0], test_data[1][1]

with torch.no_grad():

x = x.to(device)

# 在第 0 个位置增加一个维度,将 [1, 28, 28] 变为 [1, 1, 28, 28]

x_batch = x.unsqueeze(0) #这里增加了一行代码,在最前面增加了批量这个维度

pred = model(x_batch)#这里做了修改,将增加批量维度的数据传给模型进行预测

predicted , actual = pred[0].argmax(0), y

print(f'Predicted: "{predicted}", Actual: "{actual}"')

0 回复 有任何疑惑可以回复我~
李超 2025-07-25 18:51:52

这个意思是说,Batchnormal 需要4维的,你传入的不是4维,应该是你传入的数据有问题

0 回复 有任何疑惑可以回复我~
  • 提问者 xiaohi #1
    老师我用的是您reg_pt的代码,我没有改过,这里的数据In10行,是直接save的模型
    回复 有任何疑惑可以回复我~ 2025-07-25 20:37:05
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号