普通卷积、分组卷积和深度分离卷积概念以及参数量计算

简介: 普通卷积、分组卷积和深度分离卷积概念以及参数量计算

Google提出了移动端模型MobileNet,其核心是采用了深度可分离卷积,其不仅可以降低模型计算复杂度,而且可以大大降低模型大小,适合应用在真实的移动端应用场景。这篇文章带你了解一下什么是普通卷积、分组卷积和深度分离卷积,以及如何计算参数量。

img

上面的图片展示了普通卷积和分组卷积的不同,下面我们通过具体的例子来看。

普通卷积

标准卷积运算量的计算公式:

FLOPs=(2×C0×K21)×H×W×C1

计算公式参考:深度学习之(经典)卷积层计算量以及参数量总结 (考虑有无bias,乘加情况) - 琴影 - 博客园 (cnblogs.com)

参数量计算公式:K2×C0×C1

C0 :输入的通道。

K:卷积核大小。

H,W:输出 feature map的大小

C1:输出通道的大小。

bias=False,即不考虑偏置的情况有-1,有True时没有-1。

举例:

输入的尺寸是227×227×3,卷积核大小是11×11,输出是6,输出维度是55×55,

我们带入公式可以计算出

参数量:

112×3×6=2178

运算量:

2×3×112×55×55×6=13176900

分组卷积

分组卷积则是对输入feature map进行分组,然后每组分别卷积。

假设输入feature map的尺寸仍为C0×H×W,输出feature map的数量为C1个,如果设定要分成G个groups,则每组的输入feature map数量为C0G,每组的输出feature map数量为C1G,每个卷积核的尺寸为C0G×K×K,卷积核的总数仍为C1个,每组的卷积核数量为C1G,卷积核只与其同组的输入map进行卷积,卷积核的总参数量为N×C0G×K×K总参数量减少为原来的 1G

计算量公式:

[(2×K2×C0/g+1)×H×W×Co/g]×g

分组卷积的参数量为:

KKC0gC1gg

举例:

输入的尺寸是227×227×3,卷积核大小是11×11,输出是6,输出维度是55×55,group为3

我们带入公式可以计算出

参数量:

112×33×63×3=726

运算量:

[(2×112×3/3+1)×55×55×6/3]×3=2205225

深度可分离卷积(Depthwise separable conv)

设输入特征维度为DF×DF×M,M为通道数,Dk为卷积核大小,M为输入的通道数, N为输出的通道数,G为分组数。

当分组数量等于输入map数量,输出map数量也等于输入map数量,即M=N=G,N个卷积核每个尺寸为Dk×Dk×1时,Group Convolution就成了Depthwise Convolution。

逐点卷积就是把G组卷积用conv1x1拼接起来。如下图:

查看源图像

深度可分离卷积有深度卷积+逐点卷积。计算如下:

  • 深度卷积:设输入特征维度为DF×DF×M,M为通道数。卷积核的参数为Dk×Dk×1×M。输出深度卷积后的特征维度为:DF×DF×M。卷积时每个通道只对应一个卷积核(扫描深度为1),所以 FLOPs为:M×DF×DF×DK×DK
  • 逐点卷积:输入为深度卷积后的特征,维度为DF×DF×M。卷积核参数为1×1×M×N。输出维度为DF×DF×N。卷积过程中对每个特征做1×1的标准卷积, FLOPs为:N×DF×DF×M

    将上面两个参数量相加就是 Dk×Dk×M+M×N

所以深度可分离卷积参数量是标准卷积的DK×DK×M+M×NDK×DK×M×N=1N+1D2K

AI浩
+关注
目录
打赏
0
1
0
0
151
分享
相关文章
深度学习基础入门篇[9.3]:卷积算子:空洞卷积、分组卷积、可分离卷积、可变性卷积等详细讲解以及应用场景和应用实例剖析
深度学习基础入门篇[9.3]:卷积算子:空洞卷积、分组卷积、可分离卷积、可变性卷积等详细讲解以及应用场景和应用实例剖析
228 0
[转载]对深度可分离卷积、分组卷积、扩张卷积、转置卷积(反卷积)的理解
1. 深度可分离卷积(depthwise separable convolution) 在可分离卷积(separable convolution)中,通常将卷积操作拆分成多个步骤。而在神经网络中通常使用的就是深度可分离卷积(depthwise separable convolution)。
1987 0
深度学习笔记(十二):普通卷积、深度可分离卷积、空间可分离卷积代码
本文探讨了深度可分离卷积和空间可分离卷积,通过代码示例展示了它们在降低计算复杂性和提高效率方面的优势。
486 2
深度学习笔记(十二):普通卷积、深度可分离卷积、空间可分离卷积代码
RT-DETR改进策略【卷积层】| GnConv:一种通过门控卷积和递归设计来实现高效、可扩展、平移等变的高阶空间交互操作
RT-DETR改进策略【卷积层】| GnConv:一种通过门控卷积和递归设计来实现高效、可扩展、平移等变的高阶空间交互操作
44 13
RT-DETR改进策略【卷积层】| GnConv:一种通过门控卷积和递归设计来实现高效、可扩展、平移等变的高阶空间交互操作
RT-DETR改进策略【卷积层】| CVPR-2023 SCConv 空间和通道重建卷积:即插即用,减少冗余计算并提升特征学习
RT-DETR改进策略【卷积层】| CVPR-2023 SCConv 空间和通道重建卷积:即插即用,减少冗余计算并提升特征学习
38 11
RT-DETR改进策略【卷积层】| CVPR-2023 SCConv 空间和通道重建卷积:即插即用,减少冗余计算并提升特征学习
YOLOv11改进策略【卷积层】| CVPR-2023 SCConv 空间和通道重建卷积:即插即用,减少冗余计算并提升特征学习
YOLOv11改进策略【卷积层】| CVPR-2023 SCConv 空间和通道重建卷积:即插即用,减少冗余计算并提升特征学习
13 0
YOLOv11改进策略【卷积层】| CVPR-2023 SCConv 空间和通道重建卷积:即插即用,减少冗余计算并提升特征学习
深度学习基础入门篇9.1:卷积之标准卷积:卷积核/特征图/卷积计算、填充、感受视野、多通道输入输出、卷积优势和应用案例讲解
深度学习基础入门篇9.1:卷积之标准卷积:卷积核/特征图/卷积计算、填充、感受视野、多通道输入输出、卷积优势和应用案例讲解
深度学习基础入门篇9.1:卷积之标准卷积:卷积核/特征图/卷积计算、填充、感受视野、多通道输入输出、卷积优势和应用案例讲解
一文搞懂 卷积神经网络 卷积算子应用举例 池化 激活函数
这篇文章通过案例详细解释了卷积神经网络中的卷积算子应用、池化操作和激活函数,包括如何使用卷积算子进行边缘检测和图像模糊,以及ReLU激活函数如何解决梯度消失问题。
【Pytorch神经网络理论篇】 32 PNASNet模型:深层可分离卷积+组卷积+空洞卷积
PNASNet模型是Google公司的AutoML架构自动搜索所产生的模型,它使用渐进式网络架构搜索技术,并通过迭代自学习的方式,来寻找最优网络结构。即用机器来设计机器学习算法,使得它能够更好地服务于用户提供的数据。该模型在ImageNet数据集上Top-1准确率达到82.9%,Top-5准确率达到96。2%,是目前最好的图片分类模型之一。
235 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等