Ubuntu下深度学习环境配置历程和经验总结
Ubuntu下深度学习环境配置历程和经验总结
一、CUDA安装和配置
1.1 检查现有CUDA版本
1 |
|
在我的系统中显示是CUDA 12.4,而最新版本是12.6,因此想要更新。
1.2 CUDA安装选项
安装CUDA 12.6时遇到两个选项:
Open Kernel Module (
nvidia-open
):- NVIDIA最近推出的开源驱动模块
- 适合较新的显卡(Ampere及以后架构)
- 对开发人员友好,与新Linux内核兼容性好
Legacy Kernel Module (
cuda-drivers
):- NVIDIA传统的闭源驱动
- 更加稳定和成熟
- 与深度学习框架兼容性更好
选择建议:对于深度学习应用,建议选择Legacy Kernel Module,因为兼容性更好。
1.3 CUDA路径问题
安装完成后发现系统中存在多个CUDA相关目录:
1 |
|
每个目录占用约5.3G空间,通过检查发现这些是符号链接,都指向了alternatives系统。虽然链接正确指向了CUDA 12.6,但nvcc -V
仍显示12.4版本,这是因为cuda的默认启动被设置成了conda的相关目录,需要移除并像下文中重新添加系统路径。
1.4 环境变量配置
在~/.bashrc
中添加CUDA路径:
1 |
|
二、PyTorch配置问题
2.1 初始问题
安装PyTorch后,GPU检测失败:
1 |
|
错误信息:
1 |
|
这表明CUDA和GPU驱动存在兼容性问题。
2.2 验证PyTorch CUDA支持
1 |
|
三、TensorFlow配置问题
3.1 NumPy版本冲突
安装PyTorch成功后,安装TensorFlow后遇到NumPy版本冲突:
1 |
|
尝试降级NumPy时又遇到新问题:
1 |
|
3.2 验证TensorFlow GPU支持
两种验证方法:
1 |
|
四、环境清理
4.1 遇到的问题
- base环境中的包依赖关系复杂
- Python 3.12版本过新,很多包不支持
- 多个conda环境占用大量空间
4.2 清理步骤
删除conda环境:
1
conda remove --name env_name --all
清理conda缓存:
1
conda clean --all
对于无法识别的环境,需要手动删除:
1
rm -rf /path/to/env
五、经验教训
5.1 版本选择
Python版本:
- 深度学习环境建议使用Python 3.10-3.11
- 避免使用最新的Python版本(如3.12)
CUDA版本:
- 确保CUDA版本与GPU驱动兼容
- 注意检查深度学习框架对CUDA版本的要求
5.2 最佳实践
使用独立的conda环境:
1
2
3
4
5
6
7
8
9### 创建新环境
conda create -n dl_env python=3.10
### 激活环境
conda activate dl_env
### 安装框架
pip install torch torchvision torchaudio
pip install tensorflow环境检查流程:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16### 1. 检查CUDA版本
nvcc -V
### 2. 检查GPU驱动
nvidia-smi
### 3. 检查深度学习框架
#### PyTorch
import torch
print(torch.cuda.is_available())
#### TensorFlow
import tensorflow as tf
with tf.device('/GPU:0'):
## # 运行测试计算
...
5.3 关键教训
- 不要在base环境中安装深度学习框架
- 安装前先检查各组件的版本兼容性
- 遇到环境问题时,创建新环境比修复旧环境更高效
- 保持良好的环境管理习惯,定期清理不用的环境和缓存
六、有用的命令汇总
1 |
|
七、特殊情况:ESP-IDF环境清理
8.1 问题发现和清理尝试
检查发现遗留的ESP-IDF环境:
1 |
|
尝试使用conda删除但失败:
1 |
|
8.2 解决方案
直接手动删除相关目录:
1 |
|
8.3 额外清理
检查并清理.bashrc
中的ESP-IDF相关配置:
1 |
|
结论
配置深度学习环境是一个复杂的过程,需要注意多个组件之间的版本兼容性。通过合理的环境管理和版本选择,可以避免很多不必要的问题。建议在开始配置之前先做好规划,使用独立的conda环境,并保持良好的环境管理习惯。
Ubuntu下深度学习环境配置历程和经验总结
https://blakehansen130.github.io/2024/11/19/Summarizing AI Assistant Conversation for Notes and Troubleshooting_2024-11-19T08-38-12/