Pytorch深度学习与入门实战

Pytorch简介

Pytorch是一个能在CPU和GPU上运行并解决各类深度学习问题的深度学习框架。可以将其看做是支持GPU计算和自动微分计算的Numpy库。
在PyTorch诞生之前,像caffe和torch这样的深度学习库是很受欢迎的深度学习库。随着深度学习快速发展,开发人员和研究人员希望有一个高效、易于使用的框架,并且以Python编程语言构建、训练和评估神经网络。
PyTorch简介
PyTorch是一个灵活容易学习python库,在学术和研究领域PyTorch是最受欢迎的深度学习库。
PyTorch是Tensorflow最强有力的竞争对手。
PyTorch框架的产生受到Torch和Chainer这两个框架的启发。
与Torch使用Lua语言相比,PyTOrch是一个python优先的框架,我们可以继承PyTorch类然后自定义。
与Chainer类型,PyTorch框架具有自动求导的动态图功能,也就是所谓define by run,即当python解释器运行到相应的行时,才创建计算图。

Pytorch特点

  • 易于使用的API——它就像python一样简单。
  • python的支持——PyTorch可以顺利地与python数据科学集成。它非常类似于Numpy.
  • 动态计算图——取代了具有特定优势的静态图,pytorch为我们提供了一个框架,以便可以在运行时构建计算图,甚至在运行时更改它们。
  • 部署简单——pytorch提供了可用于大规模部署Pytorch模型的工具torchserve.TorchServe是pytorch开源项目的一部分,是一个易于使用的工具,用于大规模部署Pytorch模型。
  • 支持分布式训练——pytorch可实现研究和生产中的分布式训练和性能优化。
  • 支持移动端——Pytorch支持从python到IOS和安卓系统部署的端到端工作流程。
  • 强大的生态系统——pytorch具有丰富的工具和库等生态系统,为计算机视觉、NLP等方面的开发提供便利。
  • 内置开放神经网络交换协议(ONNX)——可以很方便与其他深度学习框架互操作。

PyTorch安装环境要求

PyTorch安装环境要求

PyTorch兼容的Python版本

windows上的Pytorch仅支持python 3.7-3.9,不支持python 2.x

搭建开发环境

推荐使用Miniconda搭建python环境
Miniconda是最小的conda安装环境,它提供了:
1.Conda包管理工具
2.python

下载Miniconda![下载miniconda](https://img-blog.csdnimg.cn/adace1a2f7ae476aa883b53203477c92.pn

GPU版本的python可以利用NVIDIA GPU强大的计算加速能力,使Python的运行更为高效,尤其是可以成倍提升模型训练的速度。

Pytorch官网地址

https://pytorch.org/get-started/locally/
快速下载CPU版本torch的网址:pip3 install torch torchvision torchaudio -i https://pypi.doubanio.com/simple

GPU版本安装

GPU版本安装
CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。
为了使用CUDA,需要安装cudatolkit,在这里我们与pytorch一并都使用conda安装。

检查显卡驱动

检查显卡驱动
GPU版本安装
这样网站会给出我们具体的安装命令,我们在anaconda prompt(miniconda3)命令行中参考网站给出的安装命令执行安装即可。

依赖库安装

依赖库安装

机器学习基础与PyTorch实现简单线性回归

机器学习基础

什么是机器学习呢?所谓机器学习,就是让计算机从数据中学习到规律,从而做出预测。很多时候,我们很难直接编写一个算法解决问题,比如一张图片,很难编写算法直接正确预测这张图片是猫还是狗。
为了解决这个问题,人们想到数据驱动方法,也就是让计算机从现有的大量的带标签图片中学习规律,一旦计算机学习到了其中的规律,当我们输入一张新的图片给计算机时,它就可以准确的预测出这张图片到底是猫还是狗。
这里有两个关键的因素,
一是大量的可学习数据,比如带标签的猫狗图片;
二是学习的主体,我们一般称之为模型。
如何理解模型呢?
你可以把模型认为是一个映射函数,它包含一些参数,这些参数可以与输入进行计算得到一个输出,我们一般称之为预测结果。
所谓模型学习的过程,就是模型修正其参数、改进映射关系的过程。
可以简单的把模型的学习过程总结如下,以预测图片是猫还是狗为例:
1.创建模型;
2.输入一张带标签的图片;
3.使用模型对此图片做出预测;
4.将预测结果与实际标签比较,产生的差距为损失;
5.以减小损失为优化目标,根绝损失优化模型参数;
6.循环重复上述第2-5步。

损失函数

损失函数:使用均方误差作为成本函数,也就是预测值和真实值之间差的平方取均值。
成本函数与损失函数:优化的目标(y代表实际的收入):找到合适的W和b,使得(f(x)-y)的平方越小越好,也就是求解合适的参数w和b.`
模型的创建如下所示:

class EIModel(nn.Module):定义类继承自nn.Module
    def __init__(self):
        super(EIModel, self).__init__()
        self.linear = nn.Linear(in_features=1, out_features=1)
    def forward(self, inputs):
        logits = self.linear(inputs)
        return logits
	model = EIModel()模型实例化
	opt = torch.optim.SGD(model.parameters(), lr=0.0001)优化器

	for epoch in range(5000):训练5000for x, y in zip(X, Y):
        y_pred = model(x)
        loss = loss_fn(y_pred, y)计算损失
        opt.zero_grad()梯度清零
        loss.backward()损失反向传播
        opt.step()优化参数
        list(model.parameters())返回优化后的模型参数
        list(model.named_parameters())
        
plt.scatter(data.Education, data.Income)绘制优化后的模型参数
plt.xlabel('Education')
plt.ylabel('Income')

plt.plot(X, model(X).detach().numpy(), c='r')
       

返回模型的权重和偏移参数
训练后的模型展示
*** 创建模型的总结:
1.输入数据处理
2.创建模型
3.训练
4.预测、评价

张量与基本数据类型

Tensor(张量)
Pytorch最基本的操作对象是Tensor(张量),它表示一个多维矩阵张量类似于NumPy的ndarrays,张量可以在GPU上使用以加速计算。
张量是基于向量和矩阵的推广,我们可以将标量视为零阶张量,向量视为一节张量,矩阵就是二阶张量。
张量是支持高效的科学计算的数组,它可以是一个数(标量)、一维数组(向量)、二维数组(矩阵)和更高维的数组(高阶数据)。
张量(tensor)和NumPy的数组ndarray通常可以共享相同的底层内存,无需复制数据。
import torch
import numpy as np

t = torch.FloatTensor([1, 2, 3])创建float32类型的数据
t = torch.LongTensor([1, 2])创建int64位类型的数据

Tensor的最基本数据类型
Tensor的最基本数据类型

torch.rand(2,3)01之间随机分布的随机数,创建一个两行三列的tensor数据
t = torch.randn(2, 3)      随机创建一个2*3的正态分布

shape返回tensor的形状 dtype返回tensor的类型
t.add_(t1) 代表t+t1的运算结果返回给t,就地改变t的值
torch.abs(t)代表求t的绝对值
t.T # 转置 shape : (3, 2) 大写的T代表转置,表示将23的矩阵t,转换为32的矩阵T

matmul 矩阵乘法

t.matmul(t.T) 表示一个23的矩阵t,与一个32的矩阵T,进行矩阵乘法运算。
t@(t.T)等同于t.matmul(t.T)
t.sum().item()将tensor的数据类型转换为python的浮点型数据进行打印
t1 = torch.from_numpy(np.random.randn(3, 4)) 表示将numpy类型的数据,转换为array类型
t1.numpy() 表示将array类型的数据转换为numpy类型
view方法
squeeze方法去除维度为1的维度
requires_grad与grad_fn函数的运用

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 《PyTorch深度学习入门实战》是一本以PyTorch为工具,介绍深度学习基础知识和实践的书籍。在本书中,作者通过简洁易懂的语言,结合实际案例,帮助读者理解深度学习的基本概念和原理,并教授如何使用PyTorch库来实现各种深度学习模型。 本书内容主要分为两部分,第一部分是深度学习的基础知识,包括神经网络、卷积神经网络、循环神经网络等;第二部分是深度学习的实践技巧,包括数据预处理、模型训练、模型优化等。通过这两部分的学习,读者可以逐步掌握深度学习的基本原理和实践技巧。 此外,本书还特别注重实战,为读者提供了大量的代码实例和实战案例。这些实例和案例不仅包括经典的深度学习任务,如图像分类、目标检测和语言生成等,还包括一些实际应用,如机器翻译、垃圾邮件识别等。通过这些实例和案例的学习,读者可以更好地理解深度学习的实际应用和解决实际问题的能力。 总的来说,本书以PyTorch为工具,以深度学习基础知识和实际案例为主线,通过深入浅出的讲解,帮助读者入门深度学习,并掌握使用PyTorch来实现深度学习模型的能力。无论是对于初学者还是有一定经验的开发者来说,《PyTorch深度学习入门实战》都是一本很好的学习资料。 ### 回答2: 《PyTorch深度学习入门实战》是一本介绍PyTorch深度学习库的教程图书。PyTorch是一种在机器学习领域广泛使用的开源深度学习库,它以动态图和静态图的混合方式,提供了灵活、高效的工具来构建和训练神经网络模型。 该书的目的是帮助读者快速入门PyTorch,并通过实战案例实践所学的知识。书中提供了丰富的示例代码和实验,从基础概念开始,逐步引导读者理解和掌握PyTorch的核心功能和应用。 在第一部分中,书籍详细介绍了PyTorch的安装和配置,包括如何创建和管理虚拟环境,以及如何使用pip安装PyTorch及其相关库。 第二部分主要介绍了PyTorch张量(Tensor)的基本操作和运算。这是深度学习中的基础,掌握好张量的操作对于后续的模型构建和训练非常重要。本书中通过大量的示例代码和实验,让读者逐步熟悉张量的创建、索引、切片以及各种元素级别的运算操作。 第三部分是关于PyTorch的神经网络模块(nn)的详细介绍,包括如何使用nn.Module构建网络模型,以及如何使用nn.functional模块定义前向传播方法。同时也介绍了常用的损失函数和优化器,在训练模型时如何选择和使用它们。 第四部分是实战篇,书中通过几个典型的深度学习任务案例,如图像分类、目标检测和自然语言处理等,示范了如何使用PyTorch构建和训练神经网络模型。每个案例都包括了详细的代码解析和实验结果展示,读者可以通过这些案例学习和掌握如何在实际项目中应用PyTorch进行深度学习。 总之,《PyTorch深度学习入门实战》是一本非常实用的教程图书,适合对PyTorch感兴趣的初学者和有一定基础的开发者阅读。通过阅读本书,读者可以系统性地学习和掌握PyTorch深度学习框架,为深度学习实战应用提供基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌上花开,静待绽放!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值