快速安装PyTorch简明教程


作者Lou Xiao创建时间2022-11-01 18:58:00更新时间2024-08-15 21:30:00

0. 前言

PyTorch是优秀的深度学习开发框架,在科研和工程中有着广泛的应用。本教程介绍如何快速搭建PyTorch运行环境。

1. 搭建基础的Python运行环境

step1: 下载安装包(https://mirrors.bfsu.edu.cn/)

1.双击鼠标左键复制此行;2.单击复制所有代码。
                                
                                    
1 wget -c "https://mirrors.bfsu.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh" -O 'Miniconda3-latest-Linux-x86_64.sh'

step2: 安装(此处安装到 ~/.miniconda/)

1.双击鼠标左键复制此行;2.单击复制所有代码。
                                
                                    
1 /bin/bash ./Miniconda3-latest-Linux-x86_64.sh -b -u -p "$HOME/.miniconda"

step3: 修改shell的配置文件

❶如果使用bash,那么执行如下语句

1.双击鼠标左键复制此行;2.单击复制所有代码。
                                
                                    
1 cat >> "$HOME/.bashrc" <<'EOF'
2 # >>> conda init >>>
3 if [ -f "$HOME/.miniconda/etc/profile.d/conda.sh" ]; then
4 source "$HOME/.miniconda/etc/profile.d/conda.sh"
5 CONDA_CHANGEPS1=true conda activate base
6 else
7 export PATH="$HOME/.miniconda/bin:$PATH"
8 fi
9 # <<< conda init <<<
10 EOF
11
12 # !!! 重新加载配置文件(很重要)
13 source "$HOME/.bashrc"

❷如果使用zsh,那么执行如下语句

1.双击鼠标左键复制此行;2.单击复制所有代码。
                                
                                    
1 cat >> "$HOME/.zshrc" <<'EOF'
2 # >>> conda init >>>
3 if [ -f "$HOME/.miniconda/etc/profile.d/conda.sh" ]; then
4 source "$HOME/.miniconda/etc/profile.d/conda.sh"
5 CONDA_CHANGEPS1=true conda activate base
6 else
7 export PATH="$HOME/.miniconda/bin:$PATH"
8 fi
9 # <<< conda init <<<
10 EOF
11
12 # !!! 重新加载配置文件(很重要)
13 source "$HOME/.zshrc"

step4: 设置pip软件仓库的国内镜像地址:

✵注:可以把https://mirrors.bfsu.edu.cn替换为https://mirrors.tuna.tsinghua.edu.cn/

1.双击鼠标左键复制此行;2.单击复制所有代码。
                                
                                    
1 pip config set global.index-url https://mirrors.bfsu.edu.cn/pypi/web/simple

step5: 设置anaconda软件仓库的国内镜像地址

✵注:可以把https://mirrors.bfsu.edu.cn替换为https://mirrors.tuna.tsinghua.edu.cn/

1.双击鼠标左键复制此行;2.单击复制所有代码。
                                
                                    
1 conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free
2 conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main
3 conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch
4 conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge
5 conda config --set show_channel_urls yes

✵注:如果conda镜像有问题,可尝试直接修改文件 ~/.condarc为如下内容:

1.双击鼠标左键复制此行;2.单击复制所有代码。
                                
                                    
1 channels:
2 - https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge
3 - https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch
4 - https://mirrors.bfsu.edu.cn/anaconda/pkgs/main
5 - https://mirrors.bfsu.edu.cn/anaconda/pkgs/free
6 show_channel_urls: true
7 report_errors: false

2. 安装PyTorch

参考官网给出的安装方法:https://pytorch.org/
如图所示:Install PyTorch

2.1 在MacOS系统上安装

参考链接: https://pytorch.org/get-started/previous-versions/

使用conda

1.双击鼠标左键复制此行;2.单击复制所有代码。
                                
                                    
1 conda create -n Torch python=3.12 nomkl
2 conda activate Torch
3
4 conda install pytorch torchvision torchaudio

使用pip

1.双击鼠标左键复制此行;2.单击复制所有代码。
                                
                                    
1 conda create -n Torch python=3.12 nomkl
2 conda activate Torch
3
4 # 安装最新版本
5 pip install torch torchvision torchaudio
6 # 安装1.12
7 pip install torch==1.12 torchvision torchaudio
8 # 安装1.13
9 pip install torch==1.13 torchvision torchaudio

2.2 在Linux/Windows系统上安装

参考链接: https://pytorch.org/get-started/previous-versions/

2.2.1 仅支持CPU的PyTorch

使用conda

1.双击鼠标左键复制此行;2.单击复制所有代码。
                                
                                    
1 conda create -n Torch python=3.12
2 conda activate Torch
3
4 conda install pytorch torchvision torchaudio cpuonly

使用pip

1.双击鼠标左键复制此行;2.单击复制所有代码。
                                
                                    
1 conda create -n Torch python=3.12
2 conda activate Torch
3
4 # 安装最新版本
5 pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu
6 # 安装1.12
7 pip install torch==1.12 torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu
8 # 安装1.13
9 pip install torch==1.13 torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu

2.2.2 支持GPU的PyTorch

✵注:选择安装的cuda版本必须低于操作系统支持的cuda版本(高版本的cuda需要较新的显卡驱动来支持)。在Linux系统上可用命令 nvidia-smi 进行检查,如图所示:nvidia-smi

2.2.2.1 使用conda(⚠⚠⚠注:适用于1.12以及低版本的PyTorch)
1.双击鼠标左键复制此行;2.单击复制所有代码。
                                
                                    
1 conda create -n Torch python=3.12
2 conda activate Torch
3
4 # ①CUDA 10.2
5 conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=10.2
6 # ②CUDA 11.3
7 conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3
8 # ③CUDA 11.6
9 conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6
2.2.2.2 使用pip (推荐,特别是适用于1.12及后续版本的PyTorch)

特别注意,首先根据cuda版本(nvidia-smi)选择可用的PyTorch版本和Python版本。👉附录5.1【PyTorch官网PIP仓库地址表】列举了不同cuda版本对应的PIP仓库地址,👉附录5.2【PyTorch版本速查表】列举了可用的cuda、PyTorch、Python版本组合,需要根据实际情况进行安装。下面举个例子说明操作流程:

❶ 用nvidia-smi查看服务器的cuda版本,发现是12.4,查表可知可用的cuda版本有:12.4,12.1,11.8,11.7,11.6,11.3,11.1,11.0,10.2,10.1,10.0,9.2等(提示🔔:①挑选的cuda版本要小于等于服务器安装的cuda版本,②强烈推荐用与服务器相同的cuda版本,虽然用低版本的cuda也能运行,但是没有严格保证,可能会浪费更多的时间排除错误)。cuda=12.4的pip仓库地址就是 https://download.pytorch.org/whl/cu124,cuda=11.8对应的仓库地址是 https://download.pytorch.org/whl/cu118,以此类推。👉附录5.1【PyTorch官网PIP仓库地址表】;此例选取cuda=12.4
❷ 当cuda=12.4时,查表可知可用的Python版本有3.8,3.9,3.10,3.11,3.12等,此例选取python=3.12
❸ 当cuda=12.4,python=3.12时,查表可知可用的PyTorch版本有:2.4.0+cu124等,此例选取torch=2.4.0+cu124

1.双击鼠标左键复制此行;2.单击复制所有代码。
                                
                                    
1 conda create -n Torch python=3.12
2 conda activate Torch
3
4 # 不明确torch版本,让pip自动选择
5 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
6 # 明确指定torch版本
7 pip install torch==2.4.0+cu124 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
2.2.2.3 测试PyTorch能否正常使用GPU
1.双击鼠标左键复制此行;2.单击复制所有代码。
                                
                                    
1 unset CUDA_VISIBLE_DEVICES
2 python -c "import torch;print(torch.cuda.is_available())"

若结果如下图所示,则表示安装成功!

1.双击鼠标左键复制此行;2.单击复制所有代码。
                                
                                    
1 $ python -c "import torch;print(torch.cuda.is_available())"
2 True

3. 运行PyTorch程序(Linux系统)

step1: 查看显卡运行状态

1.双击鼠标左键复制此行;2.单击复制所有代码。
                                
                                    
1 nvidia-smi

如图所示:nvidia-smi

step2: 设置使用哪些显卡

1.双击鼠标左键复制此行;2.单击复制所有代码。
                                
                                    
1 # 使用编号为2和3的显卡
2 export CUDA_VISIBLE_DEVICES='2,3'

step3: 运行程序:

1.双击鼠标左键复制此行;2.单击复制所有代码。
                                
                                    
1 python -Bu my_script.py

4. FAQ

Q: 设置CUDA_VISIBLE_DEVICES后,为了不能使用显卡?
A:

  1. 检查是否正确安装支持cuda的PyTorch,如果错误安装了仅支持cpu的PyTorch,删除虚拟环境重新来一遍。
  2. 检查安装的cuda版本号是否高于操作系统支持的cuda版本号?如果是,则删除次虚拟环境,重新安装低版本的PyTorch。历史版本的PyTorch可查看 https://pytorch.org/get-started/previous-versions/
  3. 检查程序是否正确切换到cuda设别。

Q:使用多显卡训练时(DataParallel或DistributedDataParallel),程序卡住?
A:
1. 检查程序是否错误使用了同步锁等;
2. 对于特殊的显卡,尝试设置环境变量 export NCCL_P2P_DISABLE=1
3. 设置环境变量 NCCL_SOCKET_IFNAMENCCL_IB_DISABLE,这两个环境变量用来控制显卡网络通信;
- NCCL_SOCKET_IFNAME 用来指定网卡设备,可用ip addr来获取,如图所示NetworkInterface
- 若是单机多卡训练,可以设置 export NCCL_SOCKET_IFNAME=lo
- 若是多机多卡训练,此处这样设置 export NCCL_SOCKET_IFNAME=eno1,具体数值根据获取的信息为准。
- NCCL_IB_DISABLE,当指定网卡设备不是InfiniBand(普通服务器的网卡是以太网只有100M~10G带宽,而InfiniBand有200G带宽)时,设置 export NCCL_IB_DISABLE=1
4. 上述环境变量可以添加在程序的启动脚本,或者用户shell配置文件: ~/.bashrc~/.zshrc等。

5. 附录

5.1 PyTorch官网PIP仓库地址表

PyTorch官网PIP仓库地址表
12.4https://download.pytorch.org/whl/cu124
12.1https://download.pytorch.org/whl/cu121
11.8https://download.pytorch.org/whl/cu118
11.7https://download.pytorch.org/whl/cu117
11.6https://download.pytorch.org/whl/cu116
11.3https://download.pytorch.org/whl/cu113
11.1https://download.pytorch.org/whl/cu111
11.0https://download.pytorch.org/whl/cu110
10.2https://download.pytorch.org/whl/cu102
10.1https://download.pytorch.org/whl/cu101
10.0https://download.pytorch.org/whl/cu100
9.2https://download.pytorch.org/whl/cu92
9.0https://download.pytorch.org/whl/cu90

5.2 PyTorch版本速查表

PyTorch版本速查表
Cuda版本Python版本PyTorch版本
12.43.122.4.0+cu124
3.112.4.0+cu124
3.102.4.0+cu124
3.92.4.0+cu124
3.82.4.0+cu124
12.13.122.4.0+cu121, 2.3.1+cu121, 2.3.0+cu121, 2.2.2+cu121, 2.2.1+cu121, 2.2.0+cu121
3.112.4.0+cu121, 2.3.1+cu121, 2.3.0+cu121, 2.2.2+cu121, 2.2.1+cu121, 2.2.0+cu121, 2.1.2+cu121, 2.1.1+cu121, 2.1.0+cu121
3.102.4.0+cu121, 2.3.1+cu121, 2.3.0+cu121, 2.2.2+cu121, 2.2.1+cu121, 2.2.0+cu121, 2.1.2+cu121, 2.1.1+cu121, 2.1.0+cu121
3.92.4.0+cu121, 2.3.1+cu121, 2.3.0+cu121, 2.2.2+cu121, 2.2.1+cu121, 2.2.0+cu121, 2.1.2+cu121, 2.1.1+cu121, 2.1.0+cu121
3.82.4.0+cu121, 2.3.1+cu121, 2.3.0+cu121, 2.2.2+cu121, 2.2.1+cu121, 2.2.0+cu121, 2.1.2+cu121, 2.1.1+cu121, 2.1.0+cu121
11.83.122.4.0+cu118, 2.3.1+cu118, 2.3.0+cu118, 2.2.2+cu118, 2.2.1+cu118, 2.2.0+cu118
3.112.4.0+cu118, 2.3.1+cu118, 2.3.0+cu118, 2.2.2+cu118, 2.2.1+cu118, 2.2.0+cu118, 2.1.2+cu118, 2.1.1+cu118, 2.1.0+cu118, 2.0.1+cu118, 2.0.0+cu118
3.102.4.0+cu118, 2.3.1+cu118, 2.3.0+cu118, 2.2.2+cu118, 2.2.1+cu118, 2.2.0+cu118, 2.1.2+cu118, 2.1.1+cu118, 2.1.0+cu118, 2.0.1+cu118, 2.0.0+cu118
3.92.4.0+cu118, 2.3.1+cu118, 2.3.0+cu118, 2.2.2+cu118, 2.2.1+cu118, 2.2.0+cu118, 2.1.2+cu118, 2.1.1+cu118, 2.1.0+cu118, 2.0.1+cu118, 2.0.0+cu118
3.82.4.0+cu118, 2.3.1+cu118, 2.3.0+cu118, 2.2.2+cu118, 2.2.1+cu118, 2.2.0+cu118, 2.1.2+cu118, 2.1.1+cu118, 2.1.0+cu118, 2.0.1+cu118, 2.0.0+cu118
11.73.112.0.1+cu117, 2.0.0+cu117, 1.13.1+cu117, 1.13.0+cu117
3.102.0.1+cu117, 2.0.0+cu117, 1.13.1+cu117, 1.13.0+cu117
3.92.0.1+cu117, 2.0.0+cu117, 1.13.1+cu117, 1.13.0+cu117
3.82.0.1+cu117, 2.0.0+cu117, 1.13.1+cu117, 1.13.0+cu117
3.71.13.1+cu117, 1.13.0+cu117
11.63.111.13.1+cu116, 1.13.0+cu116
3.101.13.1+cu116, 1.13.0+cu116, 1.12.1+cu116, 1.12.0+cu116
3.91.13.1+cu116, 1.13.0+cu116, 1.12.1+cu116, 1.12.0+cu116
3.81.13.1+cu116, 1.13.0+cu116, 1.12.1+cu116, 1.12.0+cu116
3.71.13.1+cu116, 1.13.0+cu116, 1.12.1+cu116, 1.12.0+cu116
11.33.101.12.1+cu113, 1.12.0+cu113, 1.11.0+cu113
3.91.12.1+cu113, 1.12.0+cu113, 1.11.0+cu113, 1.10.2+cu113, 1.10.1+cu113, 1.10.0+cu113
3.81.12.1+cu113, 1.12.0+cu113, 1.11.0+cu113, 1.10.2+cu113, 1.10.1+cu113, 1.10.0+cu113
3.71.12.1+cu113, 1.12.0+cu113, 1.11.0+cu113, 1.10.2+cu113, 1.10.1+cu113, 1.10.0+cu113
3.61.10.2+cu113, 1.10.1+cu113, 1.10.0+cu113
11.13.91.9.1+cu111, 1.9.0+cu111, 1.8.1+cu111, 1.8.0+cu111, 1.10.2+cu111, 1.10.1+cu111, 1.10.0+cu111
3.81.9.1+cu111, 1.9.0+cu111, 1.8.1+cu111, 1.8.0+cu111, 1.10.2+cu111, 1.10.1+cu111, 1.10.0+cu111
3.71.9.1+cu111, 1.9.0+cu111, 1.8.1+cu111, 1.8.0+cu111, 1.10.2+cu111, 1.10.1+cu111, 1.10.0+cu111
3.61.9.1+cu111, 1.9.0+cu111, 1.8.1+cu111, 1.8.0+cu111, 1.10.2+cu111, 1.10.1+cu111, 1.10.0+cu111
11.03.91.7.1+cu110
3.81.7.1+cu110, 1.7.0+cu110
3.71.7.1+cu110, 1.7.0+cu110
3.61.7.1+cu110, 1.7.0+cu110
10.23.101.12.1+cu102, 1.12.0+cu102, 1.11.0+cu102
3.91.9.1+cu102, 1.9.0+cu102, 1.8.1+cu102, 1.12.1+cu102, 1.12.0+cu102, 1.11.0+cu102, 1.10.2+cu102, 1.10.1+cu102, 1.10.0+cu102
3.81.9.1+cu102, 1.9.0+cu102, 1.8.1+cu102, 1.12.1+cu102, 1.12.0+cu102, 1.11.0+cu102, 1.10.2+cu102, 1.10.1+cu102, 1.10.0+cu102
3.71.9.1+cu102, 1.9.0+cu102, 1.8.1+cu102, 1.12.1+cu102, 1.12.0+cu102, 1.11.0+cu102, 1.10.2+cu102, 1.10.1+cu102, 1.10.0+cu102
3.61.9.1+cu102, 1.9.0+cu102, 1.8.1+cu102, 1.10.2+cu102, 1.10.1+cu102, 1.10.0+cu102
10.13.91.8.1+cu101, 1.8.0+cu101, 1.7.1+cu101
3.81.8.1+cu101, 1.8.0+cu101, 1.7.1+cu101, 1.7.0+cu101, 1.6.0+cu101, 1.5.1+cu101, 1.5.0+cu101
3.71.8.1+cu101, 1.8.0+cu101, 1.7.1+cu101, 1.7.0+cu101, 1.6.0+cu101, 1.5.1+cu101, 1.5.0+cu101
3.61.8.1+cu101, 1.8.0+cu101, 1.7.1+cu101, 1.7.0+cu101, 1.6.0+cu101, 1.5.1+cu101, 1.5.0+cu101
3.51.5.1+cu101, 1.5.0+cu101
10.03.81.4.0+cu100
3.71.4.0+cu100, 1.3.1+cu100, 1.3.0+cu100
3.61.4.0+cu100, 1.3.1+cu100, 1.3.0+cu100
3.51.4.0+cu100, 1.3.1+cu100, 1.3.0+cu100
9.23.91.7.1+cu92
3.81.7.1+cu92, 1.7.0+cu92, 1.6.0+cu92, 1.5.1+cu92, 1.5.0+cu92, 1.4.0+cu92
3.71.7.1+cu92, 1.7.0+cu92, 1.6.0+cu92, 1.5.1+cu92, 1.5.0+cu92, 1.4.0+cu92, 1.3.1+cu92, 1.3.0+cu92, 1.2.0+cu92
3.61.7.1+cu92, 1.7.0+cu92, 1.6.0+cu92, 1.5.1+cu92, 1.5.0+cu92, 1.4.0+cu92, 1.3.1+cu92, 1.3.0+cu92, 1.2.0+cu92
3.51.5.1+cu92, 1.5.0+cu92, 1.4.0+cu92, 1.3.1+cu92, 1.3.0+cu92, 1.2.0+cu92
文章目录