ShuffleNet Series V1、V2详解

1、ShuffleNet V1

1.1 Group Conv

如下图可知,Group Conv是介于Standard Conv和Depthwise Conv之间的卷积,
在这里插入图片描述
Group Conv的计算量:
在这里插入图片描述

由上面的计算量可知,Group Conv分了n组,则计算量减少到1/n
Group Conv很少分奇数组;
batch-size一般选择 2 n 2^n 2n个;

1.2 Group Conv + Channel Shuffle

在这里插入图片描述

2、ShuffleNet V2

ShuffleNet V2总结出4条准则:

G1. MAC (Memory access cost) becomes minimal when input/output has same the size
G2. Excessive GConv increases MAC.
G3. Network fragmentation reduces degree of parallelism
G4. Eltwise operations are non negligible

下面分别介绍上面的4条准则;
1、MAC (Memory access cost) becomes minimal when input/output has same the size:
即是说输入和输出具有相同的size,内存访问消耗最小,证明过程如下,这里假定kernel-size为1×1,所以下面的Conv FLPOPs(B)为 w h c 1 c 2 1 ⋅ 1 whc_1c_21\cdot 1 whc1c211
在这里插入图片描述

2、Excessive GConv increases MAC:
即是说分的组越多,则会增加MAC;证明过程:
在这里插入图片描述
g g g越大,MAC消耗就越大。

3、Network fragmentation reduces degree of parallelism :
也就是说线性运算大于并行运算,如图:
在这里插入图片描述
上图的速度关系为:
在这里插入图片描述
总结:

Themore branches, the slower the system
Themore fragments, the slower the system

4、Eltwise operations are non negligible:

也就是说concat操作的速度大于点对点直接相加的速度。

2.1 ShuffleNet V2的具体过程

1、stride等于1的结构:
在这里插入图片描述
过程:

1、Channel Split:对channel进行拆分,比如是一分为二;
2、然后一半的channel进行1×1的Conv,3×3的Depthwise Conv,1×1的Conv;
3、剩下的一半channel不动;
4、进行channel的concat;
5、channel shuffle;

2、stride等于2的结构:
在这里插入图片描述
因为3×3的Depthwise Conv的stride为2,改变了feature map的size,所以左边也需要进行相应的卷积,其他过程和stride等于1类似。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值