SqueezeNext

论文:SqueezeNext: Hardware-Aware Neural Network Design

Github:https://github.com/amirgholami/SqueezeNext

 

 

BLOCK模块对比:

如上图所示,

第一个为ResNet 的BLOCK模块

第二个为SqueezeNet 的BLOCK模块,也就是所谓的Fire Module

第三个为SqueezeNext的BLOCK模块

 

SqueezeNext BLOCK模块设计:

假设输入为c个通道,经过第一个1*1卷积模块,通道数减半,经过第二个1*1卷积模块,通道数再次减半,然后经过3*1卷积模块通道数加倍,经过1*3卷积模块通道数保持不变,再经过一个1*1卷积模块,通道数加倍。最终输入通道数和输出通道数保持一致。

 

该模块主要包含3个改进点:

(1)Low Rank Filters :

主要将K*K的卷积替换为1*K+K*1的卷积。从而使得参数量由K2降为2K。

(2)Bottleneck Module :

瓶颈模块,类似于SqueezeNet 中Fire Module里面的squeeze模块。但是和而不同,SqueezeNet 中Fire Module里面只堆叠了一个squeeze模块,而SqueezeNext 中连续堆叠2个该模块,每经过一个瓶颈模块,通道数都减半。

(3)Fully Connected Layers :

全连接层的参数为H × W × Ci × L ,其中L表示分类的数目,H,W,C分别表示最后一层的高,宽,通道数。为了减少这部分的参数量,SqueezeNext 使用了1*1的卷积模块,将最后一层的通道数进行了4倍量的压缩,再接入全连接层,以此来减少参数量。

如上图所示,通过增加黑框中的模块,达到了全连接层参数量的降低。

 

 

网络结构:

SqueezeNext 一共包含23层(包括全连接层),主体网络结构分为了SqNxt-23和SqNxt-23v5这两种结构。

两种结构的区别在于,

Network

Depth

Width

channel-wise(group)

1.0-G-SqNxt-23

[6; 6; 8; 1]

1.0x

2

1.0-SqNxt-23

[6; 6; 8; 1]

1.0x

1

1.0-SqNxt-23v5

[2; 4; 14; 1]

1.0x

1

2.0-SqNxt-23

[6; 6; 8; 1]

2.0x

1

2.0-SqNxt-23v5

[2; 4; 14; 1]

2.0x

1

1.0和2.0的区别在于通道数加倍

传统和v5的区别在于网络结构Depth的区别

带G表示使用了depth-wise conv,不带的表示为传统的卷积。

 

 

结果:

从参数量上看,SqNxt的1.0版本网络比原始的SqueezeNet更少,精度更高。

SqNxt的2.0版本比MobileNet的参数更少,精度上TOP-1略低,TOP-5有较大提升。

从能量消耗,推断时间,准确性上,也可以看出SqNxt具有明显的优势。

 

总结:

SqNxt,一个运算量和效果都优于SqueezeNet的改进版。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值