利用KL散度度量通道冗余度的深度神经网络剪枝方法
2021-11-15袁晓彤
计算机应用与软件 2021年11期
杨 鑫 袁晓彤
1(南京信息工程大学自动化学院 江苏 南京 210044) 2(江苏省大数据分析技术重点实验室大气环境与装备技术协同创新中心 江苏 南京 210044)
0 引 言
卷积神经网络(Convolutional Neural Network, CNN)的成功通常伴随着一些问题,如占用内存过大、计算成本过高等,而往往参数数目超过1亿的深度神经网络所需要的计算成本更高,这个问题阻碍了很多实际应用的实施,特别是基于便携式设备和手机端的应用。以经典的VGG16[1]为例,它拥有高达1.3亿的参数数量,且占用了超过500 MB的存储空间,仅运行VGG16网络进行图像识别这一功能就需要完成309亿个浮点运算(FLOPs),这些都在严重制约着深度神经网络在实际生活中的应用。
近年来,越来越多的研究人员加入到深度神经网络的加速与压缩的行列中,他们提出了各种新颖的算法,在追求模型性能优越的同时,尽可能地降低模型复杂度,追求性能与资源损耗的平衡。很多网络压缩方法的总结[2-3]将压缩方法进行了分类,大体上可以分为以下几种方法:低秩近似[4]、权重剪枝[5-7]、参数量化[6]、二值化网络[8]、知识蒸馏[9-11]、紧凑卷积滤波器设计[12]和通道剪枝[13-21]等。剪枝是实现网络压缩一种较为直接而且有效的方法,目前大多数剪枝算法都是先训练一个大型的复杂预训练模型,然后对这个模型进行剪枝,从而得到一个性能不错且较为紧凑的小模型。
本文采用结构化剪枝方法,利用KL散度定义通道的重要因子,根据重要因子对CNN的每层卷积层逐层进行通道剪枝,从而达到减少网络参数数量和FLOPs的目的。……
登录APP查看全文
