SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size

SqueezeNet是一种轻量级的深度卷积神经网络,它在保持与AlexNet相当的精度的同时,参数数量减少了50倍。通过采用1x1卷积、减少输入通道数和后移降采样层等策略,SqueezeNet实现了小型化。其核心结构是Fire Module,包含squeeze层和expand层。经过模型压缩技术,SqueezeNet的模型大小可压缩至0.5MB,适合于嵌入式设备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要:
SqueezeNet是UC Berkeley 和 Stanford的作者提出的一种“小网络”。
原文地址: http://arxiv.org/abs/1602.07360

长久以来,研究人员一直在努力提升DCNN的精度。但是,在一些嵌入式便携式设备上,“小网络”更加受欢迎。

“小网络”有三个优势,1)在分布式训练的时候,需要更少的服务器之间的通信。2)模型加载的时候,需要更少的带宽。3)可以装载到FPGA或者其他“内存小”的设备上面。

作者提供的网络SqueezeNet,在达到AlexNet的精度的情况下,只需要AlexNet的1/50的参数。进一步 使用模型压缩技术,可以将模型压缩到0.5MB。

详细介绍
在这部分,首先说明CNN结构设计的策略,然后介绍Fire Module,最后介绍利用Fire Module构建SqueezeNet。
1. 结构设计策略
这篇文章的首要目的找到一种参数很少的网络,并且能够保持有竞争力的精度。为了达到这个目的,作者采用了三个策略。

策略1: 使用1*1网络代替3*3网络
在设计中,减少3*3网络的使用,尽量使用1*1网络。因为”1*1网络的参数数目” 是 “3*3网络的参数数目” 的1/9。

策略2.减少3*3滤波器的输入通道数。
每个卷积层的参数总数 = (前一层的通道数)(输出滤波器数)(滤波器的宽 * 滤波器的高)。因此,减少前一层的通道数(当前层的输入通道数)可以减少参数数目。

策略3.降采样层移到网络的后端

前两个策略的目的是减少网络参数,第三个策略的目的是增加精度。

2. Fire Module
定义如下,一个Fire Module有一个 squeeze层(有1*1滤波器组成)和一个expand层(包括1*1滤波器和3*3滤波器)组成。
这里写图片描述
在上图中,有三个超参数:

s(1x1): squeeze层的1*1滤波器个数;
e(1x1): expand层的1*1滤波器个数;
e(3x3): expand层的3*3滤波器个数;

作者在设计Fire Module的时候,s(1x1) < ( e(1x1) + e(3x3) )。

*3. SqueezeNet*
SqueezeNet用一个独立的卷积层开始,连接8个Fire Module,结束的时候也是一个卷积层。
SqueezeNet逐渐的增加每个Fire Module中的滤波器数目。
SqueezeNet在conv1,fire4,fire8和conv10之后使用步长为2的max pooling。
这里写图片描述

其他细节:
(1) 为了使expand层的输出有相同的大小,3*3filter的输入数据增加了padding操作。
(2) squeeze层和expand层之后都用了ReLU
(3) fire9之后,使用了drop out
(4) SqueezeNet没有使用全连接层
(5) 训练的时候,使用多项式学习率

评估结果
这里写图片描述
上图显示,SqueezeNet在不使用deep compression的情况,模型大小/参数个数已经超过之前的方法。
使用deep compression可以将模型压缩到0.5MB.

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值