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

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

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

img

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

普通卷积

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

$$ {FLOPs }=\left(2 \times C_{0} \times K^{2}-1\right) \times H \times W \times C_{1} $$

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

参数量计算公式:$K^{2} \times C_{0} \times C{1}$

$C_{0}$ :输入的通道。

K:卷积核大小。

H,W:输出 feature map的大小

$C_{1}$:输出通道的大小。

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

举例:

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

我们带入公式可以计算出

参数量:

$11^2 \times 3 \times 6$=2178

运算量:

$2 \times 3 \times11^{2}\times 55\times 55 \times 6$=13176900

分组卷积

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

假设输入feature map的尺寸仍为$C_{0}\times H \times W$,输出feature map的数量为$C_{1}$个,如果设定要分成G个groups,则每组的输入feature map数量为$\frac{C_{0}}{G}$,每组的输出feature map数量为$\frac{C{1}}{G}$,每个卷积核的尺寸为$\frac{C_{0}}{G}\times K \times K$,卷积核的总数仍为$C_{1}$个,每组的卷积核数量为$\frac{C{1}}{G}$,卷积核只与其同组的输入map进行卷积,卷积核的总参数量为$N\times \frac{C_{0}}{G}\times K \times K$,总参数量减少为原来的 $\frac{1}{G}$。

计算量公式:

$$ \left[\left(2 \times K^{2} \times C_{0} / g +1\right) \times H \times W \times C_{o} / g\right] \times g $$

分组卷积的参数量为:

$$ K * K * \frac{C_{0}}{g} * \frac{C_{1}}{g} * g $$

举例:

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

我们带入公式可以计算出

参数量:

$11^2 \times \frac{3}{3} \times \frac{6}{3} \times 3$=726

运算量:

$\left[\left(2 \times 11^{2} \times3 / 3 +1\right) \times 55 \times 55 \times 6 / 3\right] \times 3$=2205225

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

设输入特征维度为$D_{F}\times D_{F}\times M$,M为通道数,$D_{k}$为卷积核大小,M为输入的通道数, N为输出的通道数,G为分组数。

当分组数量等于输入map数量,输出map数量也等于输入map数量,即M=N=G,N个卷积核每个尺寸为$D_{k}\times D_{k}\times 1 $时,Group Convolution就成了Depthwise Convolution。

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

查看源图像

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

  • 深度卷积:设输入特征维度为$D_{F}\times D_{F}\times M$,M为通道数。卷积核的参数为$D_{k}\times D_{k}\times 1 \times M$。输出深度卷积后的特征维度为:$D_{F}\times D_{F}\times M$。卷积时每个通道只对应一个卷积核(扫描深度为1),所以 FLOPs为:$M\times D_{F}\times D_{F}\times D_{K}\times D_{K}$
  • 逐点卷积:输入为深度卷积后的特征,维度为$D_{F}\times D_{F}\times M$。卷积核参数为$1\times1\times M\times N$。输出维度为$D_{F}\times D_{F}\times N$。卷积过程中对每个特征做$1 \times 1$的标准卷积, FLOPs为:$N \times D_{F} \times D_{F}\times M$

    将上面两个参数量相加就是 $D_{k} \times D_{k} \times M+M \times N$

所以深度可分离卷积参数量是标准卷积的$\frac{D_{K} \times D_{K} \times M+M \times N}{D_{K} \times D_{K} \times M \times N}=\frac{1}{N}+\frac{1}{D_{K}^{2}}$

目录
相关文章
|
机器学习/深度学习
深度学习笔记(十二):普通卷积、深度可分离卷积、空间可分离卷积代码
本文探讨了深度可分离卷积和空间可分离卷积,通过代码示例展示了它们在降低计算复杂性和提高效率方面的优势。
3709 2
深度学习笔记(十二):普通卷积、深度可分离卷积、空间可分离卷积代码
|
机器学习/深度学习 数据可视化 测试技术
YOLO11实战:新颖的多尺度卷积注意力(MSCA)加在网络不同位置的涨点情况 | 创新点如何在自己数据集上高效涨点,解决不涨点掉点等问题
本文探讨了创新点在自定义数据集上表现不稳定的问题,分析了不同数据集和网络位置对创新效果的影响。通过在YOLO11的不同位置引入MSCAAttention模块,展示了三种不同的改进方案及其效果。实验结果显示,改进方案在mAP50指标上分别提升了至0.788、0.792和0.775。建议多尝试不同配置,找到最适合特定数据集的解决方案。
4399 0
|
机器学习/深度学习
YOLOv11改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
YOLOv11改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
1672 8
YOLOv11改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
|
编解码 异构计算
YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
4830 7
YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
|
编解码 人工智能 算法
【AI系统】EfficientNet 系列
本文介绍了EfficientNet系列模型,特别是EfficientNet V1和V2。EfficientNet V1通过NAS技术同时探索网络的宽度、深度和分辨率对模型性能的影响,提出了复合模型缩放方法,以平衡三者关系,实现高效模型扩展。EfficientNet V2在此基础上,引入Fused-MBConv模块,采用渐进式学习策略和自适应正则化技术,进一步提升了模型的训练速度和推理效率。
1634 6
【AI系统】EfficientNet 系列
|
机器学习/深度学习 测试技术 PyTorch
轻量级网络——MobileNetV3
轻量级网络——MobileNetV3
3332 0
轻量级网络——MobileNetV3
|
机器学习/深度学习 编解码 TensorFlow
MobileNetV3架构解析与代码复现
MobileNet模型基于深度可分离卷积,这是一种分解卷积的形式,将标准卷积分解为深度卷积和`1*1`的点卷积。对于MobileNet,深度卷积将单个滤波器应用于每个输入通道,然后,逐点卷积应用`1*1`卷积将输出与深度卷积相结合。
3932 0
MobileNetV3架构解析与代码复现
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【卷积层】| CVPR-2023 部分卷积 PConv 轻量化卷积,降低内存占用
YOLOv11改进策略【卷积层】| CVPR-2023 部分卷积 PConv 轻量化卷积,降低内存占用
1769 0
YOLOv11改进策略【卷积层】| CVPR-2023 部分卷积 PConv 轻量化卷积,降低内存占用
|
机器学习/深度学习 人工智能 编解码
【AI系统】MobileNet 系列
本文详细介绍 MobileNet 系列模型,重点探讨其轻量化设计原则。从 MobileNetV1 开始,通过深度可分离卷积和宽度乘数减少参数量,实现低延迟、低功耗。后续版本 V2、V3、V4 逐步引入线性瓶颈、逆残差、Squeeze-and-Excitation 模块、新型激活函数 h-swish、NAS 搜索等技术,持续优化性能。特别是 MobileNetV4,通过通用倒瓶颈(UIB)和 Mobile MQA 技术,大幅提升模型效率,达到硬件无关的 Pareto 最优。文章结合最新深度学习技术,全面解析各版本的改进与设计思路。
5769 8
RT-DETR改进策略【损失函数篇】| 通过辅助边界框计算IoU提升检测效果(Inner_GIoU、Inner_DIoU、Inner_CIoU、Inner_EIoU、Inner_SIoU)
RT-DETR改进策略【损失函数篇】| 通过辅助边界框计算IoU提升检测效果(Inner_GIoU、Inner_DIoU、Inner_CIoU、Inner_EIoU、Inner_SIoU)
1012 0
RT-DETR改进策略【损失函数篇】| 通过辅助边界框计算IoU提升检测效果(Inner_GIoU、Inner_DIoU、Inner_CIoU、Inner_EIoU、Inner_SIoU)

热门文章

最新文章