【问题标题】:mat1 and mat2 shapes cannot be multiplied (1x7 and 1x1)mat1 和 mat2 形状不能相乘(1x7 和 1x1)
【发布时间】:2023-01-28 22:44:27
【问题描述】:

我在 PyTorch 中使用线性回归模型来预测使用虚假数据从汽车价格售出的汽车数量:

car_price_tensor
tensor([3., 4., 5., 6., 7., 8., 9.])
number_of_car_sell_tensor
tensor([[7.5000],
        [7.0000],
        [6.5000],
        [6.0000],
        [5.5000],
        [5.0000],
        [4.5000]])

这是网络:

import torch.nn as nn
from torch import optim

class LinearRegression(nn.Module):
    def __init__(self, in_dim, out_dim):
        super(LinearRegression, self).__init__()
        self.linear = nn.Linear(in_dim, out_dim, bias=True)
    
    def forward(self, x):
        return self.linear(x)
    
in_dim = 1
out_dim = 1
model = LinearRegression(in_dim,out_dim) 
loss_fn = nn.MSELoss()
lr = 1e-3
epochs = 40
optimizer = optim.SGD(model.parameters(), lr=lr)
X = car_price_tensor
y = number_of_car_sell_tensor


loss_list = []
for epoch in range(epochs):
    out = model(X)
    loss = loss_fn(out, y)
    loss.backward()
    optimizer.step()
    optimizer.zero_grad()
    loss_list.append(loss/len(X))
    print("Epoch: {} train loss: {}".format(epoch+1, loss/len(X)))

我收到以下错误:mat1 and mat2 shapes cannot be multiplied (1x7 and 1x1)

我怎样才能让网络正常工作?

【问题讨论】:

    标签: python deep-learning pytorch neural-network data-science


    【解决方案1】:

    嘿,

    输入张量的形状与矩阵乘法不兼容。您需要重塑输入张量以使其兼容。

    例如,您可以将 car_price_tensor 重塑为 (7,1),将 number_of_car_sell_tensor 重塑为 (7,1)。重塑它们后,它们将与矩阵乘法兼容。

    【讨论】:

      猜你喜欢
      • 2021-05-25
      • 2021-09-09
      • 2021-09-23
      • 2021-09-17
      • 2022-08-22
      • 1970-01-01
      • 2022-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多