2. 环境搭建:从零开始,把工具箱备齐

说实话,很多同学学 YOLO 卡住的地方不是算法本身,而是环境搭建。我见过太多人花了两三天装环境,最后心态崩了。其实没那么可怕,咱们一步步来。

这一章,我会带你装好 Anaconda、配好 CUDA 和 cuDNN、装 PyTorch,最后把 YOLO 的依赖库搞定。嗯,跟着我的节奏走,半小时内搞定。

YOLO 环境搭建流程 Anaconda 安装 CUDA 安装 cuDNN 配置 PyTorch 安装 YOLO 依赖库 建议顺序:Anaconda → CUDA → cuDNN → PyTorch → YOLO 依赖库,不要跳步

2.1 Anaconda 安装:Python 环境管家

我个人习惯用 Anaconda 来管理 Python 环境。为什么?因为它能让你同时维护多个互不干扰的 Python 环境。你想想看,做 YOLOv5 用一个环境,做 YOLOv8 用另一个环境,互不打架,多省心。

💡 小提示: 下载时选 Anaconda3 最新版(Python 3.9+),别选 Python 2.7 的旧版。我见过有人装了个 Python 2.7 的 Anaconda,折腾半天才发现不兼容。

安装步骤很简单:

  1. 去官网下载 Anaconda3 安装包(Windows 选 .exe,Linux 选 .sh)
  2. 一路默认安装,但记得勾选「Add Anaconda3 to my PATH environment variable」
  3. 装完后打开终端(cmd 或 PowerShell),输入 conda --version 验证
# 验证安装
conda --version
# 输出示例:conda 23.7.4

# 创建 YOLO 专用环境(强烈建议)
conda create -n yolo_env python=3.9
conda activate yolo_env
⚠️ 注意: 我曾经遇到过 conda 激活环境后 pip 还是全局的坑。解决办法:激活环境后,用 which pip 或 where pip 确认路径在环境目录下。

2.2 CUDA 与 cuDNN:GPU 加速的钥匙

说白了,CUDA 是 NVIDIA 的并行计算平台,cuDNN 是专门为深度学习优化的加速库。没有它们,你的 YOLO 训练只能用 CPU 跑,那速度……嗯,你会怀疑人生的。

先确认你的显卡支持 CUDA:

  • NVIDIA 显卡(GTX 900 系列及以上基本都行)
  • 在终端输入 nvidia-smi 查看驱动版本和最高支持的 CUDA 版本
组件 推荐版本 说明
NVIDIA 驱动 ≥ 525.60.13 驱动版本决定 CUDA 上限
CUDA Toolkit 11.8 或 12.1 PyTorch 官方推荐版本
cuDNN 8.9.7 对应 CUDA 版本 需注册 NVIDIA 开发者账号下载

安装步骤:

  1. 从 NVIDIA 官网下载 CUDA Toolkit 11.8(exe/local 安装包)
  2. 双击安装,选「自定义」→ 只勾选「CUDA」组件,别装驱动(避免覆盖)
  3. 下载 cuDNN 压缩包,解压后把 bin、include、lib 文件夹复制到 CUDA 安装目录
  4. 添加环境变量:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin
# 验证 CUDA
nvcc --version
# 输出示例:Cuda compilation tools, release 11.8, V11.8.89

# 验证 cuDNN(在 CUDA 安装目录下)
.\bin\cudnn_version.exe
# 输出示例:cuDNN Version 8.9.7
🔑 关键点: CUDA 版本必须与 PyTorch 版本匹配。我建议你装 CUDA 11.8,因为 PyTorch 1.13~2.1 都支持它,兼容性最好。

2.3 PyTorch 安装:深度学习引擎

PyTorch 是 YOLO 的底层框架。装 PyTorch 其实就一行命令,但版本选错会出大问题。我记得有一次帮同事排查,他装了 CPU 版的 PyTorch,训练时 GPU 占用率一直是 0%……

去 PyTorch 官网(pytorch.org)选对应配置:

  • PyTorch Build:Stable(稳定版)
  • Your OS:Windows / Linux / macOS
  • Package:Pip(推荐)
  • Compute Platform:CUDA 11.8
# 激活环境后执行(以 CUDA 11.8 为例)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

# 验证 GPU 是否可用
python -c "import torch; print(torch.cuda.is_available())"
# 输出 True 表示成功
💡 小技巧: 如果下载慢,可以加国内镜像源:pip install torch torchvision torchaudio -f https://mirrors.aliyun.com/pytorch-wheels/cu118/

2.4 YOLO 依赖库安装:补齐最后一块拼图

YOLO 项目本身依赖一些常用库,比如 OpenCV、NumPy、Matplotlib、tqdm 等。你想想看,没有 OpenCV 怎么读图片?没有 tqdm 怎么看训练进度条?

我个人习惯用 requirements.txt 批量安装,省事:

# 创建 requirements.txt 文件,内容如下:
opencv-python==4.8.1.78
numpy==1.24.3
matplotlib==3.7.2
tqdm==4.66.1
pillow==10.0.1
pyyaml==6.0.1
seaborn==0.12.2
pandas==2.0.3

# 批量安装
pip install -r requirements.txt

或者直接用 YOLO 官方仓库的 requirements.txt:

# 克隆 YOLOv5 仓库(后续章节会细讲)
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
pip install -r requirements.txt
⚠️ 避坑指南: 我曾经遇到过 OpenCV 版本冲突导致 imshow 报错。解决办法:用 pip install opencv-python==4.8.1.78 固定版本,别装最新版。

2.5 环境验证:确保一切就绪

装完别急着跑,先做个全面体检。我习惯写一个简单的测试脚本:

# test_env.py
import torch
import cv2
import numpy as np

print("PyTorch 版本:", torch.__version__)
print("CUDA 可用:", torch.cuda.is_available())
print("GPU 数量:", torch.cuda.device_count())
if torch.cuda.is_available():
    print("GPU 名称:", torch.cuda.get_device_name(0))
print("OpenCV 版本:", cv2.__version__)
print("NumPy 版本:", np.__version__)

# 跑一个简单的张量运算测试
x = torch.randn(3, 3).cuda()
y = torch.randn(3, 3).cuda()
z = x @ y
print("GPU 计算测试通过:", z.shape)

运行 python test_env.py,如果所有输出都正常,恭喜你,环境搭建完成!

✅ 环境检查清单:
  • conda 环境激活成功
  • nvcc --version 显示 CUDA 11.8
  • cuDNN 版本验证通过
  • torch.cuda.is_available() 返回 True
  • 所有依赖库版本匹配

嗯,到这里环境就全搭好了。你可能会问:「为什么我装 CUDA 12.1 不行?」其实也行,但 PyTorch 对 CUDA 12.1 的支持还在完善中,我建议你跟着主流走,少踩坑。