mat1和mat2形状不能相乘(19x1和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)

可以。

最新更新