网络上的 Pytorch 教程往往只写操作步骤,而不告诉你为什么这么操作。并且 Pytorch 的版本也是一直在迭代更新的,这就导致很多教程都会出现时效问题。所以,本篇文章的目的就是彻底“教会”你如何安装 Pytorch,从细节和原理上告诉你为什么这么做,让你理解每一步操作的原因。我相信你看完本文章之后,一定会对你有所收获。

前置说明
本文不介绍任何有关 Anaconda 的内容,因为 Anaconda 只是 Python 的包管理工具,其本身和安装 Pytorch 没有任何关系。所以,如果你希望使用 Anaconda,请自行学习 Anaconda 的使用方法,本文章只专注于帮助你理解 Pytorch 的安装过程
当然,如果你非常希望使用 Anaconda,你也可以先看本篇文章,之后再学习 Anaconda 的使用方法。如果你看懂了本篇文章,那么你再看其他教程便会变得“如鱼得水”一般。

一、安装 CPU 版 Pytorch

为什么要说这一部分,大抵是为了文章的结构完整性吧!因为安装 CPU 版 Pytorch 基本没有什么难度,就和正常安装 Python 的其他包是一样的。你只需要运行以下命令即可:

1
pip3 install torch torchvision torchaudio

实际命令可能有变动,具体安装命令请见官网

图 1.1 CPU 版 Pytorch 安装命令

二、安装 GPU 版 Pytorch

2.1 确定需要安装的 CUDA 版本

在正式安装 CUDA 之前你需要做两件事情,以此来确定你需要下载哪个版本的 CUDA:

  1. 检查你的 NVIDIA 显卡驱动支持的 CUDA 版本。
    • 首先打开 CMD 窗口,输入命令:nvidia-smi
    • 检查输出中的关键字 CUDA Version。需要说明一下的是,这里显示的是当前显卡驱动所支持的最大 CUDA 版本,而不是你的 CUDA 版本。
      图 2.1.1 nvidia-smi 输出
  2. 检查当前 Pytorch 支持的 CUDA 版本。
    图 2.1.2 当前 Pytorch 支持的 CUDA 版本

检查完成后,我们需要确保 NVIDIA 显卡驱动支持的最大 CUDA 版本 包含 你需要的 Pytorch 支持的 CUDA 版本 。以上图为例,我们的 NVIDIA 显卡驱动支持的最大 CUDA 版本为 12.7,而 Pytorch 支持的 CUDA 版本分别为 11.8、12.1 和 12.4,那么这三个版本我们就都可以安装(因为 12.7 > 12.4 > 12.1 > 11.8)。

如果“NVIDIA 显卡驱动支持的最大 CUDA 版本”过低,比如在该例子中小于 11.8 的话,那你最好升级一下你的显卡驱动:NVIDIA GeForce 驱动程序官网

图 2.1.3 手动升级显卡驱动

一般可以安装更高版本的 CUDA,那肯定是安装更高版本的,所以后面的演示都以 12.4 版本的 CUDA 为例。

2.2 安装 CUDA 及 cuDNN

当确定要安装的 CUDA 版本后(这里我选择的是 CUDA 12.4),我们需要:

  1. CUDA Toolkit 官网下载对应的 CUDA 工具包并安装。
    图 2.2.1 下载 CUDA Toolkit
  2. cuDNN 官网下载对应的 cuDNN 并安装。
    图 2.2.2 下载 cuDNN

CUDA Toolkit 的安装过程中的几个要点我简单说一下:

  1. 这个目录是解压缓存目录并不是 CUDA 的安装目录,就使用默认的即可:
    图 2.2.3 CUDA 解压缓存目录
  2. 这里一定要选择“自定义”安装:
    图 2.2.4 选择“自定义”安装
  3. 这里如果你是第一次安装那么最好全选,如果不是那么只需要勾选这个 CUDA 选项即可,否则可能会出现问题:
    图 2.2.5 CUDA 组件选择
  4. 这里这个组件是关于 Visual Studio 的,如果不需要可以不选(建议选上):
    图 2.2.6 Visual Studio 组件选择

关于 cuDNN 的安装,在较高版本(v9.x)中可以像安装软件一样直接安装(注意的是在较高版本你也可以选择压缩包式安装,但是并不推荐,其对应的选项为 Tarball 安装)(同样需要说明的是这里的 cuDNN for CUDA cuda 12.6 表示的是支持 12.x 系列并最高支持到 12.6,这一点在官网的文档(cuDNN 版本对应表)中有所指示):

图 2.2.7 安装 cuDNN 软件

但是较低版本(v8.x)中,你下载下来的可能是一个压缩包。如果你下载下来的是一个压缩包,那你就需要自己手动复制关键文件到指定的目录中实现安装(官方的 Tarball 安装教程):

  1. 解压安装包:
    图 2.2.8 cuDNN 压缩包(Tarball 安装)
  2. 复制文件到 CUDA 的根目录 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4 中(这里的路径根据你安装 CUDA 的实际目录调整 | 注意对应的版本号)。
  3. NVIDIA cuDNN 的 bin 目录 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\bin 添加到环境变量中(环境变量设置的打开方式设置 > 系统 > 关于 > 高级系统设置 > 环境变量 > XX的用户变量的 Path | 系统变量的 Path)。
  4. 根据需求选择)如果你需要将 cuDNN 配置到你的 Visual Studio 项目中,你需要:
    • 打开 Visual Studio 项目,在解决方案资源管理器中右键单击项目名称,然后选择属性
    • 单击“VC++ 目录”并将 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\include 追加到“包含目录”字段。
    • 单击“链接器”>“常规”并将 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\lib\x64 追加到“附加库目录”字段。
    • 单击“链接器”>“输入”并将 cudnn.lib 追加到“附加依赖项”字段,然后单击“确定”。

2.3 安装 Pytorch

一切准备妥当之后,就可以去 Pytorch 官网选择合适的安装命令:

图 2.3.1 安装 Pytorch

并打开 CMD 执行安装:

图 2.3.2 使用 CMD 下载 Pytorch

三、检查是否安装成功

安装完成后可以输入命令 pip list 检查是否安装成功:

图 2.3.3 三、检查是否安装成功