参考链接:https://zhuanlan.zhihu.com/p/635454943
https
文章目录
1. 前言
1.1 为什么要进行模型剪枝
CNN在实际应用中的部署主要受以下几个方面制约。
1)模型大小的限制
CNN强大的表示能力来自其数百万可训练参数。这些参数以及网络结构信息需要存储在磁盘上,并在推理期间加载到内存中。例如,在ImageNet上存储一个典型的CNN会消耗超过300MB的空间,这对嵌入式设备来说是一个巨大的资源负担。
2) 运行时内存
在推理期间,CNN的中间激活/响应甚至可能比存储模型参数占用更多内存空间,即使批量大小为1。这对于高端GPU来说不是问题,但对于许多计算能力较低的应用程序来说,这是负担不起的。
3) 计算操作数
卷积操作在高分辨率图像上计算量很大。大型CNN在移动设备上处理一张图像可能需要几分钟的时间,这使得在实际应用中采用它是不现实的。
因此有必要对模型进行压缩,而满足边缘设备的AI应用。
而剪枝就是模型压缩技术的一种。(模型压缩技术:剪枝、蒸馏、量化、低秩分解等)
1.2 为什么可以进行模型剪枝
生物学启发:
生物研究发现人脑是高度稀疏的。
比如 2016年早期经典的剪枝论文就曾提到,生理学上发现对于哺乳动物,婴儿期产生许多的突触连接,在后续的成长过程中,不怎么用的那些突触就会退化消失。突触修剪从出生时就开始了,一直持续到
20 多岁。
结合深度神经网络是模仿人类大脑结构,和该生理学现象,我们可以认为深度神经网络是存在稀疏性的。
过参数化:
深度学习网络模型从卷积层到全