“dw weight” 可能是指 Depthwise Convolution(深度可分离卷积)的权重参数,“dw” 是 “depthwise” 的缩写。Depthwise Convolution 是一种轻量级的卷积操作,通过将标准卷积拆分成深度上的卷积(Depthwise Convolution)和点卷积(Pointwise Convolution)两个部分来减少计算量。深度可分离卷积在移动端应用中广泛使用,可以有效地降低计算量和参数量,提高模型的推理速度和运行效率。在深度可分离卷积中,“dw weight” 通常指的是深度卷积的权重参数。
** 深度可分离卷积(Depthwise Separable Convolution)**是一种在卷积神经网络中用于减少参数量和计算量的技术。
深度可分离卷积的参数原理可以分为两步:
深度卷积(Depthwise Convolution)
深度卷积是一种只对输入的每个通道进行卷积的操作。假设输入数据的大小为
H
×
W
×
C
i
n
H \times W \times C_{in}
H×W×Cin,卷积核的大小为
K
×
K
×
C
i
n
K \times K \times C_{in}
K×K×Cin,其中
K
K
K 是卷积核的尺寸,
C
i
n
C_{in}
Cin 是输入数据的通道数。在深度卷积中,卷积核的尺寸是
K
×
K
×
1
K \times K \times 1
K×K×1,对于每个输入通道,都使用这个尺寸的卷积核进行卷积操作。因此,深度卷积的参数量为
K
×
K
×
C
i
n
K \times K \times C_{in}
K×K×Cin,而输出的特征图的通道数仍然是
C
i
n
C_{in}
Cin。
逐点卷积(Pointwise Convolution)
逐点卷积是一种使用
1
×
1
1 \times 1
1×1 卷积核的操作。假设输入数据的大小为
H
×
W
×
C
i
n
H \times W \times C_{in}
H×W×Cin,输出数据的大小为
H
×
W
×
C
o
u
t
H \times W \times C_{out}
H×W×Cout,其中
C
o
u
t
C_{out}
Cout 是输出数据的通道数。在逐点卷积中,卷积核的尺寸是
1
×
1
×
C
i
n
1 \times 1 \times C_{in}
1×1×Cin,对于每个位置,使用这个尺寸的卷积核对所有通道进行卷积操作。因此,逐点卷积的参数量为
C
i
n
×
C
o
u
t
C_{in} \times C_{out}
Cin×Cout。
将深度卷积和逐点卷积结合起来,就得到了深度可分离卷积。深度可分离卷积的参数量为 K × K × C i n + C i n × C o u t K \times K \times C_{in} + C_{in} \times C_{out} K×K×Cin+Cin×Cout,相对于普通卷积的参数量 K × K × C i n × C o u t K \times K \times C_{in} \times C_{out} K×K×Cin×Cout 要小很多。在使用深度可分离卷积时,可以使用较小的卷积核和较少的参数量来构建更深、更宽的神经网络。