MobilenetV2
深度可分离卷积
计算量
普通卷积
h
i
×
w
i
×
d
i
×
d
j
×
k
×
k
h_i\times w_i \times d_i \times d_j \times k\times k
hi×wi×di×dj×k×k
深度可分离卷积
h
i
×
w
i
×
d
i
×
(
k
2
+
d
j
)
h_i\times w_i \times d_i\times (k^{2}+d_j)
hi×wi×di×(k2+dj)
h
i
和
w
i
为图像的长宽
,
d
i
和
d
j
分别为输入输出通道数,
k
为卷积核大小
h_i和w_i为图像的长宽,d_i和d_j分别为输入输出通道数,k为卷积核大小
hi和wi为图像的长宽,di和dj分别为输入输出通道数,k为卷积核大小
h
i
×
w
i
×
d
i
×
(
k
2
+
d
j
)
h
i
×
w
i
×
d
i
×
d
j
×
k
×
k
=
1
d
j
+
1
k
2
\frac{h_i\times w_i \times d_i\times (k^{2}+d_j)}{h_i\times w_i \times d_i \times d_j \times k\times k}=\frac{1}{d_j}+\frac{1}{k^{2}}
hi×wi×di×dj×k×khi×wi×di×(k2+dj)=dj1+k21
当
k
=
3
k=3
k=3时,深度分离卷积的计算量大约为普通卷积的
1
9
\frac{1}{9}
91。
bottleneck结构
即
1
×
1
1\times 1
1×1卷积扩充通道,接
D
W
DW
DW卷积,再接
1
×
1
1\times 1
1×1卷积降维。
模型结构
参数
t t t为bottleneck的 1 × 1 1\times 1 1×1卷积扩充通道倍数, c × α c \times \alpha c×α为每个bottleneck block的输出通道数, n n n为每个bottleneck block重复bottleneck结构的次数, s s s为卷积核的strides。
bottleneck block
bottleneck block为由n个bottleneck结构组成的模块。注意只有在bottleneck block的第一个bottleneck中才会进行strides的变化,即下采样,其它的bottleneck的strides都为
1
×
1
1 \times 1
1×1。
同样的,也只有在第一个bottleneck中进行通道数的变化,所以在整个bottleneck block中的输出通道数都是一样的。
还有需要注意的是,shortcut connection只有在第一个bottleneck中没有。
α \alpha α 参数
α
\alpha
α 参数为宽度参数,即控制模型的通道数。模型每一个block的输出通道数为
c
×
α
c \times \alpha
c×α。
需要注意的是,对于小于1的
α
\alpha
α,最后一个卷积层不应用该参数,固定为1280。
固定为1280。