深入浅出PyTorch:从模型到源码
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3 PyTorch的安装过程

PyTorch是一个基于Python的深度学习框架,支持Linux、macOS、Windows平台。为了能够使用PyTorch,首先需要有Python的运行环境,一般来说,推荐选择Anaconda的Python环境。进入Anaconda的网站可以看到,Anaconda可以针对操作系统和Python的版本选择不同的Anaconda安装包(截至本书写作的时候,最流行的Python版本为3.7,因此,这里使用基于Python 3.7的Anaconda安装包)。下载和安装Anaconda安装包之后,就可以开始使用conda命令了,这也是Anaconda的Python环境管理命令。如果是Windows操作系统,可以打开Anaconda Prompt;如果是Linux/macOS操作系统,可以在安装完毕之后直接在命令行(Terminal)运行conda命令来测试是否成功安装了Anaconda环境(见图2.1)。我们可以在对应的命令行界面运行conda--help,就可以看到Anaconda的帮助文件。

图2.1 Windows的Anaconda环境(左)和Linux/macOS的Anaconda命令(右)

在安装Anaconda以后,我们可以使用Anaconda创建一个虚拟环境,具体的命令为conda create-n pytorch python=3.7。可以看到这里有两个参数,第一个参数是-n,后面紧接着虚拟环境的名字,这里直接使用pytorch作为虚拟环境的名字(读者可以使用任意的字符作为虚拟环境的名字),另外一个参数则用于指定Python的版本(这里使用3.7版本)。Anaconda会自动安装好初始的依赖并设置好具体的环境变量。创建好环境之后,可以使用conda activate pytorch来激活刚刚创建的虚拟环境,其中pytorch是创建的虚拟环境的名字。如果要退出虚拟环境,可以使用conda deactivate命令。

在激活虚拟环境之后,接下来需要安装PyTorch包,具体的安装过程可以参考PyTorch官网。在使用GPU(CUDA)运行环境的情况下,可以通过运行命令conda install pytorch torchvision cudatoolkit=10.0-c pytorch来安装PyTorch和相关的依赖包。如果仅仅使用CPU来运行深度学习模型,可以通过运行命令conda install pytorch torchvision-c pytorch来安装PyTorch和相关的依赖包。当运行完安装命令之后,我们就可以开始使用PyTorch了。通过代码2.1来测试PyTorch是否被正确安装。

代码2.1 PyTorch软件包的导入和测试。

从代码2.1的运行结果(注意,这里的$是命令行提示符,>>>是Python的命令界面提示符,均不需要输入,下同)可以看到,使用的Python版本是3.7,使用的PyTorch版本是1.3.0(这里使用import torch来导入PyTorch包)。

由于后续要介绍PyTorch源代码的结构,这里简要介绍一下如何从源代码出发来编译PyTorch(Linux/macOS平台上)并进行安装。这部分是可选的,如果读者没有编译PyTorch代码的需求,可以跳过这部分内容。

首先从GitHub上下载最新版本的PyTorch源代码,即使用git clone--recursive命令加上PyTorch的GitHub镜像地址获取PyTorch最新版本的源代码。接着切换到pytorch目录下(cd pytorch),运行git submodule sync和git submodule update--init-recursive来更新PyTorch依赖的子模块代码。这样最新版本的PyTorch代码包括依赖的子模块代码会被下载到本地的pytorch文件夹下。在源代码下载完毕之后,激活一个未安装PyTorch的Python环境,并安装编译PyTorch所需的依赖关系(如代码2.2所示)。第二行安装的是PyTorch的CUDA支持包。如果读者已安装CUDA,请按照系统的CUDA版本来选择magma的CUDA版本(可以通过nvidia-smi命令查看CUDA版本)。比如,使用CUDA 10.0的读者请安装magma-cuda100,具体magma支持的CUDA版本可以参考magma的官网和PyTorch的Anaconda软件包镜像源(可以看到最新支持的是magma-cuda101)。

代码2.2 安装PyTorch的依赖关系。

接下来在命令行界面运行代码2.3,即可开始PyTorch的编译。

代码2.3 PyTorch编译命令。

假如不需要直接安装PyTorch,只需要wheel格式的文件的安装包,可以把最后的python setup.py install改成python setup.py bdist_wheel。由于Linux/macOS是比较流行的深度学习操作系统,这里将略过Windows操作系统的编译方法。有兴趣的读者可以参考PyTorch的GitHub镜像的README.md文件(该文件还描述了Docker镜像的编译方法,对容器云的用户有一定的参考价值)。