繁体   English   中英

RuntimeError:大小不匹配,m1:[28 x 28],m2:[784 x 128]

[英]RuntimeError: size mismatch, m1: [28 x 28], m2: [784 x 128]

训练好模型后,我尝试绘制softmax输出的图,但是这导致标题中提到的运行时错误。

这是以下代码片段:

%matplotlib inline
%config InlineBackend.figure_format = 'retina'

import helper

# Test out your network!

dataiter = iter(testloader)
images, labels = dataiter.next()
img = images[1]

# TODO: Calculate the class probabilities (softmax) for img
ps = torch.exp(model(img))

# Plot the image and probabilities
helper.view_classify(img, ps, version='Fashion')

问题出在这部分(我猜)。

img = images[1]

# TODO: Calculate the class probabilities (softmax) for img
ps = torch.exp(model(img))

问题 :您正在加载的图像的尺寸为28x28,但是,模型输入的第一个索引通常是批次大小。 由于只有1张图片,因此您必须将第一个尺寸设置为尺寸1。为此,请执行img = img.view( (-1,) + img.shape)img=img.unsqueeze(dim=0) 同样,似乎第一层权重是784 x128。即,图像应转换为矢量并馈入模型。 为此,我们执行img=img.view(1, -1)

因此,总的来说,您需要做

img = images[1]
img = img.unsqueeze(dim=0)
img=img.view(1, -1)

# TODO: Calculate the class probabilities (softmax) for img
ps = torch.exp(model(img)) 

或者您可以只使用一个命令而不是两个命令(无需挤压)

img = images[1]
img=img.view(1, -1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM