Skip to content

PyTorch框架简介

PyTorch框架简介

  • 深度学习框架是什么?
  • 深度学习框架有哪些应用优势?
  • 主流深度学习框架对比
  • 深度学习框架有哪些组件?
  • Pytorch的发展历程
  • 为什么选择Pytorch
  • 如何学习PyTorch

深度学习框架是什么?

深度学习框架是什么?

  • 深度学习框架如Tensorflow、Pytorch等,是深度学习的工具,简单来说就是库。
    • 无需深入了解底层算法的细节,容易、快速构建深度学习模型。
    • 利用预先构建的组件集合定义模型
  • 木料切割——硬件环境层面的开发、各类函数的编写。
  • 一套积木——深度学习框架。

深度学习框架是什么?

  • 图像分类任务:将图像归到相应的类别中。
  • 卷积神经网络:对于图像分类任务十分有效,但从头编写耗时太久。

深度学习框架有哪些应用优势?

深度学习框架有哪些应用优势?

  • 一个良好的深度学习框架具备以下关键特征:
    • 优化的性能
    • 易于理解和编码
    • 良好的社区支持
    • 并行化的进程,以减少计算
    • 自动计算梯度

深度学习框架有哪些应用优势?

  • 降低了深度学习的门槛,无需从复杂的神经网络开始编代码,使用已有的模型,通过训练参数,调整模型,选择分类器和优化器来构建模型。
  • 不同的框架适用的领域不完全一致,没有一套完美的框架。

主流深度学习框架对比

主流深度学习框架对比

深度学习框架有哪些组件

深度学习框架有哪些组件

  • 大部分深度学习框架都包含以下五个核心组件:
    • 张量(Tensor)
    • 基于张量的各种操作
    • 计算图(Computation Graph)
    • 自动微分(Automatic Differentiation)工具
    • BLAS、cuBLAS、cuDNN等拓展包

深度学习框架有哪些组件——张量

  • 张量是所有深度学习框架中最核心的组件
  • 各种各样的数据抽象成张量表示,然后再输入神经网络模型
  • 数据处理完成后,将张量再转换回想要的格式

深度学习框架有哪些组件——基于张量的操作

  • 基于张量的操作——针对张量对象的数学运算和处理过程。
  • 整个神经网络视为为了某种目的,针对输入张量进行的一系列操作(包含简单的矩阵乘法、卷积、池化和LSTM等稍复杂的运算)。
  • “学习”就是不断纠正神经网络的实际输出结果和预期结果之间误差。
  • 需要指出的是,大部分的张量操作都是基于类实现的,而并不是函数。
  • 总体上让整个框架更灵活和易于扩展。

深度学习框架有哪些组件——计算图

  • 计算图——将各种操作整合起来,输出我们需要的结果。
  • 各操作的管理问题——多个操作之间应该并行还是顺次执行,如何协同各种不同的底层设备,以及如何避免各种类型的冗余操作等等。
  • 2009年计算图首次被引入人工智能领域。

深度学习框架有哪些组件——自动微分

  • 自动微分——让模型训练阶段的梯度计算变得模块化且更为便捷
  • 实现了自动微分的模块一般都可以直接加入任意的操作类中

深度学习框架有哪些组件——拓展包

  • 由于低级语言的最优化编程难度很高,而且大部分的基础操作其实也都有公开的最优解决方案,因此另一个显著的加速手段就是利用现成的扩展包。
  • 例如最初用Fortran实现的BLAS(基础线性代数子程序),就是一个非常优秀的基本矩阵(张量)运算库,此外还有英特尔的MKL(Math Kernel Library)等,开发者可以根据个人喜好灵活选择。

Pytorch的发展历程

Pytorch的发展历程

  • PyTorch的前身是Torch机器学习框架
  • 2016年,Facebook在Torch7的基础上重新开发了一个深度学习框架——PyTorch 0.1。
  • 2018年12月,发布PyTorch 1.0正式版,它使用CAFFE2作为后端。
  • 目前,最新的Pytorch版本为1.11,版本1.12正在测试中。

为什么选择Pytorch——框架优势

  • 运行速度
  • 适用人群
  • 使用难度

为什么选择Pytorch——对比Tensorflow

  • pytorch主要是针对深度神经网络而开发;tensorflow它的优点是分布式计算,在面临较大数据时相对效率较高。
  • pytorch是动态框架,tensorflow是静态框架。
  • pytorch对python十分友好,更加python化的框架,而tensorflow的话更加像独立的语言和框架。

为什么选择Pytorch——完备的Pytorch生态

  • 对于计算机视觉,PyTorch有TorchVision这样应用广泛的库;
  • 对于自然语言处理,PyTorch有PyTorch NLP,AllenNLP这样的库;
  • 对于图卷积这类新型图网络,有PyTorch Geometric这样的库;
  • 对于上层API,基于PyTorch的Fastai框架相当简洁;
  • 对于工业部署,ONN协议保证模型的部署。

如何学习PyTorch

  • PyTorch 官方文档:https://pytorch.org/
  • github:https://github.com/
  • 网上相关教程视频