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有两种方式:

  1. 通过pip安装(推荐,省事)
  2. 通过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 本章知识体系

下面这张图把本章的核心流程串起来了,你可以对照着检查自己的环境搭建进度:

环境搭建与基线模型验证流程 环境搭建与基线模型验证流程 阶段一:环境准备 Python 3.10 PyTorch 2.1+ TensorRT 8.6 阶段二:仓库下载 YOLOv8 YOLOv9 阶段三:验证 COCO128子集 关键指标:5个epoch后mAP@0.5应达到0.3-0.4,推理时间<5ms(GPU) ① 创建conda环境 ② 安装PyTorch ③ 安装TensorRT ④ 下载仓库 ⑤ 下载预训练模型 ⑥ 运行推理测试 ⑦ COCO128训练验证

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也能正常训练。接下来咱们就可以进入真正的精度调优环节了。