2. 环境搭建
说实话,环境搭建是很多人入门时最头疼的一步。我见过太多同学卡在 CUDA 版本不对、PyTorch 装不上、依赖冲突这些坑里。别急,这一章我带你一步步走通。你跟着我的习惯来,基本不会出问题。
本章目标:装好 Anaconda → 配好 CUDA + cuDNN → 安装 PyTorch → 下载 YOLOv8 源码并装依赖。一套下来,你的电脑就能跑 YOLO 了。
2.1 Anaconda 安装:Python 环境管家
我个人习惯用 Anaconda 管理 Python 环境。为什么?因为它能隔离不同项目,互不干扰。你想想看,一个项目要 PyTorch 1.13,另一个要 2.0,没有虚拟环境的话,你只能干瞪眼。
2.1.1 下载与安装
- 去 Anaconda 官网(或者清华镜像)下载对应系统的安装包。
- Windows 用户直接双击 .exe,一路 Next。注意勾选 "Add Anaconda to my PATH environment variable"——虽然安装程序会警告,但我建议你勾上,省事。
- 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 为例):
- 下载 runfile(Linux)或 exe(Windows)。
- Linux 下执行:
sudo sh cuda_11.8.0_xxx.run,不要装驱动(只选 Toolkit)。 - 配置环境变量:在
~/.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 环境搭建知识体系
下面这张图帮你理清整个环境搭建的脉络:
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 不匹配。所以,版本号一定要严格对应,别偷懒。