1. 课程导学与环境准备:YOLOv11 模型压缩与部署全景图
各位同学,欢迎来到《YOLOv11 模型压缩与部署工程实战》的第一章。
我是这门课的主讲。在 AI 部署这个行当摸爬滚打了七八年,踩过的坑比写过的代码还多。今天咱们不聊虚的,直接进入正题——先看看这门课到底要带你走一条什么样的路,以及你手头的机器需要准备些什么。
1.1 这门课到底讲什么?
说白了,就是教你如何把一个训练好的 YOLOv11 模型,从「实验室里的玩具」变成「能跑在真实设备上的生产力工具」。
你想想看,一个模型在 GPU 上跑 30 FPS 不算本事,能在 Jetson 上跑 60 FPS 才算入门。我见过太多团队,模型精度刷得挺高,一到部署就傻眼——要么速度不够,要么显存爆了,要么算子不支持。嗯,这门课就是来解决这些问题的。
课程核心目标:
- 掌握 YOLOv11 的剪枝、量化、蒸馏三大压缩技术
- 打通 PyTorch → ONNX → TensorRT 的完整部署链路
- 在 NVIDIA Jetson 边缘设备上实现实时推理
我个人习惯把模型部署比作「给模型减肥再装车」。先剪掉多余的参数(剪枝),再把浮点数换成整数(量化),最后用 TensorRT 这个「高性能引擎」把它跑起来。每一步都有坑,但每一步也都有章可循。
1.2 YOLOv11 部署全景图
先给你一张全景图,让你对整条链路有个直观印象。这张图我画了很多遍,每次给新团队培训都用它。
这张图你看懂了吗?从左到右,就是一条完整的部署流水线。我们这门课 30 章,就是沿着这条线一步步往下走。
1.3 软硬件环境配置
好,理论讲完了,咱们来点实际的。环境配不好,后面全白搭。我曾经见过一个学员,花了两天配环境,结果 CUDA 版本和 PyTorch 对不上,编译 TensorRT 时直接崩溃。所以这一节,我手把手带你配。
1.3.1 硬件要求
| 组件 | 最低配置 | 推荐配置 |
|---|---|---|
| GPU | NVIDIA GTX 1060 (6GB) | NVIDIA RTX 3060 / A4000 |
| CPU | 4 核 2.5 GHz | 8 核 3.0 GHz 以上 |
| 内存 | 16 GB | 32 GB 或以上 |
| 硬盘 | 50 GB 空闲 | SSD 256 GB 以上 |
| 操作系统 | Ubuntu 20.04 | Ubuntu 22.04 / Windows 11 |
注意:如果你用的是笔记本电脑,务必确认是 NVIDIA 独立显卡,且驱动已更新到最新版。集成显卡跑不了 CUDA。
1.3.2 软件栈版本对照
这里我直接给你一个经过验证的版本组合。别自己乱试,我踩过的坑你没必要再踩一遍。
| 软件 | 推荐版本 | 说明 |
|---|---|---|
| CUDA | 11.8 或 12.1 | TensorRT 8.6+ 推荐 CUDA 11.8 |
| cuDNN | 8.9.7 | 与 CUDA 版本严格对应 |
| PyTorch | 2.1.0 | 支持 CUDA 11.8 / 12.1 |
| ONNX | 1.15.0 | 配合 onnxruntime-gpu 1.17 |
| TensorRT | 8.6.1 | Python API + C++ API |
| Python | 3.10 | 不要用 3.12,很多库还不支持 |
1.3.3 安装步骤(精简版)
下面是我个人习惯的安装顺序。按这个来,基本不会出问题。
- 安装 NVIDIA 驱动:
nvidia-smi确认驱动版本 ≥ 525 - 安装 CUDA Toolkit:选择 runfile 或 deb 方式,配置环境变量
- 安装 cuDNN:解压后复制到 CUDA 目录
- 创建 conda 环境:
conda create -n yolov11 python=3.10 - 安装 PyTorch:
pip install torch==2.1.0 torchvision==0.16.0 --index-url https://download.pytorch.org/whl/cu118 - 安装 ONNX 工具链:
pip install onnx onnxruntime-gpu - 安装 TensorRT:从 NVIDIA 官网下载 .tar 包,解压后配置
LD_LIBRARY_PATH
小技巧:安装完成后,运行以下代码验证环境:
import torch
print(torch.cuda.is_available()) # 应输出 True
print(torch.__version__) # 应输出 2.1.0
import onnx
print(onnx.__version__) # 应输出 1.15.0
import tensorrt as trt
print(trt.__version__) # 应输出 8.6.1
1.3.4 常见踩坑记录
这里我列几个我亲自遇到过的问题,你遇到了别慌。
- CUDA 版本不匹配:PyTorch 编译时用的 CUDA 版本和系统安装的不一致。解决办法:用
conda install cudatoolkit=11.8在 conda 环境内再装一份。 - TensorRT 找不到库:忘记设置
LD_LIBRARY_PATH。在~/.bashrc里加上export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/TensorRT/lib。 - ONNX 导出失败:模型中用了不支持的算子。可以用
onnxsim简化模型,或者手动替换算子。
重要提醒:千万不要用 pip install tensorrt 直接装!那个版本通常很旧,而且不包含 C++ 库。一定要从 NVIDIA 官网下载 .tar 包手动安装。
1.4 本章小结
这一章我们做了三件事:
- 看清了 YOLOv11 部署的全景图——从训练到压缩,从 ONNX 到 TensorRT
- 明确了课程目标——让你真正能动手部署,而不是纸上谈兵
- 配好了环境——这是后面所有实验的基础