pytorch 环境配置

Anaconda+pytorch

使用Anaconda

AnacondaPython 的一个开源发行版本,主要面向科学计算,可以简单理解为,Anaconda 是一个预装了很多我们用的到或用不到的第三方库的 Python。而且相比于大家熟悉的 pip install 命令,Anaconda 中增加了 conda install 命令。

https://www.anaconda.com/products/individual # anaconda 下载地址

1
2
3
4
5
6
7
8
wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh  # 可以去官网上找合适的版本
bash Anaconda*-Linux-x86_64.sh -b -p $(pwd)/anaconda3
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ # 换源
conda config --set show_channel_urls yes # 设置搜索时显示通道地址

conda config --set auto_activate_base false # 取消自动进入 conda 环境

conda activate base # 激活

安装 pytorch

1
2
3
4
5
6
 ./conda create --prefix=/anaconda/anaconda3/myenv  --name my_first_env  python=3.8
conda activate my_first_env

conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
# conda install pytorch torchvision cpuonly -c pytorch # cpu only
# conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c conda-forge # 根据 GPU 版本

pip+pytorch

不用 conda 也可以直接 pip 装,到 https://pytorch.org/get-started/locally/ 选好系统、CUDA 版本后会给出对应命令。形如:

1
2
3
4
5
# CUDA 版(index-url 里的 cu121 要和本机驱动支持的 CUDA 版本对应)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

# CPU 版
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

⚠️ 注:本文写作时用的是 cudatoolkit=10.2/11.1 这种 conda 装法,PyTorch 官方已不再通过 conda 渠道分发(conda 支持在 2.5 之后停止),新环境请以 pip 方式为准,CUDA 运行时会随 wheel 一起装好,不需要单独装 cudatoolkit。

验证

装完先确认能不能用起来,尤其是 GPU 是否被识别:

1
2
3
4
5
6
7
8
9
10
import torch

print(torch.__version__) # PyTorch 版本
print(torch.cuda.is_available()) # True 才说明能用 GPU
print(torch.cuda.device_count()) # 可见的 GPU 数量
print(torch.cuda.get_device_name(0)) # 第一块卡的型号
print(torch.version.cuda) # 这个 wheel 编译时用的 CUDA 版本

x = torch.rand(3, 3).cuda() # 真正跑一次搬运,能过才算通
print(x)

如果 is_available()False,先用 nvidia-smi 看驱动和卡是否正常,再核对装的是不是 CPU 版的 wheel。

使用 jupyter

1
2
3
4
5
jupyter notebook --generate-config

vi /root/.jupyter/jupyter_notebook_config.py

nohup jupyter notebook --allow-root > jupyter.log 2>&1 &

写入的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from notebook.auth import passwd
passwd()

# 允许通过任意绑定服务器的ip访问
c.NotebookApp.ip = '*'
# 用于访问的端口
c.NotebookApp.port = 8527
# 不自动打开浏览器
c.NotebookApp.open_browser = False
# 设置登录密码
c.NotebookApp.password = '<YOUR_PASSWORD_HASH>'
# 设置默认目录
c.NotebookApp.notebook_dir = u'/root/'
c.NotebookApp.base_url = '/'

jupyter 还可以搭配 nginx, 切换主题,不展开说明

jupyter参考

卸载

rm -rf /anaconda/anaconda3

删除 .bashrc 中的相关字段