我应该如何修复代码才能使使用火车数据的线性回归模型正常工作?

How should I fix the code in order to make the linear regression model using train data properly work?

我应该做的是收集5个人的身高和体重信息,并用它作为训练数据来学习Colab中的线性回归模型。

有示例代码,所以我修复了它,但它从一开始就不起作用。

我应该如何修改代码才能使使用训练数据的线性回归模型正常工作?到目前为止我修复的代码如下。下面的身高体重数据是我随机取的值

import torch
import torch.optim as optim

# Defining data
x_train=torch.Float Tensor([48],[52],[60],[65],[73])
y_train=torch.Float Tensor([158],[162],[170],[175],[183])

# Hypothesis initiaization
W=torch.zeros(1,requires_grad=True)
b=torch.zeros(1,requires_grad=True)

# Defining Optimizer 
optimizer=torch.optim.SGD([W,b],Ir=0.01)

nb_epochs=1000
for epoch in range(nb_epochs+1):
  # Calculating H(x)
  hypothesis=x_train*W+b
  # Calculating cost
  cost=torch.mean((hypothesis-y_train)**2)
  # Learning with Optimizer
  optimizer.zero_grad()
  cost.backward()
  optimizer.step()


  # Log output every 100 times
  if epoch % 100 ==0:
    print('Epoch{:4d}/{}W:{:.3f},b:{:.3f}Coast:{:.6f}'.format(
        epoch,nb_epochs,W.item(),b.item(),cost.item()
    ))

代码片段中有几个小错误,其实你可以从错误信息中看出这些

  1. torch.Tensor(),并且“torch.Tensor 是默认张量类型 (torch.FloatTensor) 的别名”
  2. 您输入的数据应该是 Python 列表或序列
  3. Ir->lr(不是 ir,而是 Lr)
  4. 针对 nan 问题尝试降低学习率 (lr)
  5. 用足够的 epoch 进行训练

只需最少的修改,它就可以工作

import torch
import torch.optim as optim

# Defining data
x_train=torch.Tensor([[48],[52],[60],[65],[73]])
y_train=torch.Tensor([[158],[162],[170],[175],[183]])

# Hypothesis initiaization
W=torch.zeros(1,requires_grad=True)
b=torch.zeros(1,requires_grad=True)

# Defining Optimizer 
optimizer=torch.optim.SGD([W,b],lr=0.0001)

nb_epochs=1000000
for epoch in range(nb_epochs+1):
  # Calculating H(x)
  hypothesis=x_train*W+b
  # Calculating cost
  cost=torch.mean((hypothesis-y_train)**2)
  # Learning with Optimizer
  optimizer.zero_grad()
  cost.backward()
  optimizer.step()


  # Log output every 200 times
  if epoch % 200 ==0:
    print('Epoch{:4d}/{}W:{:.3f},b:{:.3f}Coast:{:.6f}'.format(
        epoch,nb_epochs,W.item(),b.item(),cost.item()
    ))

参考: https://pytorch.org/docs/stable/tensors.html