卷积变体-----分组卷积、深度可分离卷积、膨胀卷积

2024-03-28 05:20

本文主要是介绍卷积变体-----分组卷积、深度可分离卷积、膨胀卷积,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、分组卷积
    • 1.1 概述
    • 1.2 参数量变换
  • 二、深度可分离卷积
    • 2.1 概述
    • 2.2 计算
  • 三、膨胀卷积


一、分组卷积

1.1 概述

 1. 分组卷积(Group convolution )最早在AlexNet中出现,由于当时的硬件资源有限,训练AlexNet时卷积操作不能全部放在同一个GPU处理,因此把特征图分给多个GPU分别进行处理,最后把多个GPU的结果进行融合。

 2. 一般的卷积会对输入数据的整体一起做卷积操作。而组卷积则是在深度上进行划分,即某几个通道编为一组,对输入数据做组合卷积操作。

在这里插入图片描述

1.2 参数量变换

 1. 标准的 2 D 2D 2D 卷积步骤如下图所示:输入特征为: H × W × C H × W × C H×W×C,然后应用 C ′ C' C 个卷积核组(每个卷积核组的大小为 h × w × c h × w × c h×w×c),输入层被转换为大小为 H ′ × W ′ × C ′ H' × W' × C' H×W×C 的输出特征。

在这里插入图片描述

 2. 分组卷积的表示如下图所示。我们计算一下标准 2 D 2D 2D 卷积 和分组卷积的参数量:
 标准 2 D 2D 2D 卷积: w × h × C × C ′ w × h × C × C' w×h×C×C
 分组卷积: w × h × C / 2 × C ′ / 2 × 2 w × h × C/2 × C'/2 × 2 w×h×C/2×C/2×2
 我们可以发现参数量减少到原来的 1 / 2 1/2 1/2,那当Group为4的时候,参数量将会减少到原来的 1 / 4 1/4 1/4

在这里插入图片描述

二、深度可分离卷积

2.1 概述

 1. 在深度可分离卷积(depthwise separable convolution)中,通常将卷积操作拆分成多个步骤。深度可分离卷积把普通卷积拆分成 D W DW DW 卷积(Depthwise Convolution,深度卷积)和 P W PW PW 卷积(Point Convolution,点卷积)两部分。:深度可分离卷积 = 深度卷积 + 点卷积。

在这里插入图片描述

 2. 深度卷积完成后的特征图数量与输入层的通道数相同。但这种运算对输入层的每个通道独立进行卷积运算,没有有效地利用不同通道在相同空间位置上的特征信息。因此需要点卷积来将这些特征图进行组合生成新的特征图。

 3. 举例:
 (1) 在第一部分深度卷积中,我们在不改变深度的情况下,对输入图像进行了分组卷积。我们使用 3 3 3 5 × 5 × 1 5×5×1 5×5×1 形状的卷积核。每个 5 × 5 × 1 5×5×1 5×5×1 卷积核迭代图像的 1 1 1 个通道(注意: 1 1 1 个通道,而不是所有通道),得到 3 3 3 8 × 8 × 1 8×8×1 8×8×1 的图像。将这些图像叠加在一起可创建 8 × 8 × 3 8×8×3 8×8×3 的图像。

在这里插入图片描述

 (2) 点卷积的运算与常规卷积运算非常相似,它的卷积核的尺寸为 1 × 1 × M 1×1×M 1×1×M M M M 为上一层的通道数。所以这里的卷积运算会将上一步的图像在深度方向上进行加权组合,生成新的特征图。有几个卷积核就有几个输出图像。
 点向卷积之所以如此命名是因为它使用了一个 1 × 1 1×1 1×1 卷积核,我们通过 1 × 1 × 3 1×1×3 1×1×3 卷积核迭代 8 × 8 × 3 8×8×3 8×8×3 图像,得到 8 × 8 × 1 8×8×1 8×8×1 图像。我们可以创建 256 256 256 1 × 1 × 3 1×1×3 1×1×3 卷积核,每个卷积核输出一个 8 × 8 × 1 8×8×1 8×8×1 图像,全部叠加到一起得到形状为 8 × 8 × 256 8×8×256 8×8×256 的最终图像。
在这里插入图片描述

在这里插入图片描述

2.2 计算

 用上面这个例子:
 普通卷积参数量为: 3 × 256 × 5 × 5 3×256×5×5 3×256×5×5
 深度可分离卷积参数量为: 3 × 5 × 5 + 3 × 256 × 1 × 1 3×5×5+3×256×1×1 3×5×5+3×256×1×1

三、膨胀卷积

 1. 膨胀卷积与普通的卷积相比,除了卷积核的大小以外,还有一个膨胀率(dilation rate)参数,主要用来表示膨胀的大小。卷积核的膨胀率(dilate rate)属性定义为卷积核的元素间距。如 dilate rate=2 是每隔一个像素位置应用一个卷积元素,dilate rate=1 就是普通的卷积。具体含义就是在卷积核中填充 dilation rate 个 0。

 2. (a) 是普通卷积,1-dilated convolution,卷积核的感受野为 3 × 3 = 9 3×3=9 3×3=9; (b) 是膨胀卷积,2-dilated convolution,卷积核的感受野为 5 × 5 = 25 5×5=25 5×5=25;(c) 是膨胀卷积,4-dilated convolution,卷积核的感受野为 9 × 9 = 81 9×9=81 9×9=81

在这里插入图片描述

 3. 卷积核经过膨胀后实际参与运算的卷积大小计算公式:膨胀后的卷积核尺寸 = 膨胀系数 × × × (原始卷积核尺寸 − 1 -1 1 + 1 +1 +1

这篇关于卷积变体-----分组卷积、深度可分离卷积、膨胀卷积的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/854560

相关文章

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

韦季李输入法_输入法和鼠标的深度融合

在数字化输入的新纪元,传统键盘输入方式正悄然进化。以往,面对实体键盘,我们常需目光游离于屏幕与键盘之间,以确认指尖下的精准位置。而屏幕键盘虽直观可见,却常因占据屏幕空间,迫使我们在操作与视野间做出妥协,频繁调整布局以兼顾输入与界面浏览。 幸而,韦季李输入法的横空出世,彻底颠覆了这一现状。它不仅对输入界面进行了革命性的重构,更巧妙地将鼠标这一传统外设融入其中,开创了一种前所未有的交互体验。 想象

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

Solr 使用Facet分组过程中与分词的矛盾解决办法

对于一般查询而言  ,  分词和存储都是必要的  .  比如  CPU  类型  ”Intel  酷睿  2  双核  P7570”,  拆分成  ”Intel”,”  酷睿  ”,”P7570”  这样一些关键字并分别索引  ,  可能提供更好的搜索体验  .  但是如果将  CPU  作为 Facet  字段  ,  最好不进行分词  .  这样就造成了矛盾  ,  解决方法

动手学深度学习【数据操作+数据预处理】

import osos.makedirs(os.path.join('.', 'data'), exist_ok=True)data_file = os.path.join('.', 'data', 'house_tiny.csv')with open(data_file, 'w') as f:f.write('NumRooms,Alley,Price\n') # 列名f.write('NA

深度优先(DFS)和广度优先(BFS)——算法

深度优先 深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支,当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访

图解TCP三次握手|深度解析|为什么是三次

写在前面 这篇文章我们来讲解析 TCP三次握手。 TCP 报文段 传输控制块TCB:存储了每一个连接中的一些重要信息。比如TCP连接表,指向发送和接收缓冲的指针,指向重传队列的指针,当前的发送和接收序列等等。 我们再来看一下TCP报文段的组成结构 TCP 三次握手 过程 假设有一台客户端,B有一台服务器。最初两端的TCP进程都是处于CLOSED关闭状态,客户端A打开链接,服务器端