深度学习环境搭建:Anaconda安装、CUDA与cuDNN配置、PyTorch框架安装、验证环境
做工业视觉项目,环境搭建是第一道坎。我见过不少同学,算法写得挺好,结果卡在环境配置上,一折腾就是两三天。说实话,这事没那么玄乎,但确实有几个关键点必须踩对。
这一章,咱们就把深度学习环境从头捋一遍。从Anaconda到CUDA,再到PyTorch,最后验证整个链路通不通。跟着我的节奏来,半小时内搞定。
2.1 为什么需要这套环境?
先搞清楚一件事:我们为什么要装这么多东西?
- Anaconda:Python的包管理器和虚拟环境工具。说白了,就是让你能同时管理多个项目,每个项目用不同的Python版本和依赖包,互不干扰。
- CUDA:NVIDIA的并行计算平台。GPU加速全靠它。没有CUDA,你的模型训练会慢到怀疑人生。
- cuDNN:CUDA的深度神经网络加速库。专门为卷积、池化这些操作做了优化。装上它,训练速度能再快个30%-50%。
- PyTorch:我们用的深度学习框架。YOLO系列模型基本都是基于PyTorch实现的。
核心逻辑:Anaconda管理Python环境 → CUDA提供GPU计算能力 → cuDNN加速深度学习运算 → PyTorch调用这些底层能力来训练模型。
下面这张图,把整个依赖关系画清楚了。
2.2 Anaconda安装
我个人习惯用Miniconda,它比完整版Anaconda轻量很多,只装必要的包。但如果你是新手,直接装Anaconda也行,省心。
2.2.1 下载与安装
- 去官网下载对应系统的安装包(Windows/Linux/Mac)。
- 双击安装,一路默认选项就行。
- 关键一步:安装过程中,勾选"Add Anaconda to my PATH environment variable"。我早期没勾这个,后面每次都要手动激活环境,烦得很。
小技巧:安装完成后,打开终端(Windows用Anaconda Prompt),输入 conda --version,看到版本号就说明装好了。
2.2.2 创建虚拟环境
每个项目最好单独建一个环境。我习惯用Python 3.8,因为PyTorch对它的支持最稳定。
# 创建环境,指定Python版本
conda create -n yolo_env python=3.8
# 激活环境
conda activate yolo_env
# 退出环境
conda deactivate
注意:激活环境后,终端前面会出现 (yolo_env) 字样。如果没看到,说明环境没激活成功,后面装的包都会跑到base环境里。
2.3 CUDA与cuDNN配置
这是最容易出坑的地方。我曾经在项目里因为CUDA版本不匹配,折腾了整整一个下午。你想想看,训练跑不起来,报错信息又看不懂,多崩溃。
2.3.1 检查GPU和驱动
先确认你的电脑有没有NVIDIA显卡,以及驱动版本够不够新。
# 查看GPU信息
nvidia-smi
这个命令会显示GPU型号、驱动版本、CUDA版本。注意看右上角的"CUDA Version",它表示你的驱动支持的最高CUDA版本。比如显示11.7,那你装CUDA 11.7或更低版本都行。
| GPU型号 | 推荐CUDA版本 | 备注 |
|---|---|---|
| RTX 3090/4090 | 11.8 或 12.1 | 算力8.6以上,支持最新特性 |
| RTX 2080 Ti | 11.3 - 11.8 | 经典卡,兼容性好 |
| GTX 1080 Ti | 10.2 - 11.3 | 老卡,别装太高版本 |
| Tesla T4 | 11.8 | 云端常用,稳定 |
2.3.2 安装CUDA
去NVIDIA官网下载对应版本的CUDA Toolkit。我建议装11.8,因为PyTorch 2.0对它的支持最成熟。
- 选择操作系统和安装包类型(推荐exe本地安装)。
- 安装时选"自定义",只勾选"CUDA"组件,其他不用装。
- 安装完成后,打开终端输入
nvcc --version,看到版本号就对了。
避坑指南:我曾经装完CUDA后,nvcc命令找不到。原因是环境变量没配好。手动把 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin 加到PATH里就行。
2.3.3 配置cuDNN
cuDNN不需要安装,解压后把文件复制到CUDA目录就行。
- 去NVIDIA官网下载cuDNN(需要注册账号)。选择与CUDA 11.8匹配的版本。
- 解压后得到三个文件夹:bin、include、lib。
- 把它们复制到CUDA安装目录(比如
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8)。
验证方法:进入 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\extras\demo_suite,打开终端运行 bandwidthTest.exe。看到"Result = PASS"就说明cuDNN配置成功了。
2.4 PyTorch框架安装
PyTorch安装其实是最简单的一步。关键是要选对版本和安装方式。
2.4.1 选择版本
去PyTorch官网(pytorch.org),选择对应的配置:
- PyTorch Build:Stable(稳定版)
- Your OS:根据你的系统选
- Package:Pip(推荐)
- CUDA:11.8(跟你前面装的一致)
官网会生成一条安装命令,类似这样:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
注意:千万别用 conda install 装PyTorch。我试过,conda源里的PyTorch版本经常滞后,而且容易跟pip包冲突。用pip装最干净。
2.4.2 安装过程
激活你的虚拟环境,然后执行上面的命令。PyTorch大概1-2GB,下载需要几分钟。如果网速慢,可以加个国内镜像:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 -i https://pypi.tuna.tsinghua.edu.cn/simple
2.5 验证环境
装完别急着跑。先写几行代码,确认整个链路是通的。
2.5.1 验证PyTorch和CUDA
import torch
# 查看PyTorch版本
print("PyTorch版本:", torch.__version__)
# 查看CUDA是否可用
print("CUDA是否可用:", torch.cuda.is_available())
# 查看CUDA版本
print("CUDA版本:", torch.version.cuda)
# 查看GPU数量
print("GPU数量:", torch.cuda.device_count())
# 查看GPU名称
if torch.cuda.is_available():
print("GPU名称:", torch.cuda.get_device_name(0))
如果输出类似下面这样,说明环境没问题:
PyTorch版本: 2.0.1+cu118
CUDA是否可用: True
CUDA版本: 11.8
GPU数量: 1
GPU名称: NVIDIA GeForce RTX 3090
2.5.2 跑一个简单的张量运算
import torch
# 在GPU上创建两个张量
a = torch.randn(1000, 1000).cuda()
b = torch.randn(1000, 1000).cuda()
# 矩阵乘法
c = torch.mm(a, b)
print("张量运算成功,结果形状:", c.shape)
验证通过的标准:torch.cuda.is_available() 返回 True,并且GPU上的张量运算能正常执行。如果返回 False,检查CUDA版本是否匹配,或者驱动是否更新。
2.5.3 常见问题排查
| 问题 | 原因 | 解决方法 |
|---|---|---|
| CUDA不可用 | 驱动版本太低或CUDA没装对 | 更新驱动,重装CUDA |
| PyTorch找不到GPU | PyTorch版本与CUDA不匹配 | 卸载重装对应版本的PyTorch |
| cuDNN报错 | cuDNN文件没复制对位置 | 检查bin/include/lib是否在CUDA目录下 |
| 内存不足 | GPU显存不够 | 减小batch size,或者换大显存显卡 |
我的经验:如果遇到"CUDA out of memory"错误,别慌。先看看是不是有其他程序占用了显存。用 nvidia-smi 查看,把没用的进程杀掉就行。
环境搭好了,后面就可以正式开始YOLO的实战了。记住,环境配置是基础,基础打牢了,后面才能跑得稳。嗯,这一章就到这儿。