文章"Pruning Convolutional Neural Networks for Resource Efficient Inference"的介绍。
1、Introduction
文章提出了一种针对预训练模型进行通道裁剪(channel pruning)的方法,通过逐一裁剪通道、fine-tuning的迭代操作,实现一定比例的模型压缩,同时确保较低的精度损失。文章首先定义了用于衡量通道(channel)重要性的metric,并根据metric对不同隐含层的每个通道进行排序,然后顺次裁剪不重要的通道(importance由低到高),每裁剪一个通道做一次fine-tuning,达到指定的压缩比(compression rate)后结束操作。由于通道裁剪的规整性,裁剪后的模型无需特定加速器或算法库的支持,能够直接在现有的成熟平台或框架上运行,并配合其他模型压缩算法、加速优化算法或重构优化工具(量化、低秩分解、稀疏块算法、TensorRT等)能够进一步提升加速比(speedup rate)。
2、Method
针对预训练模型,基本的迭代式裁剪流程如下:

裁剪、精调的过程可以认为是一个组合优化问题,即首先要确保裁剪后的模型尽可能保留原有模型的精度,从而寻求一种最优的裁剪方式:

2.1 Oracle Pruning