[剪枝]Learning Effcient Convolutional Networks through Network Slimming

Learning Effcient Convolutional Networks through Network Slimming

 

 

已复现:https://github.com/onion-rain/MCTS:

python slimmer.py --arch vgg19_bn_cifar --gpu 4 --resume checkpoints/sparsity/cifar10_vgg19_bn_cifar_sr_best.pth.tar --slim 0.7

 

  • 首先train with channel sparsity regularization,训练修改损失函数为:

  • 在原损失函数基础上增加一个L1正则来限制γ的大小,
  • γ为BN层的scaling factor
  • g()为sparsity-induced penalty,这里取g(s) = |s|
  • 注:
    • BN层转换方程:

  • Zin与Zout为BN层输入和输出,B为本次输入batch,μ为均值,σ为标准差,β为shift factor
  • λ通常取1e-4
  • 训练完按照预先设置的剪枝比例,把γ接近0的BN层连接的层剪掉

  • 流程图:

 

  • 至于那种有跨层连接的网络,比如resnet和densenet,在每个bottleneck或baseneck分出shortcut之后,residual那条支路上最开始加一个bn层再加一个channel select层,这样训练sparsity训练bn层然后控制channel select来将bn层scaling参数小的通道删掉

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值