查看原文
其他

PyTorch 深度学习模型压缩开源库(含量化、剪枝、轻量化结构、BN融合)

666dzy666 极市平台 2021-09-19

加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!

同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~



本文为开发者666dzy666投稿,介绍了他最近开源的PyTorch模型压缩库,该库开源不到20天已经收获 265 颗星,是最近值得关注的模型压缩开源库。


开源地址


https://github.com/666DZY666/model-compression



背景


“目前在深度学习领域分类两个派别,一派为学院派,研究强大、复杂的模型网络和实验方法,为了追求更高的性能;另一派为工程派,旨在将算法更稳定、高效的落地在硬件平台上,效率是其追求的目标。


复杂的模型固然具有更好的性能,但是高额的存储空间、计算资源消耗是使其难以有效的应用在各硬件平台上的重要原因。


所以,卷积神经网络日益增长的深度和尺寸为深度学习在移动端的部署带来了巨大的挑战,深度学习模型压缩与加速成为了学术界和工业界都重点关注的研究领域之一。”



项目简介


基于pytorch实现模型压缩
  1. 量化:8/4/2 bits(dorefa)、三值/二值(twn/bnn/xnor-net);

  2. 剪枝:正常、规整、针对分组卷积结构的通道剪枝;

  3. 分组卷积结构;

  4. 针对特征A二值的BN融合




目前提供


  1. 普通卷积和分组卷积结构

  2. 权重W和特征A的训练中量化,W(32/8/4/2bits,三/二值) 和A(32/8/4/2bits,三/二值)任意组合

  3. 针对三/二值的一些tricks:W二值/三值缩放因子,W/grad(ste、saturate_ste、soft_ste)截断,W三值_gap(防止参数更新抖动),W/A二值时BN_momentum(<0.9),A二值时采用B-A-C-P可比C-B-A-P获得更高acc

  4. 多种剪枝方式:正常剪枝、规整剪枝(比如可剪枝为剩余filter个数为16的倍数)、针对分组卷积结构的剪枝(剪枝后仍保证分组卷积结构)

  5. batch normalization的融合及融合前后model对比测试:普通融合(BN层参数 —> conv的权重w和偏置b)、针对特征A二值的融合(BN层参数 —> conv的偏置b)



模型压缩数据结果对比



后续计划


  1. Nvidia、Google的INT8量化方案

  2. 对常用检测模型做压缩

  3. 部署(1、针对4bits/三值/二值等的量化卷积;2、终端DL框架(如MNN,NCNN,TensorRT等))



参考文献
1. BinarizedNeuralNetworks: TrainingNeuralNetworkswithWeightsand ActivationsConstrainedto +1 or−1
(https://arxiv.org/abs/1602.02830)
2. XNOR-Net:ImageNetClassificationUsingBinary ConvolutionalNeuralNetworks
(https://arxiv.org/abs/1603.05279)
3. AN EMPIRICAL STUDY OF BINARY NEURAL NETWORKS’ OPTIMISATION
(https://openreview.net/forum?id=rJfUCoR5KX)
4. A Review of Binarized Neural Networks
(https://www.semanticscholar.org/paper/A-Review-of-Binarized-Neural-Networks-Simons-Lee/0332fdf00d7ff988c5b66c47afd49431eafa6cd1)
5. Ternary weight networks
(https://arxiv.org/abs/1605.04711)
6. DOREFA-NET: TRAINING LOW BITWIDTH CONVOLUTIONAL NEURAL NETWORKS WITH LOW BITWIDTH GRADIENTS
(https://arxiv.org/abs/1606.06160)
7. Learning Efficient Convolutional Networks through Network Slimming
(https://arxiv.org/abs/1708.06519)
8. RETHINKING THE VALUE OF NETWORK PRUNING
(https://arxiv.org/abs/1810.05270)
9. Convolutional Networks for Fast, Energy-Efficient Neuromorphic Computing
(https://arxiv.org/abs/1603.08270)


项目地址(~欢迎交流、star~):
https://github.com/666DZY666/model-compression




-End-





*延伸阅读





CV细分方向交流群


添加极市小助手微信(ID : cv-mart),备注:研究方向-姓名-学校/公司-城市(如:目标检测-小极-北大-深圳),即可申请加入目标检测、目标跟踪、人脸、工业检测、医学影像、三维&SLAM、图像分割、OCR、姿态估计等极市技术交流群(已经添加小助手的好友直接私信),更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流,一起来让思想之光照的更远吧~



△长按添加极市小助手


△长按关注极市平台


觉得有用麻烦给个在看啦~  

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存