MetaPruning: Meta Learning for Automatic Neural Network Channel Pruning

原文链接:https://arxiv.org/pdf/1903.10258.pdf     发表:ICCV2019

code: https: //github.com/liuzechun/MetaPruning

编辑:牛涛

本论文将剪枝与AutoMl结合,根据此前《Rethinking the value of network pruning》提出的重要的是结构而不是继承的参数,想到为啥不直接生成网络结构呢。

如很多论文所描述,剪枝大概可以写为如下公式

其中ci表示每层的剪枝率,C表示剪枝后网络的约束,比如Flops或时延。

所谓的声称网络结构的网络如下图示意

输入即为编码后的vector,通过block后生成本层参数向量,重新reshape后得到最终的网络参数。每个block的结构如下:

每次抽取一个batch验证生成网络的性能,将loss用于更新上图中的FC而不是Conv。(Conv只由FC生成)

但是这个网络只是生成权重,网络结构是由vector给的,所以采用遗传算法自动搜索这个最好的网络结构。

遗传算法伪代码如上,初始化随机生成一堆结构。

然后每次迭代中,首先验证结构的性能,然后对top-k个进行变异和交叉,把新得到的作为下一个epoch的初始化,重复上述步骤。最后把top1拿出来作为最优结构。

对于普通链式网络直接搜索就好了,对于resnet这种残差结构,采用如下图的方式

保证每个residual block的输入输出channels不变。(但是这样不就相当于对最后一个卷积层剪得个数加以限制了吗,并不是很好的解决方案)

实验结果:待补充

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容