Page 9 - 《软件学报》2020年第9期
P. 9
2630 Journal of Software 软件学报 Vol.31, No.9, September 2020
1.2 限制中间特征的通道数量
2
对于标准的不带 bias 的卷积操作 FLOPs=H×W×C in ×C out ×k ,运算量受到输入通道数 C in 和卷积核数量 C out
的影响.一般来说,卷积核数量代表提取的特征数量,减少会影响网络的准确率,因此可以选择降低输入通道数
C in 来减少运算量.
Iandola 等人在 SqueezeNet [13] 中提出了 Fire module,如图 2 所示,在保证准确率的同时减少运算量.Fire
module 包含两部分:压缩(squeeze)层和扩张(expand)层,通过减少 squeeze 层的通道数量来减少整个模型需要的
计算量.与 AlexNet [18] 相比,在保证了相同的性能的条件下,模型大小压缩了近 50 倍.
1×1 conv filters
Squeeze
Expand
1×1 and 3×3 conv filters
Fig.2 Organization of convolution filters in the Fire module. A Fire module is composed of
a squeeze convolution layer and a expand layer
图 2 SqueezeNet 的 Fire Module,可以分为 squeeze 层和 expand 层
1.3 分解卷积运算
标准的卷积操作是将一个卷积核用在输入特征的所有通道上.一方面,模型的参数量较大;另一方面,合并
[2]
所有通道的卷积运算存在很大冗余.通过分组卷积,ResNeXt [19] 将多个分支合并为一个分支.与 ResNet 同等计
算消耗的情况下,有着更高的准确率.
[8]
Howard 等人提出了 MobileNet V1 利用深度可分离卷积对标准的卷积操作进行了分解,如图 3 所示.深度
可分离卷积可分为深度卷积(depthwise convolution)和逐点卷积两个操作:深度卷积对于每个输入通道采用不
同的卷积核,即一个通道对应一个卷积核,卷积操作是按照通道进行分解的;逐点卷积是卷积核大小为 1×1 的标
准卷积,作用在输入的所有通道上,将来自不同通道的特征进行融合.
M
…
D k
←N→
D k
(a)
(a) 标准的卷积操作
1
D k …
←M→
D k
(b) 深度卷积
(b)
M …
1
1 ←N→
(c) 逐点卷积
(c)
Fig.3
图 3
标 准卷积的计 算量为 D k ×D k ×M×N×H×W, 而两 步的深 度可分离卷 积的计 算量为 D k ×D k ×M×H×W+
M×N×H×W,与标准卷积的运算量相比: