【ShuffleNet-V2】深度学习模型压缩之ShuffleNetV2

论文名称
深度学习模型压缩之 ShuffleNetV2
作者
miclover
参考
书摘
V1版本存在的问题:
问题1:Shuffle channel在实现的时候需要大量的指针跳转和Memory set,这本身就是极其耗时的;同时又特别依赖实现细节,导致实际运行速度不会那么理想。
问题2:Shuffle channel规则是人工设计出来的,不是网络自己学出来的。这不符合网络通过负反馈自动学习特征的基本原则,又陷入人工设计特征的老路(如sift/HOG等)
之前版本问题:
1、在ShuffleNet V1中使用了大量的分组卷积,这违反了第二条;bottleneck-like的block,这违反了 第一条
2、在MobileNet V2中使用了inverted bottleneck,这违反了 第一条 ;在稠密的特征图上使用了depthwise卷积和ReLU,这违反了 第四条
 
                                                                   思考
文中对于 ShuffleNetV2主要工作创新点:
       文中作者讨论了常规的模型加速和压缩模型评估的指标(FLOPs:每浮点运算数,这个指标主要衡量的就是卷积层的乘法操作)的问题,并不能完全衡量模型速度,并通过实验主要讨论了MAC(内存访问操作所消耗的计算)指标。

       比如在Fig 1(c)(d)中,相同FLOPs的网络实际速度差别却很大,因此以FLOPs作为衡量模型速度的指标是有问题的。
1、使用相同的通道数来最小化MAC

对于1*1卷积核来说,输入c1维度,输出c2维度, 输出特征尺寸是h和w,那么, FLOPs可以表示为:

the memory access cost为:

通过均值不等式得出:

得出,当c1 = c2 的时候, 在给定FLOPs前提下,MAC达到取值最佳。
 
 
2、过多的分组卷积会增加MAC

对于1*1卷积核来说,输入c1维度,输出c2维度, 输出特征尺寸是h和w,并且使用g个组,那么, FLOPs可以表示为:

the memory access cost为:

可以看出在B不变时,g越大,MAC也越大。
 
 
3、网络分支会降低并行性,分支数量越少,模型速度越快

 
 
4、Element-wise操作不可忽视,尽可能减少element-wise操作
 

 
ShuffleNet v1和ShuffleNet v2的结构对比

 
 
 
 
网络结构:

 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值