论文连接:https://arxiv.org/abs/1608.08710
1.论文概要
作者介绍了一种新的filter剪枝方法,具体是计算每个卷积核的L1范数,即权重abs和,去除掉值最低的一部分卷积核,再用Retrain的方法训练回来,可以实现VGG-16 34%加速,ResNet-110 38%加速效果
2.主要内容:
对于上图解释,输入Xi尺寸为NiHiWi,Ni为通道数,输出Xi+1尺寸为Ni+1Hi+1Wi+1,卷积层尺寸Ni+1NiKK,Ni+1为卷积核个数,NiK*K为每个卷积核尺寸,卷积核剪枝方法如下:
(1)对于每一个kernel matrix按列绝对值求和
(2)对求和结果排序
(3)裁剪掉m个filters(对应内核矩阵的列),以及对应的输出(Xi+1层中),它又是下一层的输入,所以也得去掉对应的输入filters(对应内核矩阵的行)
(4)剩余的kernel weights保留
在跨越多层裁剪的过程中,可能出现kernel matrix裁剪交叉的情况,两种处理方法:
(1)Independent pruning 假设蓝色是确定要裁剪的,然后计算绿色的L1时,要考虑黄色的值,跟之前的裁剪无关。
(2)Greedy pruning 也就是计算绿色的L1时,不考虑已经被裁剪的黄色值
作者发现第二种的准确率辉更高。
上图解释了对残差网络的特殊处理方式:
(1)第一层随意裁剪(根据需求),因为它只会影响Xi+1的输入,但是不会影响最后的输出。
(2)残差块里面的裁剪需要注意,因为裁剪需要和shortcut layer保持一致,才能累加。
(3)因为identical feature maps比added residual maps更重要,所以后者的裁剪结果应该由前者决定。即由shortcut剪枝通道为主导