01 PyTorch:网红中的顶流明星 你好,我是方远。

从这节课开始,我们正式进入PyTorch基础篇的学习。

在基础篇中,我们带你了解PyTorch的发展趋势与框架安装方法,然后重点为你讲解NumPy和 Tensor的常用知识点。

掌握这些基础知识与技巧,能够让你使用 PyTorch 框架的时候更高效,也是从头开始学习机器学习与深度学习迈出的第一步。磨刀不误砍柴工,所以通过这个模块,我们的目标是做好学习的准备工作。

今天这节课,我们先从PyTorch的安装和常用编程工具说起,先让你对PyTorch用到的语言、工具、技术做到心里有数,以便更好地开启后面的学习之旅。

PyTorch登场

为什么选择 PyTorch 框架,我在开篇词就已经说过了。从19年起,无论是学术界还是工程界 PyTorch 已经霸占了半壁江山,可以说 PyTorch 已经是现阶段的主流框架了。

这里的Py我们不陌生,它就是Python,那Torch是什么?从字面翻译过来是一个“火炬”。

图片

什么是火炬呢?其实这跟TensorFlow中的Tensor是一个意思,我们可以把它看成是能在GPU中计算的矩阵

那PyTorch框架具体是怎么用的呢?说白了就是一个计算的工具。借助它,我们就能用计算机完成复杂的计算流程。

但是我们都知道,机器跟人类的“语言”并不相通,想要让机器替我们完成对数据的复杂计算,就得先把数据翻译成机器能够理解的内容。无论是图像数据、文本数据还是数值数据,都要转换成矩阵才能进行后续的变化和运算。

搞定了读入数据这一步,我们就要靠PyTorch搞定后面各种复杂的计算功能。这些所有的计算功能,包括了从前向传播到反向传播,甚至还会涉及其它非常复杂的计算,而这些计算统统要交给 PyTorch 框架实现。

PyTorch会把我们需要计算的矩阵传入到GPU(或CPU)当中,在GPU(或CPU)中实现各种我们所需的计算功能。因为GPU做矩阵运算比较快,所以在神经网络中的计算一般都首选使用GPU,但对于学习来说,我们用CPU就可以了

而我们要做的就是,设计好整个任务的流程、整个网络架构,这样PyTorch才能顺畅地完成后面的计算流程,从而帮我们正确地计算。

安装PyTorch及其使用环境

在 PyTorch 安装之前,还有安装 Python3 以及 pip 这些最基础的操作,这些你在网上随便搜一下就能找到,相信你可以独立完成。

这里我直接从安装 PyTorch开始说,PyTorch 安装起来非常非常简单,方法也有很多,这里我们先看看最简单的方法:使用 pip 安装。

使用pip安装PyTorch

CPU版本安装: /# Linux pip install torch==1.9.0+cpu torchvision==0.10.0+cpu torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html /# Mac & Windows pip install torch torchvision torchaudio

GPU版本安装:(默认CUDA 11.1 版本)

/# Linux & Windows pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html

我们只需要将上面的命令复制到计算机的命令行当中,即可实现快速安装。

这里有两个版本,一个GPU版本,一个CPU版本。建议你最好选择安装GPU版本,也就是说我们的硬件设备中最好有英伟达独立显卡。用GPU训练深度学习模型是非常快速的,所以在实际项目中都是使用GPU来训练模型。

但是如果说大家手里没有供开发使用的英伟达GPU显卡的话,那么安装CPU版本也是可以的,在学习过程中,CPU也足够让我们的小实验运行起来。

另外,安装GPU版本前,需要安装对应版本的CUDA工具包。我们可以到英伟达官网,选择相应操作系统的CUDA工具包,进行下载与安装。硬件设备中无英伟达显卡的,可以略过这部分。

目前 PyTorch 的稳定版本是 1.9.0,后续如果 PyTorch 的版本升级更新了,我们再将命令中的版本号稍作修改就可以了。

其它方法安装PyTorch

这里是PyTorch的官网,在页面如下图所示的位置,我们可以看到有一些配置选项和安装命令。

图片

我们可以根据页面上的指引,依次选择PyTorch的版本、你的操作系统、安装方式、编程语言以及计算平台,然后根据最下方的执行命令进行安装即可。

值得注意的是,Mac的操作系统只能安装CPU版本。我尝试下来最简单的方式,还是使用pip来安装。

验证是否安装成功

你在终端中输入“python”,就可以进入到Python交互模式。

首先输入如下代码,如果没有报错,就意味着PyTorch已经顺利安装了。 import torch

接下来,输入下面的代码,如果输出结果是“True”,意味着你可以使用 GPU。 这行代码的意思是检测GPU是否可用。

torch.cuda.is_available()

这里你也许会有疑问,为什么我安装的明明是 GPU 版本,但是代码却返回了“False”,显示GPU不可用呢?

对于这个问题,我们依次按照下面的步骤进行检查。

1.检查计算机上是否有支持CUDA的GPU。

首先查看电脑的显卡型号以及是否有独立显卡,如果没有以“NVIDIAN”名称开头的独立显卡,则不能支持CUDA,因此GPU不可用。

然后,你可以在这个页面查询GPU是否支持CUDA。如果你的GPU型号在页面的列表中,则表示你的计算机搭载了能够利用 CUDA 加速应用的现代 GPU,否则GPU也不可用。

若GPU支持CUDA,你还需要确保已经完成了上面介绍过的CUDA工具包的安装。

2.检查显卡驱动版本。

在终端中输入“nvidia-smi”命令,会显示出显卡驱动的版本和CUDA的版本,如下图所示。

图片

如果显卡驱动的版本过低,与CUDA版本不匹配,那么GPU也不可用,需要根据显卡的型号更新显卡驱动。

我用表格的方式,帮你梳理了CUDA版本与GPU驱动版本的对应关系,你可以根据自己计算机驱动的情况对照查看。例如,CUDA 11.1支持的 Linux驱动程序是450.80.02以上。-

我们可以在这里下载并安装显卡驱动程序。

3.检查PyTorch版本和CUDA版本是否匹配?

PyTorch版本同样与CUDA版本有对应关系,我们可以在这个页面查看它们之间的对应关系。如果两者版本不匹配,可以重新安装对应版本的PyTorch,或者升级CUDA工具包。

使用Docker

通过Docker使用PyTorch也非常简单,连安装都不需要,但是前提是你需要熟悉有关Docker的知识。

如果你会熟练地使用Docker,我推荐后面这个网页链接供你参考,这里有很多的PyTorch的Docker镜像,你可以找到自己需要的镜像,然后拉取一个镜像到你的服务器或者本地,直接启动就可以了,无需额外的环境配置。

常用编程工具

在使用PyTorch进行编程之前,我们先来看看几个常用的编程工具,但是并不要求你必须使用它们,你可以根据自己的喜好自由选择。

Sublime Text

Sublime Text是一个非常轻量且强大的文本编辑工具,内置了很多快捷的功能,对于我们开发来说非常便捷。

图片

例如,它可以自动为项目中的类、方法和函数生成索引,让我们可以跟踪代码。具体就是通过它的goto anything功能,根据一些关键字,查找到项目中的对应的代码行。另外,它能支持的插件功能也很丰富。

PyCharm

PyCharm 作为一款针对 Python 的编辑器,配置简单、功能强大,使用起来省时省心,对初学者十分友好。它拥有一般 IDE 所具备的功能,比如:语法高亮、项目管理、代码跳转、代码补全、调试、单元测试、版本控制等等。

Vim

Vim是Linux系统中的文本编辑工具,非常方便快捷,并且很强大。我们在项目中经常用到它。

在我们的项目中,经常是需要登录到服务器上进行开发的,服务器一般都是Linux系统,不会有Sublime Text与PyCharm,所以,我们用Vim打开代码,直接去进行编辑就可以了。

对于没有接触过Linux,或者一直习惯使用IDE来编程开发的同学,初步接触的时候,可能觉得Vim不是很方便,但实际上,Vim包含了丰富的快捷键,对于Shell与Python的开发来说非常高效。

但是Vim的缺点正如刚才所说,你需要去学习它的使用方法,有一点点门槛,但是只要你学会了,我保证你将对它爱不释手(这里也推荐有需要的同学去看看隔壁的《Vim 实用技巧必知必会》专栏)。

Jupyter Notebook&Lab

Jupyter Notebook 是一个开源的Web应用,这也是我最想推荐给你的一个工具。它能够让你创建和分享包含可执行代码、可视化结构和文字说明的文档。

在后面的课程,如果涉及图片生成或结果展示,我们也会使用到 Jupyter Notebook,这里推荐你先安装好

简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示。比如在编程过程中需要编写说明文档,可以在同一个页面中直接编写,便于及时说明、解释。

而 Jupyter Lab 可以看做是 Jupyter Notebook 的终极进化版,它不但包含了Jupyter Notebook所有功能,并且集成了操作终端、打开交互模式、查看csv文件及图片等功能。

图片

Jupyter Notebook在我们的深度学习领域非常活跃。在实验测试阶段,相比用py文件来直接编程,还是Jupyter Notebook方便一些。在项目结束之后如果要书写项目报告,我觉得用Jupyter也比较合适。

使用pip安装Jupyter

通过pip安装 Jupyter Notebook的命令如下。 pip install jupyter

通过pip安装Jupyter Lab的命令如下。

pip install jupyterlab

启动Jupyter

完成安装,就可以启动了。我们直接在终端中,执行下面的命令,就可以启动 Jupyter Notebook。 jupyter notebook

启动 Jupyter Lab需要在终端执行如下命令。

jupyter lab

不管在macOS系统里,还是在Windows系统,通过以上任意一种方式启动成功之后,浏览器都会自动打开Jupyter Notebook或者Jupyter Lab的开发环境(你可以回顾下“Jupyter Notebook & Lab”那个例子里的界面)。

运行Jupyter Notebook

进入到 Jupyter Notebook 的界面,我们尝试新建一个Python的Notebook。具体操作方法如下图所示。点击“New”下拉菜单,然后点击“Python 3”选项,来创建一个新的Python Notebook。

上面我们已经讲过了 PyTorch 的安装方法,我们可以执行下面这段代码,来看看 PyTorch 是否已经安装成功。 import torch torch.version

点击运行按钮,我们可以看到代码执行的结果,输出了当前安装的 PyTorch 的版本,即PyTorch 1.9.0 的GPU版本。这说明 PyTorch 框架已经安装成功。

小结

恭喜你完成了这节课的学习。

今天,我们一起了解了PyTorch 框架的用途,简单来说就是能利用GPU帮我们搞定深度学习中一系列复杂运算的框架。

想要用好这个工具,我们就得设计好整个任务的流程、整个网络架构,这样PyTorch才能实现各种各样复杂的计算功能。

之后我们学习了PyTorch 框架的安装方法,我还给你推荐了一些深度学习编程的常用工具。其中我最推荐的工具就是 Jupyter Notebook,这个工具在深度学习领域里常常会用到,后面课程里涉及图片生成或者结果展示的环节,我们也会用到它

课程的准备工作就是这些,让我们一起动手,配置好环境,并选择一个你觉得顺手的开发工具,正式开始PyTorch的探索之旅吧!

千里之行,始于足下。我在下节课等你,如果你有什么问题,也可以通过留言区和我交流。

我是方远,我们下一讲见!

参考资料

https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/PyTorch%e6%b7%b1%e5%ba%a6%e5%ad%a6%e4%b9%a0%e5%ae%9e%e6%88%98/01%20PyTorch%ef%bc%9a%e7%bd%91%e7%ba%a2%e4%b8%ad%e7%9a%84%e9%a1%b6%e6%b5%81%e6%98%8e%e6%98%9f.md