赞
踩
1.shuffle具体来说是channel shuffle,是将各部分的feature map的channel进行有序的打乱,构成新的feature map,以解决group convolution带来的[信息流通不畅]的问题。(MobileNet是用pointwise convolution解决这个问题。)
MobileNet每层的参数量和运算量如下路所示:
2.Channel Shuffle for Group Convolution
3.网络结构
Table 1是ShuffleNet的网络结构,基本上和ResNet是一样的,也是分成几个stage(ResNet中有4个stage,这里只有3个),然后在每个stage中用ShuffleNet unit代替原来的Residual block,这也就是ShuffleNet算法的核心。这个表是在限定complexity的情况下,通过改变group(g)的数量来改变output channel的数量,更多的output channel一般而言可以提取更多的特征。
4.实验结果:
Table2表示不同大小的ShuffleNet在不同group数量情况下的分类准确率比较。ShuffleNet s表示将ShuffleNet 1的filter个数变成s倍。Table2的一个重要结论是group个数的线性增长并不会带来分类准确率的线性增长。但是发现ShuffleNet对于小的网络效果更明显,因为一般小的网络的channel个数都不多,在限定计算资源的前提下,ShuffleNet可以使用更多的feature map。
至于实验比较,并没有给出模型参数量的大小比较,而是采用了Complexity(MFLOPS)指标,在相同的Complexity(MFLOPS)下,比较ShuffleNet和各个网络,还专门和MobileNet进行比较,由于ShuffleNet相较于MobileNet少了1x1的卷积层,所以效率大大提高了
相似准确率条件下的性能比较:
由上图可知,虽然SqueezeNet可以极大的减少模型的存储,但速度上并没有提升,反而些许变慢了。ShuffleNet在计算性能上是AlexNet(5层卷机,3层全连接)的18倍,需要40 MFLOPS的计算量。
实际在手机上的前向测试:
ShuffleNet小结:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。