这里确实有一个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}"')