目录

一:深度可分离卷积

深度可分离卷积完整示意图

普通卷积和深度可分离卷积计算量的对比

二:Group CONV(组卷积)


一:深度可分离卷积

深度可分离卷积被提出于MobileNet中,其主要作用用于减少模型参数和运算量。

深度可分离卷积主要由两部分构成:DW卷积和PW卷积

网络中的亮点在于(1)DW卷积(大大的减少了运算量和参数数量)

(2)增加了参数α和β

传统卷积和DW卷积的对比图如下所示:

在DW卷积中每个卷积核的深度都是为1的,每个卷积核只负责与输入特征矩阵的一个channel进行卷积运算,然后再得到相应的输出矩阵的一个channel

深度可分离卷积完整示意图

图中的PW卷积其实和普通的卷积区别不大,只是将卷积核大小变为1

普通卷积和深度可分离卷积计算量的对比

其中代表的是输入特征矩阵的高和宽,是卷积核的大小,M是输入特征矩阵的深度。然后N是输出特征矩阵的深度也对应着卷积核的个数。

所以普通卷积的计算量等于:卷积核的高*卷积核的宽*输入特征矩阵的深度*卷积核的个数N*输入特征矩阵的宽*输入特征矩阵的宽

那么深度可分离卷积的计算量就等于DW卷积和PW卷积两种卷积的和

对于DW卷积:卷积核的高*卷积核的宽*1(因为卷积核的深度为1)*输入特征矩阵的深度*输入特征矩阵的宽度*输入特征矩阵的高度

对于PW卷积:1*1(这里的卷积核大小为1)*输入特征矩阵的深度*卷积核的个数*输入特征矩阵的高度和宽度

二:Group CONV(组卷积)

组卷积和普通卷积对比示意图如下

假设每个卷积核的高和宽都是k,再假设输入特征矩阵的channel等于,卷积核个数等于n。普通卷积核所需要的参数数量为k*k**n。

而在组卷积中,在图中假设将输入特征矩阵的channel划分为两个组,然后再对每个组分别进行卷积操作。假设第一个组使用n/2个卷积核那么可以得到channel=n/2的特征矩阵,同理在第二个组中也使用n/2个卷积核,那么它的输出矩阵深度也是n/2。再将这两个特征矩阵的Contact拼接起来最终得到的特征矩阵也是n

参数量:假设卷积核的高和宽都是为k的,假设输入特征矩阵的channel等于分成了g组,使用了g/n个卷积核。并且是划分了g个组·所以还需要乘一个g。

当分组个数与输入特征矩阵的Channel是保持一致的,并且输出特征矩阵的channel也与输入特征矩阵的channel保持一致的话,此时组卷积就是DW卷积

深度可分离卷积组卷积相关推荐

  1. 【Pytorch神经网络理论篇】 32 PNASNet模型:深层可分离卷积+组卷积+空洞卷积

    1 PNASNet模型简介 PNASNet模型是Google公司的AutoML架构自动搜索所产生的模型,它使用渐进式网络架构搜索技术,并通过迭代自学习的方式,来寻找最优网络结构.即用机器来设计机器学习 ...

  2. Lesson 16.1016.1116.1216.13 卷积层的参数量计算,1x1卷积核分组卷积与深度可分离卷积全连接层 nn.Sequential全局平均池化,NiN网络复现

    二 架构对参数量/计算量的影响 在自建架构的时候,除了模型效果之外,我们还需要关注模型整体的计算效率.深度学习模型天生就需要大量数据进行训练,因此每次训练中的参数量和计算量就格外关键,因此在设计卷积网 ...

  3. 深度可分离卷积(Xception 与 MobileNet)

    前言 从卷积神经网络登上历史舞台开始,经过不断的改进和优化,卷积早已不是当年的卷积,诞生了分组卷积(Group convolution).空洞卷积(Dilated convolution 或 À tr ...

  4. 深度可分离卷积Depthwise Separable Convolution

    从卷积神经网络登上历史舞台开始,经过不断的改进和优化,卷积早已不是当年的卷积,诞生了分组卷积(Group convolution).空洞卷积(Dilated convolution 或 À trous ...

  5. [Pytorch]torch.nn.functional.conv2d与深度可分离卷积和标准卷积

    torch.nn.functional.conv2d与深度可分离卷积和标准卷积 前言 F.conv2d与nn.Conv2d F.conv2d 标准卷积考虑Batch的影响 深度可分离卷积 深度可分离卷 ...

  6. 深度学习中常见卷积(普通卷积、1×1卷积、转置卷积、可分离卷积、膨胀(空洞)卷积、3D卷积)

      总是在网络上看到各种名词的卷积,但是有搞不懂是什么含义,于是结合网上查阅的资料,总结一下.目前比较常用的卷积主要有常规的卷积.1×1卷积.转置卷积.可分离卷积.膨胀卷积.3D卷积.   以下是一些 ...

  7. 分组卷积/转置卷积/空洞卷积/反卷积/可变形卷积/深度可分离卷积/DW卷积/Ghost卷积/

    文章目录 1. 常规卷积 2. 分组卷积 3. 转置卷积 4. 空洞卷积 5. 可变形卷积 6. 深度可分离卷积(Separable Convolution) 6.1 Depthwise Convol ...

  8. 深度可分离卷积(DepthwiseSeparableConvolution):Depthwise卷积与Pointwise卷积

    0.前言 1.深度可分离卷积 1.1 depthwise卷积 1.2 pointwise卷积 2.代码实现 参考 0.前言 深度可分离卷积不用多说,在轻量级网络架构方面是一个绕不开的话题,只要接触深度 ...

  9. 关于深度可分离卷积、空洞卷积、分组卷积的理解笔记

    深度可分离卷积(Depthwise separable convolution) 深度可分离卷积由逐通道卷积(Depthwise Convolution)和逐点卷积(Pointwise Convolu ...

  10. 对深度可分离卷积、分组卷积、扩张卷积、转置卷积(反卷积)的理解

    参考: https://zhuanlan.zhihu.com/p/28749411 https://zhuanlan.zhihu.com/p/28186857 https://blog.yani.io ...

最新文章

  1. 列举一些分析次级代谢物基因簇相关的数据库
  2. jQuery计数子元素
  3. android开发学习 ------- 弹出框
  4. postmain请求中午乱码_完美解决Get和Post请求中文乱码的问题
  5. python客户价值分析_航空公司客户价值分析实例
  6. 海量数据挖掘MMDS week3:流算法Stream Algorithms
  7. vs2017环境下编译log4cpp-1.1.3
  8. 二进制GCD算法解析
  9. 移动通信原理,GSM/GPRS模块无线传输实验教学
  10. MySQL 有这一篇就够(呕心狂敲37k字,只为博君一点赞!!!)
  11. JavaScript重定向Referer丢失
  12. 人脸识别长篇研究 | (一)发展与市场(二)技术与流程(三)行业应用
  13. 复变函数——一到三章总结
  14. Unrecognized Windows Sockets error: 10106: Socket creation failed
  15. mybatis插入大于号小于号到oracle
  16. 关于一台机器运行两个身份证读卡器模块(总结)
  17. linux—rm命令详解(一天一个命令)
  18. 离散数学之数理结构推理理论
  19. java jsp开发的电子商务系统代码下载
  20. Java Date Time 教程-java.sql.Date

热门文章

  1. maka html5,MAKA H5制作
  2. JAVA学习——GUI鼠标画图交互练习
  3. 歌曲剪辑软件测试自学,想做vlog?想剪视频?全网最良心的视频剪辑软件测评之入门篇...
  4. unity实现前后左右移动代码_Unity实现物体左右移动效果
  5. 微信小程序 有赞UI关于Tab 标签页的坑
  6. 2.5 js格式化时间库
  7. 鸿蒙系统图标大小怎么调节,华为手机桌面图标大小怎么调?用华为手机的朋友这些技巧需要了解...
  8. 制图折断线_cad折断线怎么画,你值得一看的技巧
  9. 人脸检测实战终极:使用 OpenCV 和 Python 进行人脸对齐
  10. matlab如何设置数值类型,matlab数据类型(数值类型)