PyTorch简介及环境搭建

本文主要包含PyTorch的基本介绍,以及安装方法。

文章目录

  • 前言
  • PyTorch简介
    • PyTorch作用
    • 对比PyTorch和Tensorflow
    • PyTorch大版本的主要更新
    • PyTorch总结
  • PyTorch环境搭建
    • 安装PyTorch
    • 验证安装
    • 配置 Jupyter Notebook
    • 测试配置
    • 问题解决


前言

当前,人工智能正越来越火爆。特别是在AlphaGo击败围棋世界冠军后,人工智能逐渐进入大众视野,并得到了飞速的发展。
目前深度学习是人工智能的主流,这也代表随着人们的研究,人工智能走下了“神坛”,开始被运用在各个领域,如医学等。基于此,很多公司推出了各种形式的深度学习框架。
PyTorchTensorflow是目前最火的两个深度学习框架,两者在不同方面也有各自的优势。本文主要介绍PyTorch,及其安装。


PyTorch简介

PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序。它主要由Facebook的人工智能研究小组开发。Uber的"Pyro"也是使用的这个库。

PyTorch作用

PyTorch是一个Python包,提供两个高级功能:

  • 具有强大的GPU加速的张量计算(如NumPy)。
  • 包含自动求导系统的的深度神经网络。

对比PyTorch和Tensorflow

没有好的框架,只有合适的框架,这篇知乎文章有个简单的对比,所以这里就不详细再说了。 并且技术是发展的,知乎上的对比也不是绝对的,比如Tensorflow在1.5版的时候就引入了Eager Execution机制实现了动态图,PyTorch的可视化,windows支持,沿维翻转张量等问题都已经不是问题了。

PyTorch大版本的主要更新

  1. 2018-04-25
    (1) 支持 Windows 系统
    (2) Tensor/Variable 合并,取消Variable

  2. 2018-12-8
    (1) Torch Hub 预训练的模型库
    (2) JIT 编译器
    (3) C++ 前端 (实验性)
    (4) 全新的分布式包torch.distributed和 torch.nn.parallel.DistributedDataParallel

  3. 2019-5-1
    (1) 支持 TensorBoard : from torch.utils.tensorboard import SummaryWriter
    (2) 不再支持CUDA 8.0
    (3) TORCHVISION 0.3

  4. 2019-8-9
    (1) 官方实现标准的 nn.Transformer 模块
    (2) CUDA 9.2 +
    (3) TORCHVISION 0.4
    (4) D API(Domain API):torchvision、torchtext 和 torchaudio

  5. 2019-10-11
    (1) 命名张量(实验性) named tensor
    (2) 量化支持 用 eager 模式进行 8 位模型量化
    (3) 谷歌云 TPU
    (4) PyTorch Mobile 移动端 从 Python 到部署在 iOS 和安卓端

  6. 2020-1-16
    (1) optim.lr_scheduler 持「链式更新(chaining)」。即可以定义两个 schedulers,并交替在训练中使用。
    (2) Java bindings(实验性) Java bindings 从任何 Java 程序中调用 TorchScript 模型,只支持linux
    (3) 分布式模型并行训练RPC (实验性)

  7. 2020-4-21
    (1) C++ 前端 API(稳定型)
    (2) 分布式 RPC 框架 API(稳定型)
    (3) 不再支持 Python 2
    (4) TORCHVISION 0.6

  8. 2020-7-29
    (1) 官方 自动混合精度(AMP)训练 torch.amp,不需要nv的apex
    (2) torch.autograd.profiler 内存分析器 (测试版)
    (3) 不支持python 3.5 以前版本
    (4) TORCHVISION 0.7
    (5) TORCHAUDIO 0.6
    (6) Pytorch1.6版本开始,PyTorch 的特性将分为 Stable(稳定版)、Beta(测试版)和 Prototype(原型版)

  9. 2020-10-29
    (1) 支持CUDA 11:CUDA 9.2 - 11
    (2) 通过 torch.fft 支持 NumPy 兼容的 FFT 操作(测试版)
    (3) Windows 系统上的分布式训练:DistributedDataParallel和集合通信提供了原型支持(原型版)
    (4) 支持Nvidia A100的 原生TF32格式
    (5) PyTorch Mobile支持iOS和Android,CocoaPods和JCenter,并分别提供了二进制软件包
    (6) TORCHVISION 0.8

  10. 2021-03-05
    (1) 支持一部分的AMD GPU(测试版)
    (2) Complex Autograd (测试版)
    (3) 提高 NCCL 稳定性,包括异步错误/超时处理,RPC 分析
    (4) torch.fft 已经更新为(稳定版),也就是可以在生产环境中使用了
    (5) 新增torch.linalg,为常见的线性代数运算提供与 NumPy 类似的支持(测试版)
    (6) torch.fx (测试版)可以进行 Python 代码转换
    (7) pipeline 并行化(测试版)可将 pipeline 并行化作为训练 loop 的一部分

  11. 2021-06-16
    (1) torch.linalg,Complex Autograd 已经更新为(稳定版)
    (2) torch.norm 已经弃用了,需要使用 torch.linalg.norm
    (3) TorchVision库已经可以在IOS/Android上使用
    (4) PyTorch Profiler(测试版): 利用Kineto进行GPU分析,TensorBoard 进行可视化,PyTorch使用教程和文档都已经完善
    (5) TorchVision 0.10:添加了新的SSD和SSDLite模型
    (6) TorchAudio 0.9.0:可在非Python 环境(包括C++、Android和iOS)中部署的wav2vec 2.0模型
    (7) TorchText 0.10.0:添加了一个新的高性能Vocab模块

  12. 2021-10-22
    (1) 支持Android NNAPI (测试版)
    (2) torch.fx 已经变为稳定版,也就是说可以在生产上用了
    (3) torch.special、nn.Module 参数化(稳定版)
    (4) 分布式训练的Remote Module、DDP Communication Hook、ZeroRedundancyOptimizer也都变为稳定版

PyTorch总结

  • PyTorch算是相当简洁优雅且高效快速的框架。
  • 设计追求最少的封装,尽量避免重复造轮子。
  • 算是所有的框架中面向对象设计的最优雅的一个,设计最符合人们的思维,它让用户尽可能地专注于实现自己的想法。
  • 大佬支持,与google的Tensorflow类似,FAIR的支持足以确保PyTorch获得持续的开发更新。
  • 不错的的文档(相比FB的其他项目,PyTorch的文档简直算是完善了,参考Thrift),PyTorch作者亲自维护的论坛供用户交流和求教问题。
  • 入门简单。

PyTorch环境搭建

PyTorch的安装十分简单,根据PyTorch官网,对系统选择和安装方式等灵活选择即可。这里以anaconda为例,简单的说一下步骤和要点。 国内安装anaconda建议使用清华镜像。

安装PyTorch

PyTorch是Python的一个库,可以直接使用pip进行安装,经过测试 pip是没有任何问题的。

PyTorch可以根据个人需要安装cpu版或gpu版:
1.cpu版安装
如果没有gpu资源,只需要下载cpu版本的话,可以打开命令提示符,输入以下命令:

pip install torch==1.5.1+cpu torchvision==0.6.1+cpu -f https://download.pytorch.org/whl/torch_stable.html

2.gpu版安装
gpu版本需要先配置cuda资源,cuda的配置不在这里做过多的介绍。
gpu版安装命令如下:

pip3 install torch===1.5.1 torchvision===0.6.1 -f https://download.pytorch.org/whl/torch_stable.html

在1.2版本以后,pytorch只支持cuda 9.2以上了,所以需要对cuda进行升级,目前测试大部分显卡都可以用,包括笔记本的MX250也是可以顺利升级到cuda 10.1。

验证安装

打开python输入:

import torch
torch.__version__
# 得到结果'1.5.0'

配置 Jupyter Notebook

新建的环境是没有安装 ipykernel 的, 所以无法注册到Jupyter Notebook中,先要准备下环境。
在命令提示符中输入以下两条命令:

#安装ipykernel
conda install ipykernel
#写入环境
python -m ipykernel install  --name pytorch --display-name "Pytorch for Deeplearning"

下一步就是定制 Jupyter Notebook。输入以下两条命令:

#切换回基础环境
activate base
#创建jupyter notebook配置文件
jupyter notebook --generate-config
## 这里会显示创建jupyter_notebook_config.py的具体位置

打开jupyter_notebook_config.py文件,修改数字:

c.NotebookApp.notebook_dir = '' 默认目录位置
c.NotebookApp.iopub_data_rate_limit = 100000000 这个改大一些否则有可能报错

如果是用pycharm打开的话,可以使用 ctrl+f 快速查找以上位置。

测试配置

至此 Pytorch 的开发环境安装完成,可以在开始菜单中打开Jupyter Notebook 在New 菜单中创建文件时选择Pytorch for Deeplearning 创建PyTorch的相关开发环境了。

问题解决

问题1:启动python提示编码错误
解决方法:删除 .python_history
问题2:默认目录设置不起效
打开快捷方式,看看快捷方式是否跟这个截图一样,如果是则删除 %USERPROFILE% 改参数会覆盖掉notebook_dir设置,导致配置不起效。
PyTorch简介及环境搭建_第1张图片


如果没有问题,那么恭喜你,PyTorch已经安装成功!

本文主要参考PyTorch中文手册,如果想了解更多PyTorch内容,可以参考以下链接:
https://handbook.pytorch.wiki/index.html

你可能感兴趣的:(pytorch,pytorch,深度学习,人工智能)