YOLOv3模型剪枝,瘦身80%,提速100%,精度基本不变
如果要在实际应用中部署目标检测,你会想到哪项算法?
在52CV目标检测交流群里,被提及最多的,恐怕就是YOLOv3了。
虽然新出的一些算法号称“完胜”“吊打”某某某算法,但YOLOv3 仍是被推荐最多的。
首先它有着目前为止还不错的精度表现,而且计算速度较快,适合在移动端、边缘设备部署。
另一个重要原因是,YOLOv3是被很多人使用验证过的模型,被某个数据库验证过的某算法精度好很重要,但被社区大量验证过效果OK的算法更重要。
今天向大家推荐一个Github新工程,对YOLOv3进行模型剪枝:
https://github.com/Lam1360/YOLOv3-model-pruning
这份代码是基于Python 3.6, PyTorch 实现的。
作者用 YOLOv3 做人手检测(在 oxford hand 数据集上训练的),并进行了模型剪枝,剪枝后YOLOv3 模型的参数量减少 80% ,FLOPs 降低 70%,推断的速度提高了100%,而 mAP 基本保持不变!
可谓是相当成功了!
剪枝前后的对比
1. 部分卷积层的通道数大幅度减少
剪枝前后指标对比:
精度还略微上升了!
作者使用的剪枝算法来自:
Learning Efficient Convolutional Networks Through Network Slimming (ICCV 2017)
https://arxiv.org/abs/1708.06519
剪枝步骤也非常简单:
作者称,后续还会在其他数据集上做实验。
看来剪枝在实际应用部署时还真的很重要呢!
感谢该工程开源者Lam1360,欢迎给大佬加星~
赞 (0)