2016 SqueezeNet是UC Berkeley和Stanford作者提出的“小网络”。
原文地址:http://arxiv.org/ABS/1602.07360
引言“小网络”有三个优势:1)分布式训练时需要更少的服务器间通信。 2 )加载模型时,需要更少的带宽。 3 )可安装在FPGA和其他“内存小”设备上。
作者提供的网络SqueezeNet在达到AlexNet精度时,只需要AlexNet的1/50的参数。 使用模型压缩技术,可以将模型压缩到0.5MB。
策略1:使用11个网络而不是33个网络
在设计中,减少33个网络的使用,尽量使用11个网络。 因为“11网络的参数数”是“33网络的参数数”的1/9。
减少策略2.3*3滤波器的输入通道数。
每个卷积层的参数总数=(上一层的通道数;输出滤波器数) )滤波器的宽度*滤波器的高度)。 因此,可以通过减少上一层的通道数(当前层的输入通道数)来减少参数。
策略3 .将缩减像素采样层移动到网络后端
前两个战略的目的是减少网络参数,第三个战略的目的是提高精度。
2. Fire Module定义如下: 一个Fire Module包含squeeze层(11个过滤器配置)和扩展层(11个过滤器和3*3个过滤器配置)。
作者设计Fire Module时,s(1x1 ) ) e ) 1x1 ) e ) 3x3) )。 卷积核层数、
3. SqueezeNet SqueezeNet以独立的卷积层开始,连接8个Fire Module,结束时也是卷积层。
SqueezeNet在每个文件模块中逐渐增加过滤器的数量。
SqueezeNet在conv1、fire4、fire8和conv10之后使用步骤2中的最大轮询。
其他详细信息:
)1)在3 * 3过滤器的输入数据中添加填充操作,使扩展层的输出大小相同。
)2)在squeeze层和expand层之后使用了ReLU
)3)在fire9之后,使用了drop out
)4) SqueezeNet没有使用所有连接层
(5)训练时,使用多项式学习率
实验
上图显示,如果SqueezeNet不使用深度压缩,则模型大小/参数数量超过了以前的方法。
使用deep compression,可以将模型压缩到0.5MB。