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

说实话,环境搭建是很多人入门时最头疼的一步。我见过太多同学卡在 CUDA 版本不对、PyTorch 装不上、依赖冲突这些坑里。别急,这一章我带你一步步走通。你跟着我的习惯来,基本不会出问题。

本章目标:装好 Anaconda → 配好 CUDA + cuDNN → 安装 PyTorch → 下载 YOLOv8 源码并装依赖。一套下来,你的电脑就能跑 YOLO 了。

2.1 Anaconda 安装:Python 环境管家

我个人习惯用 Anaconda 管理 Python 环境。为什么?因为它能隔离不同项目,互不干扰。你想想看,一个项目要 PyTorch 1.13,另一个要 2.0,没有虚拟环境的话,你只能干瞪眼。

2.1.1 下载与安装

  1. 去 Anaconda 官网(或者清华镜像)下载对应系统的安装包。
  2. Windows 用户直接双击 .exe,一路 Next。注意勾选 "Add Anaconda to my PATH environment variable"——虽然安装程序会警告,但我建议你勾上,省事。
  3. Linux / macOS 用户用命令行:bash Anaconda3-xxx-Linux-x86_64.sh,然后按提示走。

我的习惯:安装完后,立刻换国内源。用 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/,下载速度快很多。

2.1.2 验证安装

打开终端(Windows 用 Anaconda Prompt),输入:

conda --version
python --version

能看到版本号,就说明装好了。嗯,这里要注意:如果 conda 命令找不到,八成是 PATH 没配好。Windows 用户去系统环境变量里手动加一下 Anaconda 的 Scripts 目录就行。

2.2 CUDA 与 cuDNN 配置:GPU 加速的关键

YOLOv8 训练时,GPU 比 CPU 快几十倍。CUDA 是 NVIDIA 的并行计算平台,cuDNN 是深度学习加速库。说白了,没有它们,你的显卡就是个摆设。

2.2.1 检查显卡与驱动

先看看你的显卡支不支持 CUDA:

nvidia-smi

这个命令会显示驱动版本、CUDA 版本、显存使用情况。我遇到过有人装了半天 CUDA,结果发现显卡是 GT 710,计算能力太低,白忙活一场。所以,先确认一下。

避坑指南:我曾经在 Ubuntu 上装 CUDA 11.8,结果驱动版本是 470,不兼容。nvidia-smi 显示的 CUDA Version 是 "11.4",那是驱动支持的最高版本,不是实际装好的。记住:驱动版本必须 ≥ CUDA 工具包要求的版本。

2.2.2 安装 CUDA Toolkit

去 NVIDIA 官网下载 CUDA Toolkit。我建议选 CUDA 11.8 或 12.1,这两个版本 PyTorch 支持得最好。

PyTorch 版本 推荐 CUDA 推荐 cuDNN
1.13.x 11.7 / 11.8 8.5 / 8.6
2.0.x 11.8 8.7
2.1.x 12.1 8.9

安装步骤(以 CUDA 11.8 为例):

  1. 下载 runfile(Linux)或 exe(Windows)。
  2. Linux 下执行:sudo sh cuda_11.8.0_xxx.run,不要装驱动(只选 Toolkit)。
  3. 配置环境变量:在 ~/.bashrc 里加:
export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH

然后 source ~/.bashrc,用 nvcc --version 验证。

2.2.3 配置 cuDNN

cuDNN 需要注册 NVIDIA 开发者账号才能下载。下载后解压,把文件复制到 CUDA 目录:

# Linux 示例
sudo cp cudnn-linux-x86_64-8.6.0.163_cuda11-archive/include/cudnn*.h /usr/local/cuda-11.8/include/
sudo cp cudnn-linux-x86_64-8.6.0.163_cuda11-archive/lib/libcudnn* /usr/local/cuda-11.8/lib64/
sudo chmod a+r /usr/local/cuda-11.8/include/cudnn*.h /usr/local/cuda-11.8/lib64/libcudnn*

验证 cuDNN 版本:

cat /usr/local/cuda-11.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

我的经验:Windows 下 cuDNN 更简单——解压后把 bin、include、lib 三个文件夹直接覆盖到 CUDA 安装目录(默认在 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8)。

2.3 PyTorch 安装:深度学习框架就位

PyTorch 是 YOLOv8 的基石。安装前,先创建一个干净的虚拟环境:

conda create -n yolov8 python=3.10 -y
conda activate yolov8

然后去 PyTorch 官网 选对应配置。我建议用 pip 安装,conda 有时会慢:

# CUDA 11.8
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

# 或者 CUDA 12.1
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

验证安装:

python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"

如果输出 True,恭喜你,GPU 加速已经就绪。如果输出 False,检查 CUDA 版本是否匹配,或者驱动有没有装好。

避坑指南:我曾经在 Windows 上遇到 PyTorch 装好后,torch.cuda.is_available() 返回 False。查了半天,发现是 Visual Studio 的 C++ 生成工具没装。去装个 "Microsoft Visual C++ Redistributable" 就好了。

2.4 YOLOv8 源码下载与依赖安装

Ultralytics 官方把 YOLOv8 做成了一个 Python 包,但为了实战,我建议你直接克隆源码,方便修改和调试。

2.4.1 克隆仓库

git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics

如果你没有 git,也可以去 GitHub 页面下载 ZIP 包。

2.4.2 安装依赖

YOLOv8 的依赖写在 requirements.txt 里:

pip install -r requirements.txt

核心依赖包括:

  • torch:深度学习框架
  • numpy:数值计算
  • opencv-python:图像处理
  • matplotlib:可视化
  • pillow:图片读写
  • tqdm:进度条
  • pyyaml:配置文件解析
  • seaborn:统计图表

我的习惯:装完依赖后,跑一下官方提供的测试脚本:

yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'

如果能成功检测出图片中的物体,说明环境完全就绪了。

2.5 环境搭建知识体系

下面这张图帮你理清整个环境搭建的脉络:

YOLOv8 环境搭建知识体系 环境搭建总览 Anaconda 虚拟环境管理 Python 版本隔离 CUDA + cuDNN GPU 加速计算 驱动版本匹配 PyTorch 深度学习框架 CUDA 版本对应 YOLOv8 源码 Git 克隆 / ZIP 下载 依赖安装 验证:yolo predict 测试 核心原则 1. 版本匹配:CUDA 版本 → PyTorch 版本 → cuDNN 版本,三者必须兼容 2. 环境隔离:每个项目用独立的 conda 环境,避免依赖冲突 3. 验证先行:每装完一个组件,立刻验证,不要攒到最后一起排查

2.6 常见问题与排查

环境搭建过程中,我遇到过不少问题。这里列几个高频的:

问题 原因 解决方案
nvcc --version 找不到 环境变量没配 检查 PATH 是否包含 CUDA 的 bin 目录
torch.cuda.is_available() 为 False CUDA 版本不匹配 / 驱动太旧 用 nvidia-smi 检查驱动,重装匹配的 CUDA
pip 安装超时 网络问题 换国内源:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple
yolo 命令找不到 未激活虚拟环境 conda activate yolov8

最后提醒:我曾经在 Windows 上遇到一个诡异问题——PyTorch 装好了,但训练时显存一直涨不释放。后来发现是 cuDNN 版本和 CUDA 不匹配。所以,版本号一定要严格对应,别偷懒。