# 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)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://pytorch.zhangxiann.com/1-ji-ben-gai-nian/1.1-pytorch-jian-jie-yu-an-zhuang.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
