在机器学习和深度学习的世界中,线性回归模型是一种基础且广泛使用的算法,简单易于理解,但功能强大,可以作为更复杂模型的基础。使用PyTorch实现线性回归模型不仅可以帮助初学者理解模型的基本概念,还可以为进一步探索更复杂的模型打下坚实的基础。⚔️
💡在接下来的教程中,我们将详细讨论如何使用PyTorch来实现线性回归模型,包括代码实现、参数调整以及模型优化等方面的内容~
💡我们接下来使用Pytorch的API来手动构建一个线性回归的假设函数损失函数及优化方法,熟悉一下训练模型的流程。熟悉流程之后我们再学习如何使用PyTorch的API来自动训练模型~
import torch
from sklearn.datasets import make_regression
import matplotlib.pyplot as plt
import random
def creat_data():
x, y, coef = make_regression(n_samples=100, n_features=1, noise=10, coef=True, bias=14.5, random_state=0)
# 所有的特征值X都是0,目标变量y的平均值也会是14.5(加上或减去由于noise参数引入的噪声)
# coef:权重系数,表示线性回归模型中每个特征的权重,y_pred = x * coef + bias
x = torch.tensor(x)
y = torch.tensor(y)
return x, y ,coef # x , y 不是按顺序的, 而是随机顺序的
def data_loader(x, y, batch_size):
data_len = len(y)
data_index = list(range(data_len))
random.shuffle(data_index)
batch_number = data_len // batch_size
for idx in range(batch_number):
start = idx * batch_size
end = start + batch_size
batch_train_x = x[start: end]
batch_train_y = y[start: end]
yield batch_train_x, batch_train_y # 相当于reutrn, 返回一个值,但是不会结束函数
🧨这一部分creat_data是来生成线性回归的数据,coef=True(截距)表示所有的特征值X都是0时,目标变量y的平均值也会是14.5(加上或减去由于noise参数引入的噪声)
# 假设函数
w = torch.tensor(0.1, requires_grad=True, dtype=torch.float64)
b = torch.tensor(0.0,