用Pytorch实现线性回归(Linear Regression with Pytorch)

使用pytorch写神经网络的第一步就是需要准备好数据集,设计模型(用于计算y_hat(y的预测值)),构造损失函数和优化器(使用PyTorch API),写训练周期(前馈(算loss)+反馈(算梯度)+更新(更新权重))

一:准备数据

现在使用mini-batch的方式,X和Y为3x1(可以变,但是x和y要相同)的矩阵形式。

从代码中也可以看出来,x和y都是3x1的矩阵。

二:设计模型(构造计算图)

此处使用了一个仿射模型(在pytorch中叫做线性单元)

在我们设计的例子中,我们需要设置权重w的数值,和偏置量b。

那w和b的形状(几x几的矩阵),是由y_hat和x来共同确定。

之后将y_hat和y放入loss函数中进行计算,得出loss的值(一定是一个标量)。

看下模型设计的代码:

python 复制代码
#需要继承自module ,因为module中有很多方法我们需要使用
class LinearModel(torch.nn.Module):
    def __init__(self): #构造函数 在初始化对象时默认调用的函数
        super(LinearModel,self).__init__() #super调用父类的构造
        self.linear = torch.nn.Linear(1,1) #构造一个对象 linear Unit中的w和b(linear来自父类,可以自动反向传播)
    
    def forward(self,x): #前馈需要进行的计算 发现没有backword模块,因为Module中自动根据计算图实现backword过程
        y_pred = self.linear(x)
        return y_pred

model = LinearModel() #实例化 在之后既可以使用model(x)将x传入forword中的x,求得y_pred

其中torch.nn.Linear 的使用方法如下

三:构造loss和optimizer

此处我们使用MSEloss,需要的参事时y_hat和y,就可以求出loss。

代码如下:

python 复制代码
criterion = torch.nn.MSELoss(size_average=False)

我们使用SGD优化器(不会构建计算图),代码如下

python 复制代码
optimizer = torch.optim.SGD(model.parameters(),lr=0.01)

四:训练过程

python 复制代码
for epoch in range(100):
    y_pred = model(x_data)  #先计算出y_hat
    loss = criterion(y_pred,y_data) #再计算出loss
    print(epoch,loss.item()) 
    
    optimizer.zero_grad()#在反馈前将梯度清0
    loss.backward()#反馈
    optimizer.step()#更新

最后打印一些相关内容

python 复制代码
# w b
print('w=',model.linear.weight.item())
print('b=',model.linear.weight.item())

#Test Model
x_test = torch.Tensor([[4.0]])
y_test = model(x_test)
print('y_pred=',y_test.data)

发现当range为1000时,已经达到了我们的预期。

五:整体流程

相关推荐
MistyStar2 分钟前
Fast 模式为什么更快也更贵:从 Prefill/Decode 到 Batch 经济学
人工智能
小罗水15 分钟前
第 20 章 高级 RAG 技术与检索优化
人工智能·python·机器学习
维克兜率天24 分钟前
【维克】正则化回归:从Lasso到Ridge:防止过拟合的数学魔法
人工智能·数据挖掘·回归
AI的探索之旅24 分钟前
BOM管理的AI自动化:从原理图到采购清单,我搭了一套全自动工具链
运维·人工智能·自动化
念啊啊啊啊丶25 分钟前
【工业异常异常检测】2026-ICML-CoGeoAD:基于多视图注意力机制的分层颜色几何融合零样本3D异常检测
人工智能·深度学习·神经网络·机器学习·计算机视觉
szxinmai主板定制专家28 分钟前
ZYNQ高速数据采集卡设计:1M采样率实现IEPE传感器信号采集
人工智能·数据采集·zynq·rk3588+fpga·rk3576+fpga·振动采集
阳明山水30 分钟前
销量预测2026下半年:新架构、新基准与新共识
人工智能·深度学习·算法·机器学习·架构
天国梦32 分钟前
智习室英语学习工具选型指南:2026年品牌合作筛选方法与落地评估
大数据·人工智能
xcLeigh39 分钟前
中英文提示词对比:中文提示词与英文提示词的选择策略
人工智能·chatgpt
qyz_hr40 分钟前
拆解AI落地路径,人力资源服务如何跨过规模化交付门槛?
人工智能