【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())
目录
相关文章
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习的新篇章:从理论到实践的飞跃####
本文深入剖析了深度学习的最新进展,探讨了其背后的理论基础与实际应用之间的桥梁。通过实例展示了深度学习如何革新计算机视觉、自然语言处理等领域,并展望了其未来可能带来的颠覆性变化。文章旨在为读者提供一个清晰的视角,理解深度学习不仅是技术的飞跃,更是推动社会进步的重要力量。 ####
139 61
|
7天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
1月前
|
机器学习/深度学习 算法 测试技术
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
本文是关于如何搭建深度学习环境,特别是使用mmdetection进行CPU安装和训练的详细指南。包括安装Anaconda、创建虚拟环境、安装PyTorch、mmcv-full和mmdetection,以及测试环境和训练目标检测模型的步骤。还提供了数据集准备、检查和网络训练的详细说明。
95 5
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
|
1月前
|
机器学习/深度学习 数据可视化 计算机视觉
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
这篇文章详细介绍了如何通过可视化深度学习中每层特征层来理解网络的内部运作,并使用ResNet系列网络作为例子,展示了如何在训练过程中加入代码来绘制和保存特征图。
62 1
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
|
11天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络:从理论到实践
【10月更文挑战第35天】在人工智能的浪潮中,深度学习技术以其强大的数据处理能力成为科技界的宠儿。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,在图像识别和视频分析等领域展现出了惊人的潜力。本文将深入浅出地介绍CNN的工作原理,并结合实际代码示例,带领读者从零开始构建一个简单的CNN模型,探索其在图像分类任务中的应用。通过本文,读者不仅能够理解CNN背后的数学原理,还能学会如何利用现代深度学习框架实现自己的CNN模型。
|
8天前
|
机器学习/深度学习 数据采集 自然语言处理
深入浅出深度学习:从理论到实践
【10月更文挑战第38天】本文旨在通过浅显易懂的语言和直观的代码示例,带领读者探索深度学习的奥秘。我们将从深度学习的基本概念出发,逐步深入到模型构建、训练以及应用实例,让初学者也能轻松入门。文章不仅介绍了深度学习的原理,还提供了实战操作指南,帮助读者在实践中加深理解。无论你是编程新手还是有一定基础的学习者,都能在这篇文章中找到有价值的内容。让我们一起开启深度学习之旅吧!
|
28天前
|
机器学习/深度学习 调度 计算机视觉
深度学习中的学习率调度:循环学习率、SGDR、1cycle 等方法介绍及实践策略研究
本文探讨了多种学习率调度策略在神经网络训练中的应用,强调了选择合适学习率的重要性。文章介绍了阶梯式衰减、余弦退火、循环学习率等策略,并分析了它们在不同实验设置下的表现。研究表明,循环学习率和SGDR等策略在提高模型性能和加快训练速度方面表现出色,而REX调度则在不同预算条件下表现稳定。这些策略为深度学习实践者提供了实用的指导。
33 2
深度学习中的学习率调度:循环学习率、SGDR、1cycle 等方法介绍及实践策略研究
|
10天前
|
机器学习/深度学习 自然语言处理 语音技术
深度学习的奇妙之旅:从理论到实践
【10月更文挑战第36天】在本文中,我们将一起探索深度学习的神秘世界。我们将首先了解深度学习的基本概念和原理,然后通过一个简单的Python代码示例,学习如何使用深度学习库Keras进行图像分类。无论你是深度学习的初学者,还是有一定基础的学习者,都可以从这篇文章中获得新的知识和启示。
|
15天前
|
机器学习/深度学习 监控 PyTorch
深度学习工程实践:PyTorch Lightning与Ignite框架的技术特性对比分析
在深度学习框架的选择上,PyTorch Lightning和Ignite代表了两种不同的技术路线。本文将从技术实现的角度,深入分析这两个框架在实际应用中的差异,为开发者提供客观的技术参考。
35 7
|
1月前
|
机器学习/深度学习 并行计算 PyTorch
深度学习环境搭建笔记(一):detectron2安装过程
这篇博客文章详细介绍了在Windows环境下,使用CUDA 10.2配置深度学习环境,并安装detectron2库的步骤,包括安装Python、pycocotools、Torch和Torchvision、fvcore,以及对Detectron2和PyTorch代码的修改。
101 1
深度学习环境搭建笔记(一):detectron2安装过程