环境搭建:工欲善其事,必先利其器
说实话,我见过太多同学在 YOLO 环境上卡了一整天。明明代码没问题,就是跑不起来。嗯,这其实不是你的错,是环境没搭对。
我个人习惯把环境搭建分成四步走:Anaconda → 虚拟环境 → CUDA/cuDNN → PyTorch。每一步都有坑,我踩过,所以帮你提前填上。
核心原则:版本匹配 > 最新版本。别追求最新,追求稳定。
2.1 Anaconda:Python 环境管家
为什么非要用 Anaconda?你想想看,YOLO 项目依赖几十个包,版本稍微不对就报错。Anaconda 帮你隔离环境,互不干扰。
下载安装:去官网下载对应系统的安装包。我建议选 Python 3.8+ 的版本,太老或太新都可能出问题。
我的习惯:安装时勾选「Add Anaconda to PATH」,省得后面手动配环境变量。Windows 用户尤其注意这点。
安装完成后,打开终端验证:
conda --version
# 输出类似:conda 23.7.4
看到版本号,说明 Anaconda 装好了。
2.2 创建虚拟环境:给 YOLO 一个独立空间
我见过有人把所有项目都装在 base 环境里。结果呢?一个项目升级了 PyTorch,另一个项目直接崩了。虚拟环境就是用来解决这个问题的。
创建 YOLO 专属环境:
conda create -n yolo_env python=3.8
conda activate yolo_env
环境名 yolo_env 你可以随便改,但建议见名知意。
| 命令 | 作用 | 常用参数 |
|---|---|---|
conda create -n 环境名 python=版本 |
创建虚拟环境 | -n 指定名称 |
conda activate 环境名 |
激活环境 | 进入该环境 |
conda deactivate |
退出环境 | 回到 base |
conda env list |
查看所有环境 | 显示路径 |
我曾经踩过的坑:创建环境时忘了指定 Python 版本,结果装了 Python 3.12,很多库不兼容。建议统一用 Python 3.8 - 3.10,YOLOv8 官方推荐 3.8+。
2.3 CUDA 与 cuDNN:GPU 加速的灵魂
说白了,CUDA 是 NVIDIA 的并行计算平台,cuDNN 是专门为深度学习优化的加速库。没有它们,YOLO 只能用 CPU 跑,慢到怀疑人生。
第一步:检查你的显卡
# Windows 打开命令提示符
nvidia-smi
# Linux / macOS
nvidia-smi
输出中会显示 CUDA Version,比如 11.8 或 12.1。这个版本号决定了你能装什么版本的 PyTorch。
第二步:安装 CUDA Toolkit
去 NVIDIA 官网下载对应版本的 CUDA Toolkit。我建议选 CUDA 11.8,兼容性最好,YOLOv8 官方测试也是基于这个版本。
我的经验:安装时选择「自定义安装」,只勾选 CUDA 核心组件,别装全家桶。省空间,也省时间。
第三步:配置 cuDNN
cuDNN 需要注册 NVIDIA 开发者账号才能下载。下载后解压,把三个文件夹(bin、include、lib)复制到 CUDA 安装目录下。
Windows 默认路径:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8
验证 cuDNN 是否生效:
# 查看 cuDNN 版本
cat "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\include\cudnn_version.h" | find "CUDNN_MAJOR"
看到版本号,说明 cuDNN 配置成功。
2.4 PyTorch 安装:最后一步
PyTorch 的安装命令,官网会帮你生成。去 pytorch.org,选择你的配置:
- PyTorch Build:Stable(稳定版)
- Your OS:Windows / Linux / macOS
- Package:Pip 或 Conda(我推荐 Pip)
- CUDA:选择你刚才装的版本,比如 11.8
生成的命令类似:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
注意:千万别用 pip install torch 不加参数,那样会装 CPU 版本。你想想看,花了几千块买的显卡,结果跑在 CPU 上,多冤啊。
安装完成后,验证环境:
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"
输出示例:
2.1.0+cu118
True
True 代表 GPU 可用,环境搭建成功。
2.5 常见问题与避坑指南
| 问题 | 原因 | 解决方案 |
|---|---|---|
torch.cuda.is_available() 返回 False |
CUDA 版本不匹配 / 没装 GPU 版 PyTorch | 检查 CUDA 版本,重新安装对应 PyTorch |
| 安装速度慢 / 超时 | 默认源在国外 | 换国内镜像源:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple |
| conda 命令找不到 | 没加到 PATH | 手动添加 Anaconda 的 Scripts 目录到环境变量 |
| nvidia-smi 报错 | 显卡驱动没装 / 版本太老 | 去 NVIDIA 官网更新驱动 |
一句话总结:环境搭建的核心是版本匹配。CUDA 版本 → cuDNN 版本 → PyTorch 版本,三者必须对齐。别偷懒,每一步都验证一下,后面能省你三天时间。