084、YOLOv11改进-QAT量化感知训练与INT8部署实战——即插即用量化模块实现推理速度提升2倍且精度损失1%一、从一次线上事故说起去年年底,我把YOLOv11部署到一台边缘设备上,FP16推理跑得还算流畅,但客户要求同时跑三个模型——检测、分割、OCR。FP16模式下显存直接爆了,帧率掉到个位数。我试着直接转INT8,结果mAP从0.723掉到0.581,检测框开始乱飘,客户当场就炸了。后来复盘才发现,问题出在“直接转”这三个字上。PyTorch的torch.quantization接口确实方便,但YOLOv11这种带大量BN层和SiLU激活的模型,直接PTQ(Post-Training Quantization)就是找死。SiLU在INT8下精度损失严重,BN层的统计量在量化后也会偏移。那次事故让我花了整整两周,手撸了一套QAT(Quantization-Aware Training)方案。今天这篇笔记,就是把当时踩过的坑、试过的方案、最终落地的代码,原原本本拆给你看。二、YOLOv11量化为什么这么难搞先说说YOLOv11的架构特点。它用了C2f模块替代了之前的C3,内部大量使用SiLU激活函数。SiLU在FP32下表现很好,但量化到INT8时,它的非线性特性会导致严重的精度损失。我做过对比实验:同样用PTQ,把SiLU换成ReLU的模型精度损失只有2.3%,而原版SiLU损失了4.8%。另一个坑是BN层的折叠。YOLOv11的BN层参数在训练