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)
会成功的。
我有一个手工制作的数据集,我只想用 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)
会成功的。