共计 2488 个字符,预计需要花费 7 分钟才能阅读完成。
背景痛点分析
PyTorch 的安装过程看似简单,但实际操作中开发者常遇到以下典型问题:

- CUDA 版本不匹配 :PyTorch 预编译版本与本地 CUDA 驱动存在 ABI 兼容性问题,导致
torch.cuda.is_available()返回 False - 依赖冲突:与其他机器学习库(如 TensorFlow)共用环境时出现 numpy 等基础包版本冲突
- 环境污染:全局安装导致不同项目无法使用特定版本的 PyTorch
- 网络问题:从官方源下载速度慢或超时,尤其在 GPU 版本安装时更为明显
安装方式对比:conda vs pip
conda 方式
优点:
- 自动解决依赖冲突,适合复杂环境
- 预编译二进制文件包含 CUDA/cuDNN 等完整工具链
- 支持通过
conda-forge快速安装最新版本
缺点:
- 包体积较大(GPU 版本可能超过 1GB)
- 版本更新略滞后于 PyTorch 官方发布
pip 方式
优点:
- 版本更新及时,与 PyTorch 官方同步
- 包体积较小(可选择仅下载必要组件)
- 与 Python 原生虚拟环境集成更好
缺点:
- 需要手动管理 CUDA 等依赖
- 依赖解析能力较弱
选择建议:
- 新手或需要快速搭建环境时推荐 conda
- 需要精确控制版本或轻量级部署时选择 pip
CPU 版本安装流程
使用 conda 安装
-
创建并激活虚拟环境(推荐 Python 3.8-3.10):
conda create -n pytorch_env python=3.9 conda activate pytorch_env -
安装 PyTorch 核心包(2025.01 稳定版):
conda install pytorch torchvision torchaudio cpuonly -c pytorch
使用 pip 安装
pip install torch==2.3.0+cpu torchvision==0.14.0+cpu torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/cpu
GPU 版本安装详解
前置环境检查
-
确认 NVIDIA 驱动版本(需≥535.0):
nvidia-smi -
查看 CUDA 兼容性(PyTorch 2.3 需 CUDA 12.1):
nvcc --version
conda 安装 GPU 版本
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
pip 安装 GPU 版本
pip install torch==2.3.0+cu121 torchvision==0.14.0+cu121 torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/cu121
安装验证测试
import torch
# 基础检查
print(f"PyTorch 版本: {torch.__version__}")
print(f"CUDA 可用: {torch.cuda.is_available()}")
# GPU 详细信息(如可用)if torch.cuda.is_available():
print(f"当前设备: {torch.cuda.get_device_name(0)}")
print(f"CUDA 版本: {torch.version.cuda}")
print(f"cuDNN 版本: {torch.backends.cudnn.version()}")
# 张量计算测试
x = torch.rand(5, 3)
print(f"随机矩阵: \n{x}")
常见问题解决方案
ImportError 问题
现象:ImportError: libcudart.so.12.1: cannot open shared object file
解决步骤:
-
检查 LD_LIBRARY_PATH 是否包含 CUDA 库路径:
echo $LD_LIBRARY_PATH -
手动添加路径(示例为默认安装位置):
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATH
版本回退技巧
使用 pip 安装特定版本:
pip install torch==2.2.2 torchvision==0.13.2 torchaudio==0.12.2
conda 方式需指定完整版本链:
conda install pytorch=2.2.2 torchvision=0.13.2 torchaudio=0.12.2 -c pytorch
多版本环境管理
conda 虚拟环境方案
# 为不同项目创建独立环境
conda create -n project1 python=3.9 pytorch=2.3.0
conda create -n project2 python=3.8 pytorch=2.2.0
# 切换环境
conda activate project1
pip venv 方案
# 创建虚拟环境
python -m venv ~/envs/project1
source ~/envs/project1/bin/activate
# 安装特定版本
pip install torch==2.3.0
性能优化建议
- CUDA 版本选择:
- CUDA 12.1 相比 11.8 在 A100 上约有 15% 的训练速度提升
-
旧显卡(如 Pascal 架构)需使用 CUDA 11.x 版本
-
性能基准测试:
import torch.utils.benchmark as benchmark timer = benchmark.Timer(stmt="torch.randn(1024, 1024).cuda() @ torch.randn(1024, 1024).cuda()", setup="import torch" ) print(timer.timeit(100)) -
内存优化:
# 启用 cudnn 自动优化器 torch.backends.cudnn.benchmark = True
思考与延伸
- 思考题:
- 如何在同一台机器上同时维护 PyTorch 1.x 和 2.x 的开发环境?
-
当项目需要特定版本的 CUDA 时,如何避免影响其他项目?
-
延伸阅读:
- PyTorch 官方版本兼容性矩阵
- CUDA Toolkit 归档下载
- conda 环境导出与共享
正文完
