从零搭建AI开发环境:手把手教你用Anaconda管理多个PyTorch+CUDA版本(Ubuntu 20.04/22.04实测)
从零搭建AI开发环境:手把手教你用Anaconda管理多个PyTorch+CUDA版本(Ubuntu 20.04/22.04实测)
在深度学习项目开发中,不同项目往往需要不同版本的PyTorch和CUDA环境。比如一个项目可能基于PyTorch 1.8和CUDA 10.2开发,而另一个新项目则需要PyTorch 2.0和CUDA 11.7的支持。如何在单台机器上高效管理这些环境,避免版本冲突,是每个AI开发者必须掌握的技能。
本文将详细介绍如何利用Anaconda在Ubuntu系统上创建隔离的虚拟环境,并在不同环境中安装特定版本的PyTorch和CUDA工具包。我们不仅会覆盖基础安装步骤,还会深入探讨环境管理的最佳实践,包括:
- 如何为不同项目创建专属环境
- 在PyCharm中正确配置虚拟环境
- 解决常见的CUDA版本兼容性问题
- 优化环境切换流程提高开发效率
1. 环境准备与Anaconda安装
在开始之前,请确保你的Ubuntu系统(20.04或22.04)已经更新到最新状态。打开终端执行以下命令:
sudo apt update && sudo apt upgrade -yAnaconda是Python环境管理的利器,它不仅可以创建隔离的环境,还能方便地安装不同版本的Python解释器和各种科学计算包。以下是安装步骤:
- 访问Anaconda官网下载最新Linux版本
- 在下载目录打开终端,运行安装脚本:
bash Anaconda3-2023.03-Linux-x86_64.sh注意:安装过程中会询问是否将conda加入PATH环境变量,建议选择"yes",这样可以在任何终端直接使用conda命令。
安装完成后,关闭并重新打开终端,输入以下命令验证安装:
conda --version如果看到版本号输出(如conda 23.3.1),说明安装成功。接下来我们可以开始创建第一个虚拟环境。
2. 创建和管理虚拟环境
虚拟环境是Python开发的基石,它允许你在同一台机器上维护多个完全隔离的Python运行环境。以下是创建环境的基本命令:
conda create -n pytorch_py39_cuda113 python=3.9这个命令创建了一个名为pytorch_py39_cuda113的环境,并指定使用Python 3.9。激活环境使用:
conda activate pytorch_py39_cuda113环境激活后,终端提示符前会显示环境名称。要退出当前环境,执行:
conda deactivate对于需要管理多个项目的情况,建议为每个项目创建独立的环境。例如:
| 环境名称 | Python版本 | 用途 |
|---|---|---|
| pytorch_py38_cuda102 | 3.8 | 维护旧项目 |
| pytorch_py39_cuda113 | 3.9 | 当前主要开发环境 |
| pytorch_py310_cuda117 | 3.10 | 测试最新特性 |
查看所有已创建的环境:
conda env list删除不再需要的环境:
conda env remove -n 环境名称3. CUDA和cuDNN的安装与配置
CUDA是NVIDIA提供的并行计算平台,cuDNN则是针对深度神经网络优化的库。正确安装和配置它们对GPU加速至关重要。
首先检查系统显卡驱动是否安装:
nvidia-smi如果命令未找到,需要先安装NVIDIA驱动。对于Ubuntu 20.04/22.04,推荐使用以下命令:
sudo ubuntu-drivers autoinstall安装完成后重启系统。确认驱动正常工作后,我们可以安装CUDA工具包。通过conda安装特定版本的CUDA是最简单的方式:
conda install -c nvidia cuda-toolkit=11.3对应的cuDNN可以这样安装:
conda install -c nvidia cudnn=8.2.1验证CUDA安装:
nvcc --version验证cuDNN安装:
import torch print(torch.backends.cudnn.version())提示:conda会自动解决CUDA、cuDNN和其他依赖包的版本兼容性问题,比手动安装更可靠。
4. PyTorch的安装与验证
PyTorch官方提供了conda和pip两种安装方式。我们推荐使用conda,因为它能更好地处理依赖关系。访问PyTorch官网获取适合你环境的安装命令。
例如,安装PyTorch 1.12.1 + CUDA 11.3:
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch安装完成后,验证PyTorch是否能正确识别GPU:
import torch print(f"PyTorch版本: {torch.__version__}") print(f"CUDA可用: {torch.cuda.is_available()}") print(f"GPU数量: {torch.cuda.device_count()}") print(f"当前GPU: {torch.cuda.current_device()}") print(f"GPU名称: {torch.cuda.get_device_name(0)}")如果一切正常,你应该看到类似以下输出:
PyTorch版本: 1.12.1 CUDA可用: True GPU数量: 1 当前GPU: 0 GPU名称: NVIDIA GeForce RTX 30805. PyCharm中的环境配置
PyCharm是Python开发的强大IDE,正确配置虚拟环境可以避免很多问题。以下是配置步骤:
- 打开PyCharm,进入
File > Settings > Project: your_project > Python Interpreter - 点击齿轮图标选择
Add... - 选择
Conda Environment > Existing environment - 导航到你的conda环境路径,通常是
~/anaconda3/envs/环境名称/bin/python - 点击
OK应用更改
注意:如果环境列表中没有显示你的conda环境,可以尝试点击
Show All...手动添加。
配置完成后,PyCharm会使用指定环境中的Python解释器和所有安装的包。你可以在PyCharm的终端中直接使用conda命令管理环境。
6. 多环境切换与项目迁移
在实际开发中,经常需要在不同环境间切换。conda提供了灵活的环境管理功能。要切换到另一个环境:
conda activate 另一个环境名称如果你需要将环境迁移到其他机器或与团队成员共享,可以使用以下命令导出环境配置:
conda env export > environment.yml然后在其他机器上重建环境:
conda env create -f environment.yml对于更复杂的项目,建议使用Docker容器化技术,但这超出了本文的范围。
7. 常见问题与解决方案
问题1:PyTorch安装后无法识别GPU
解决方案:
- 确认CUDA版本与PyTorch版本兼容
- 检查
torch.cuda.is_available()输出 - 重新安装匹配的CUDA工具包
问题2:conda环境在PyCharm中不可见
解决方案:
- 确保PyCharm使用的是完整版的conda,而不是miniconda
- 在PyCharm设置中手动添加conda可执行文件路径
- 重启PyCharm
问题3:不同项目需要相同包的不同版本
解决方案:
- 为每个项目创建独立环境
- 使用
conda list检查当前环境安装的包 - 使用
conda install 包名=版本号安装特定版本
8. 高级技巧与环境优化
对于追求效率的开发者,以下技巧可能有用:
- 环境克隆:当需要基于现有环境做小修改时,可以克隆环境:
conda create --name 新环境 --clone 原环境快速切换:使用
conda activate 环境名比完整路径切换更方便清理缓存:定期清理不需要的包和缓存:
conda clean --all- 环境优先级:将常用环境设为默认:
conda config --set auto_activate_base false conda activate 常用环境- GPU监控:在训练模型时监控GPU使用情况:
watch -n 1 nvidia-smi在实际项目开发中,我通常会为每个Git分支创建对应的conda环境,这样可以在不同特性开发间无缝切换。例如:
conda create -n feature_branch_name python=3.9 conda activate feature_branch_name pip install -r requirements.txt