【pytorch深度学习实践】笔记—05.pytorch实现线性回归

简介: 【pytorch深度学习实践】笔记—05.pytorch实现线性回归

问题与解答

1.已经手动实现了线性回归,为什么要用pytorch来实现线性回归?

pytorch提供许多方法,用起来比较方便。使用pytorch之后我们可以把重点放在神经网络的构建上,而不是python的基础语法上。


pytorch实现线性回归的步骤

1.准备数据集

2.设计模型

理解:究竟要采用什么样的模型来求解线性问题

3.构造loss损失函数和optimizer优化器

4.训练模型

前馈计算loss损失,反馈计算梯度gradient,最后更新权重w

5.预测

最初的目的就是为了预测,希望输入一个x后可以预测输出y的值是多少。所以我们将已知的数据作为训练集、自己设计模型、训练数据,得到一个y和x的关系。最终输入一个x,输出y完成预测。


1.准备数据集

import torch
# 自定义数据集
x_data = torch.tensor([[1.0], [2.0], [3.0]])
y_data = torch.tensor([[2.0], [4.0], [6.0]])

2.设计模型

设计模型的含义:就是要建立哪种模型来实现问题的求解。

一般从最简单的线性模型入手,y=wx或者y=wx+b。

class LinearModel(torch.nn.Module):
    def __init__(self):
        # __init__是构造函数
        # super函数继承父类的__init__()方法
        super(LinearModel, self).__init__()
        # torch.nn.Linear(m, n)表示输入的x是m维的,输出的y是n维的
        self.linear = torch.nn.Linear(1, 1)
    def forward(self, x):
        # forward定义前馈需要进行哪些计算
        y_pred = self.linear(x)  # liear()是对y_pred做计算 y_pred=wx+b
        return y_pred
model = LinearModel()  # 实例化类,创建一个线性模型。

【注】torch.nn.Linear(in_features, out_features, bias=True)

文档中标注:Applies a linear transformation to the incoming data:y=Ax+b 。

传参in_features表示输入x的维度,传参out_features表示输出y的维度。


3.定义损失函数和优化器

criterion = torch.nn.MSELoss(size_average=False)  # 定义损失函数
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)  # 定义优化器,lr指的学习率=0.01

4.训练

for epoch in range(10):
    y_pred = model(x_data)
    loss = criterion(y_pred, y_data)
    print(epoch, loss.item())
    optimizer.zero_grad()  # 梯度清零
    loss.backward()  # 自动反向传播
    optimizer.step()  # 更新权重
# 最后打印经过训练之后得到的w和b的值
print("w=", model.linear.weight.item())
print("b=", model.linear.bias.item())

5.预测

我们之所以要构建模型,进行训练,最终的目的是为了预测。所以输入任意x的值,调用model类,预测y的值并输出。

x_test = torch.tensor([[4.0]])
y_test = model(x_test)
print('y_pred=', y_test.data.item())
目录
相关文章
|
15天前
|
机器学习/深度学习 数据可视化 算法
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
神经常微分方程(Neural ODEs)是深度学习领域的创新模型,将神经网络的离散变换扩展为连续时间动力系统。本文基于Torchdyn库介绍Neural ODE的实现与训练方法,涵盖数据集构建、模型构建、基于PyTorch Lightning的训练及实验结果可视化等内容。Torchdyn支持多种数值求解算法和高级特性,适用于生成模型、时间序列分析等领域。
158 77
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
|
3月前
|
机器学习/深度学习 监控 PyTorch
深度学习工程实践:PyTorch Lightning与Ignite框架的技术特性对比分析
在深度学习框架的选择上,PyTorch Lightning和Ignite代表了两种不同的技术路线。本文将从技术实现的角度,深入分析这两个框架在实际应用中的差异,为开发者提供客观的技术参考。
76 7
|
4月前
|
机器学习/深度学习 算法 测试技术
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
本文是关于如何搭建深度学习环境,特别是使用mmdetection进行CPU安装和训练的详细指南。包括安装Anaconda、创建虚拟环境、安装PyTorch、mmcv-full和mmdetection,以及测试环境和训练目标检测模型的步骤。还提供了数据集准备、检查和网络训练的详细说明。
259 5
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
|
4月前
|
机器学习/深度学习 数据可视化 计算机视觉
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
这篇文章详细介绍了如何通过可视化深度学习中每层特征层来理解网络的内部运作,并使用ResNet系列网络作为例子,展示了如何在训练过程中加入代码来绘制和保存特征图。
90 1
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
|
4月前
|
机器学习/深度学习 并行计算 PyTorch
深度学习环境搭建笔记(一):detectron2安装过程
这篇博客文章详细介绍了在Windows环境下,使用CUDA 10.2配置深度学习环境,并安装detectron2库的步骤,包括安装Python、pycocotools、Torch和Torchvision、fvcore,以及对Detectron2和PyTorch代码的修改。
853 1
深度学习环境搭建笔记(一):detectron2安装过程
|
4月前
|
机器学习/深度学习 自然语言处理 并行计算
深度学习笔记(十四):Transormer知识总结
关于深度学习中Transformer模型的知识总结,涵盖了Self-attention机制、QKV、Multi-head attention、位置编码和并行运算等关键概念,以及如何在PyTorch中实现Self-attention。
84 1
|
4月前
|
机器学习/深度学习 算法 PyTorch
深度学习笔记(十三):IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU、WIOU损失函数分析及Pytorch实现
这篇文章详细介绍了多种用于目标检测任务中的边界框回归损失函数,包括IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU和WIOU,并提供了它们的Pytorch实现代码。
626 1
深度学习笔记(十三):IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU、WIOU损失函数分析及Pytorch实现
|
6天前
|
机器学习/深度学习 人工智能 运维
深度学习在流量监控中的革命性应用
深度学习在流量监控中的革命性应用
69 40
|
27天前
|
机器学习/深度学习 运维 安全
深度学习在安全事件检测中的应用:守护数字世界的利器
深度学习在安全事件检测中的应用:守护数字世界的利器
73 22
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习的原理与应用:开启智能时代的大门
深度学习的原理与应用:开启智能时代的大门
203 16

热门文章

最新文章

推荐镜像

更多