# 1.1 PyTorch 简介与安装

## PyTorch 的诞生

2017 年 1 月，FAIR（Facebook AI Research）发布了 PyTorch。PyTorch 是在 Torch 基础上用 python 语言重新打造的一款深度学习框架。Torch 是采用 Lua 语言为接口的机器学习框架，但是因为 Lua 语言较为小众，导致 Torch 学习成本高，因此知名度不高。

## PyTorch 的发展

* 2017 年 1 月正式发布 PyTorch。
* 2018 年 4 月更新 0.4.0 版，支持 Windows 系统，caffe2 正式并入 PyTorch。
* 2018 年 11 月更新 1.0 稳定版，已成为 Github 上增长第二快的开源项目。
* 2019 年 5 月更新 1.1.0 版，支持 TensorBoard，增强可视化功能。
* 2019 年 8 月更新 1.2.0 版，更新 Torchvision，torchaudio 和torchtext，支持更多功能。
* 目前 PyTorch 有超越 Tensorflow 的趋势。
* ...

## PyTorch 优点

* 上手快，掌握 Numpy 和基本深度学习概念即可上手。
* 代码简洁灵活，使用 nn.Module 封装使得网络搭建更加方便 。基于动态图机制，更加灵活。
* 资源多，arXiv 中新论文的算法大多有 PyTorch 实现。
* 开发者多，Github 上贡献者(Contributors)已经超过 1100+
* ...

## PyTorch 实现模型训练的 5 大要素

![](https://image.zhangxiann.com/%E5%9B%BE%E7%89%871.png)

* 数据：包括数据读取，数据清洗，进行数据划分和数据预处理，比如读取图片如何预处理及数据增强。
* 模型：包括构建模型模块，组织复杂网络，初始化网络参数，定义网络层。
* 损失函数：包括创建损失函数，设置损失函数超参数，根据不同任务选择合适的损失函数。
* 优化器：包括根据梯度使用某种优化器更新参数，管理模型参数，管理多个参数组实现不同学习率，调整学习率。
* 迭代训练：组织上面 4 个模块进行反复训练。包括观察训练效果，绘制 Loss/ Accuracy 曲线，用 TensorBoard 进行可视化分析。

整个系列的学习都会围绕着这 5 个方面来展开。

## 安装

在开发过程中可能会有多个项目同时进行，不同项目之间使用的 Python 版本和一些库的版本不一样，这就会导致冲突。因此这里使用 Anaconda 来管理多个 Python 虚拟环境。Anaconda 是为了方便使用 Python 而建立的一个软件包，包含常用 的 250 多个工具包，多个版本的 Python 解释器和强大的虚拟环境管理工具。各个环境之间相互独立，可任意切换。

![](https://image.zhangxiann.com/20200515135222.png)

### 安装 Anaconda

* 到官网 <https://www.anaconda.com/products/individual> 选择适合自己系统的 64 位安装包，注意选择 Python3 以上的版本。

![](https://image.zhangxiann.com/20200515140549.png)

* 安装时记得勾选`Add Anaconda to my PATH environment variable` 添加到环境变量中。
* 安装完成后打开`cmd`，输入`conda`回车出现如下信息，即为安装成功。

![](https://image.zhangxiann.com/20200515140909.png)

* 接着添加中科大镜像或者清华镜像，在安装库的时候实现加速下载。

### 安装 PyTorch

* 检查是否有支持 CUDA 的 GPU，若有，需要安装 CUDA 和CuDNN。
* 进入 PyTorch 官方网站 <https://pytorch.org/get-started/locally/>选择自己需要安装的 PyTorch 对应的命令，在本地 cmd 中输入安装命令即可。这里我本机选择使用 conda 安装不支持 GPU 的 1.5 版本：`conda install pytorch torchvision cpuonly -c pytorch`。

![](https://image.zhangxiann.com/20200515141725.png)\
如果 conda 或者 pip 安装很慢，也可以直接进入 <https://download.pytorch.org/whl/torch_stable.html> 下载 whl 包到本地安装。该页面包含了所有历史版本和各个平台的 PyTorch，需要根据文件名选择自己需要的版本进行下载。文件命名规则如下所示：

第一部分是 cuda 版本或者 cpu，第二部分是 PyTorch 版本号，第三部分是 Python 版本号，第四部分是操作系统。

`cu92/torch-1.5.0%2Bcu92-cp37-cp37m-linux_x86_64.whl`

### Pycharm 使用 Anaconda 环境

在 Pycharm 中新建项目后，需要在 `File -> Settings -> Project -> Python Interpreter` 中选择 Anaconda 环境。

首先点击齿轮图标，点击弹出的`add`，

![](https://image.zhangxiann.com/20200515143403.png)\
接着在弹出的窗口中选择`Conda Environment`，`Conda execute` 选择你安装好的 Anaconda 的文件夹下的`Scripts\conda.exe`。

![](https://image.zhangxiann.com/20200515143634.png)\
最后在`Python Interpreter`给当前项目选择刚刚创建的 Python 环境即可。

![](https://image.zhangxiann.com/20200515143854.png)\
如果安装的是 GPU 版本，安装完成之后可以使用`print(torch.cuda.is_available())`语句来查看安装好的 PyTorch 是否支持 GPU。这里我是用的是 CPU 版本。

![](https://image.zhangxiann.com/20200515144017.png)

**参考资料**

* [深度之眼 PyTorch 框架班](https://ai.deepshare.net/detail/p_5df0ad9a09d37_qYqVmt85/6)

如果你觉得这篇文章对你有帮助，不妨点个赞，让我有更多动力写出好文章。

我的文章会首发在公众号上，欢迎扫码关注我的公众号**张贤同学**。

![](https://image.zhangxiann.com/QRcode_8cm.jpg)
