2. 环境搭建与基线模型:PyTorch/TensorRT环境配置,YOLOv8/v9官方仓库下载与运行,使用COCO128子集快速验证
好,咱们正式开始动手。这一章的目标很明确:把环境搭起来,让YOLOv8和v9先跑通一个最小验证。说白了,就是先让模型能动,再谈怎么调优。
我见过不少同学一上来就调参数,结果发现环境都没配对,白白浪费半天时间。所以咱们先把地基打牢。
2.1 PyTorch环境配置
我个人习惯用Miniconda管理环境,干净、隔离、好清理。你想想看,如果每个项目都往系统Python里装包,不出三个月就乱成一锅粥。
推荐环境版本(我实测稳定的组合)
| 组件 | 推荐版本 | 备注 |
|---|---|---|
| Python | 3.10.x | 3.11以上部分包兼容性有问题 |
| PyTorch | 2.1.x / 2.2.x | CUDA 12.1配套版本 |
| CUDA | 12.1 / 11.8 | 看显卡驱动版本选 |
| cuDNN | 8.9+ | 跟CUDA版本匹配 |
创建环境的命令很简单:
conda create -n yolotune python=3.10 -y
conda activate yolotune
# 安装PyTorch(以CUDA 12.1为例)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
装完之后,记得验证一下CUDA是否可用:
python -c "import torch; print(torch.cuda.is_available()); print(torch.__version__)"
如果输出 True,说明环境没问题。我曾经遇到过装了CUDA版PyTorch但驱动版本太老的情况,结果torch.cuda.is_available()返回False,排查了半天才发现是驱动没更新。
避坑指南:千万不要用conda默认源装PyTorch,那个版本通常滞后。直接用PyTorch官网的pip命令最稳。
2.2 TensorRT环境配置
TensorRT是NVIDIA的推理优化引擎,说白了就是把模型编译成显卡能跑得最快的格式。咱们后面做性能优化时离不开它。
安装TensorRT有两种方式:
- 通过pip安装(推荐,省事)
- 通过deb/rpm包安装(适合服务器环境)
pip方式最简单:
pip install tensorrt==8.6.1
# 验证安装
python -c "import tensorrt as trt; print(trt.__version__)"
如果输出版本号,说明装好了。嗯,这里要注意:TensorRT版本必须跟CUDA版本匹配。我建议直接用TensorRT 8.6 + CUDA 12.1这个组合,兼容性最好。
小技巧:如果你用的是Docker,可以直接拉NVIDIA官方镜像:nvcr.io/nvidia/tensorrt:23.12-py3,里面环境都配好了,省去很多麻烦。
2.3 YOLOv8官方仓库下载与运行
Ultralytics官方把YOLOv8封装得很友好,几行代码就能跑起来。我个人觉得这是目前最易用的目标检测框架之一。
# 克隆仓库
git clone https://github.com/ultralytics/ultralytics
cd ultralytics
# 安装依赖
pip install -e .
# 下载预训练模型
wget https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt
跑一个快速推理测试:
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'
如果看到输出结果里有检测框,说明YOLOv8已经跑通了。整个过程不超过5分钟。
2.4 YOLOv9官方仓库下载与运行
YOLOv9是2024年的新工作,引入了可编程梯度信息(PGI)的概念。它的仓库结构和v8不太一样,需要单独配置。
git clone https://github.com/WongKinYiu/yolov9
cd yolov9
# 安装依赖
pip install -r requirements.txt
# 下载预训练模型
wget https://github.com/WongKinYiu/yolov9/releases/download/v0.1/yolov9-c.pt
运行推理:
python detect.py --weights yolov9-c.pt --source data/images/bus.jpg
v8 vs v9 关键差异
| 对比项 | YOLOv8 | YOLOv9 |
|---|---|---|
| 核心创新 | Anchor-Free + 解耦头 | PGI + GELAN |
| 推理速度 | 快(nano模型~1ms) | 稍慢(但精度更高) |
| 训练难度 | 低,开箱即用 | 中等,需要调参 |
| 部署生态 | 成熟(ONNX/TensorRT支持好) | 较新,部分工具链待完善 |
2.5 使用COCO128子集快速验证
COCO128是从COCO2017中随机抽取的128张图片,专门用来快速验证训练流程。你想想看,如果用完整COCO(11万张)来调试,一次训练就要跑一天,根本没法快速迭代。
下载COCO128:
# 方式一:直接下载
wget https://ultralytics.com/assets/coco128.zip
unzip coco128.zip -d datasets/
# 方式二:用Ultralytics自动下载
yolo train data=coco128.yaml model=yolov8n.pt epochs=5
用YOLOv8训练5个epoch看看效果:
yolo train data=coco128.yaml model=yolov8n.pt epochs=5 imgsz=640 batch=16
训练完成后,查看结果:
# 查看训练曲线
tensorboard --logdir runs/detect/train
# 或者直接看结果图片
ls runs/detect/train/val_batch0_pred.jpg
验证标准:5个epoch后,mAP@0.5应该能达到0.3-0.4左右。如果远低于这个值,说明环境或数据有问题。
2.6 本章知识体系
下面这张图把本章的核心流程串起来了,你可以对照着检查自己的环境搭建进度:
2.7 常见问题与排查
我在带团队时发现,环境搭建阶段最容易出问题的就这几个地方:
- CUDA版本不匹配:PyTorch、TensorRT、显卡驱动三者的CUDA版本必须一致。用
nvidia-smi查看驱动支持的CUDA版本。 - 内存不足:COCO128虽然只有128张图,但默认的batch size如果设太大,显存不够会直接OOM。建议从batch=8开始试。
- 下载超时:国内网络问题,可以用镜像源或者提前下载好模型文件。
避坑指南:我曾经在Windows上配环境时,TensorRT死活装不上,后来发现是Visual Studio的C++运行时没装。如果你用Windows,记得先装VS Build Tools。
好,到这一步,你的环境应该已经搭好了,YOLOv8和v9都能跑通,COCO128也能正常训练。接下来咱们就可以进入真正的精度调优环节了。