mat1 和 mat2 形状不能相乘(19x1 和 19x1)

mat1 and mat2 shapes cannot be multiplied (19x1 and 19x1)

我有一个手工制作的数据集,我只想用 Pytorch 设置一个线性回归模型。 这些是我写的代码:

from torch.autograd import Variable

train_x = np.asarray([1,2,3,4,5,6,7,8,9,10,5,4,6,8,5,2,1,1,6])
train_y = train_x * 2

X = Variable(torch.from_numpy(train_x).type(torch.FloatTensor), requires_grad = False).view(19, 1)
y = Variable(torch.from_numpy(train_y).type(torch.FloatTensor), requires_grad = False)
from torch import nn


lr = nn.Linear(19, 1) 

loss = nn.MSELoss()
optimizer = torch.optim.SGD(lr.parameters(), lr = 0.01)
output = lr(X) #error occurs here

我想这是世界上最简单的 Pytorch 神经网络代码,但它仍然给出以下错误消息:

mat1 and mat2 shapes cannot be multiplied (19x1 and 19x1)

我刚刚做了书上的所有事情,但它仍然出现这个错误。你能帮帮我吗?

如果您使用 torch.nn.Linear(a,b) 作为网络的一部分,则输入的形状必须为 (n, a),输出的形状必须为 (n, b)。因此,您需要确保 X 在您的情况下具有 (n, 19) 的形状,因此将其修改为

...).view(1, 19)

会成功的。