论文品读:Stability Based Filter Pruning for Accelerating Deep CNNs
2018年的论文,提出了一种新的评价卷积核重要程度的方式。
主要思想是比较改变损失函数前后训练得到的两套参数,如果某个位置的参数改变的幅度大,就认为该参数是敏感的不稳定的,那就是不重要的,优先裁剪。
具体过程如下
1.正常训练得到基础模型参数。
2.改变损失函数并训练1到3个epoch得到新的模型参数,新的损失函数为左边公式的L,C是原始损失函数,K代表网络有几层,S通过右边公式得到。右边公式的代表网络的第i层第j个卷积核的第l个点的值。左边示意图中的红色的值应该用
表示,代表第i层第一个卷积核的第一个点的值,右图应该用
表示,代表第i层第2个卷积核的第2个点的值。公式中的Ⅱ的含义是,如果括号里的表示成立则为1,否则为0.
,
3.然后对于某层的某个卷积核,后参数所有点的值的和的绝对值 跟 前参数所有点的值的和的绝对值 的比值作为衡量该层该卷积核的重要性,比值大的就认为是不稳定的是不重要的。
4.每次裁剪之后微调2-5个epochs
但是问题是作者只给出了某个层内的各个卷积核的重要性对比,没有给出层间的重要性比较方式,而且论文还直接指定了每层要裁剪的通道个数???
还没有评论,来说两句吧...