几种轻量化卷积网络计算量

 就近年提出的四个轻量化模型进行学习和对比,四个模型分别是:MobileNet、SqueezeNet、ShuffleNet。

 M表示输入特征的通道数,N表示输出特征的通道数。卷积核大小为K*K,输出特征图大小为F*F.

1.普通卷积网络的计算量: K*K*M*N*F*F.

   普通卷积网络的参数量:K*K*M*N

2.MobileNet

   采用名为 depth-wise separable convolution 的卷积方式代替传统卷积方式,以达到减少网络权值参数的目的。

通过采用 depth-wise convolution 的卷积方式,达到:1. 减少参数数量 2. 提升运算速度。

   第一步 Depth-wise convolution, 即逐通道的卷积,一个卷积核负责一个通道,一个通道只被一个卷积核「滤波」;第二步,Pointwise convolution,将 depth-wise convolution 得到的 feature map 再「串」起来,注意这个「串」是很重要的。

  mobileNet计算量: K*K*M*F*F+M*N*F*F

  mobileNet参数量:K*K*M+M*N 

  mobileNet与普通卷积操作的计算量比值:

\frac{K*K*M*F*F+N*M*F*F}{K*K*M*N*F*F}= \frac{1}{N}+\frac{1}{K^{2}}

3.分组卷积(group Convolution)

   分组大小为G

    分组卷积的参数量=(K*K*M/G*N/G)*G

    分组卷积的计算量= (K*K*M/G*F*F*N/G)*G

4.Shufflenet

shuffle 具体来说是 channel shuffle,是将各部分的 feature map 的 channel 进行有序的打乱,构成新的 feature map,以解决 group convolution 带来的「信息流通不畅」问题。

Shufflenet计算量:相当于把分组卷积里每组卷积之间的channel进行shuffle,参数量与计算量类似分组卷积。

5.Squeezenet

首先 squeeze 层,就是 1*1 卷积,其卷积核数要少于上一层 feature map 数,这个操作从 inception 系列开始就有了,并美其名曰压缩,个人觉得「压缩」更为妥当。

Expand 层分别用 1*1 和 3*3 卷积,然后 concat,这个操作在 inception 系列里面也有。

Squeezenet计算量:先用1*1的卷积核(个数少于输入通道)进行压缩,然后进入两个并行的1*1,3*3的卷积,结果再concat,参数和运算量正常计算。

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值