卷积之Separable Convolutions

2021/05/17 BasicKnowledge 共 880 字,约 3 分钟

深度学习基础知识点卷积之Separable Convolutions

可分离卷积可以分为空间可分离卷积 $(Spatially \ Separable \ Convolutions)$和深度可分离卷积 $(depthwise \ separable \ convolution)$。

Spatially Separable Convolutions

普通的 $3 \times 3$ 卷积在一个 $5 \times 5$的 $feature \ map$上是如下图这样进行计算:


Spatially Separable Convolutions 1

每个位置需要 $9$ 次乘法,一共有 $9$ 个位置,所以整个操作下来就是 $9 \times 9 = 81$ 次乘法操作。

空间可分离卷积是将一个卷积分解为两个单独的运算,做一次 $3 \times 3$ 卷积,等价于先做一次 $3 \times 1$ 卷积再做一次 $1 \times 3$ 卷积。空间可分离卷积的计算如下图所示:


Spatially Separable Convolutions 2
  • 第一步先使用 $3 \times 1$ 的 $filter$,所需计算量为:$15 \times 3=45$
  • 第二步使用 $1 \times 3$ 的 $filter$,所需计算量为:$9 \times 3 = 27$

总共需要 $72$ 次乘法就可以得到最终结果,要小于普通卷积的 $81$ 次乘法。

Depthwise Separable Convolutions

深度可分离卷积的步骤 $(10275 \ multiplications)$:

  • 先变小 $(depthwise \ convolution)$:将 $Layer$ 和 $Kernel$ 在深度方向上分离,做一次 $2D$ 卷积,然后在通道方向上 $concat$,得到深度不变、宽长变小的 $Layer$
  • 再加深$(1\times1 \ convolution)$:做 $128$ 次 $1 \times 1$ 的卷积得到宽长不变、深度为 $128$ 的 $Layer$

Depthwise Separable Convolutions 1

对比普通的卷积$(86400 multiplications)$:


Depthwise Separable Convolutions 2

Search

    Categories Cloud

    Blog Git BasicKnowledge Linux Classification Article MachineLearning

    Table of Contents