pytorch 48 基于voc2012数据集对yolov10s模型进行剪枝尝试
对yolov10s模型进行剪枝,以voc2012数据集做研究对象(训练数据 voc2012 train; 测试数据 voc2012 val),移除50%的通道,28.5 GFLOPs降低到14.6 GFLOPs,理论速度提升1倍。剪枝后得到的模型的最高map50为71(相比于剪枝前的74,下降3个点),map5095最高为54(相比于剪枝前的58,下降4个点)。并基于trt-python进行fps的差异对比,发现原始模型的fp16 推理fps为380,剪枝后模型fps为405。同时,也基于onnx进行推理耗时测试,gpu下,原始模型推理耗时为16ms,剪枝模型耗时为13毫秒;cpu下,原始模型推理耗时为66ms,剪枝后模型推理耗时为49ms。
1、完整代码
1.1 依赖函数
在ultralytics项目根目录下创建user_models目录,并将以下代码保存为user_models下prune_model.py。
代码主要是实现C2f_v2类与C2fCIB_v2,用于在模型剪枝前替换掉yolov10中的C2f与C2fCIB模块
from ultraly