深度可分离卷积组卷积
目录
一:深度可分离卷积
深度可分离卷积完整示意图
普通卷积和深度可分离卷积计算量的对比
二: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卷积
深度可分离卷积组卷积相关推荐
- 【Pytorch神经网络理论篇】 32 PNASNet模型:深层可分离卷积+组卷积+空洞卷积
1 PNASNet模型简介 PNASNet模型是Google公司的AutoML架构自动搜索所产生的模型,它使用渐进式网络架构搜索技术,并通过迭代自学习的方式,来寻找最优网络结构.即用机器来设计机器学习 ...
- Lesson 16.1016.1116.1216.13 卷积层的参数量计算,1x1卷积核分组卷积与深度可分离卷积全连接层 nn.Sequential全局平均池化,NiN网络复现
二 架构对参数量/计算量的影响 在自建架构的时候,除了模型效果之外,我们还需要关注模型整体的计算效率.深度学习模型天生就需要大量数据进行训练,因此每次训练中的参数量和计算量就格外关键,因此在设计卷积网 ...
- 深度可分离卷积(Xception 与 MobileNet)
前言 从卷积神经网络登上历史舞台开始,经过不断的改进和优化,卷积早已不是当年的卷积,诞生了分组卷积(Group convolution).空洞卷积(Dilated convolution 或 À tr ...
- 深度可分离卷积Depthwise Separable Convolution
从卷积神经网络登上历史舞台开始,经过不断的改进和优化,卷积早已不是当年的卷积,诞生了分组卷积(Group convolution).空洞卷积(Dilated convolution 或 À trous ...
- [Pytorch]torch.nn.functional.conv2d与深度可分离卷积和标准卷积
torch.nn.functional.conv2d与深度可分离卷积和标准卷积 前言 F.conv2d与nn.Conv2d F.conv2d 标准卷积考虑Batch的影响 深度可分离卷积 深度可分离卷 ...
- 深度学习中常见卷积(普通卷积、1×1卷积、转置卷积、可分离卷积、膨胀(空洞)卷积、3D卷积)
总是在网络上看到各种名词的卷积,但是有搞不懂是什么含义,于是结合网上查阅的资料,总结一下.目前比较常用的卷积主要有常规的卷积.1×1卷积.转置卷积.可分离卷积.膨胀卷积.3D卷积. 以下是一些 ...
- 分组卷积/转置卷积/空洞卷积/反卷积/可变形卷积/深度可分离卷积/DW卷积/Ghost卷积/
文章目录 1. 常规卷积 2. 分组卷积 3. 转置卷积 4. 空洞卷积 5. 可变形卷积 6. 深度可分离卷积(Separable Convolution) 6.1 Depthwise Convol ...
- 深度可分离卷积(DepthwiseSeparableConvolution):Depthwise卷积与Pointwise卷积
0.前言 1.深度可分离卷积 1.1 depthwise卷积 1.2 pointwise卷积 2.代码实现 参考 0.前言 深度可分离卷积不用多说,在轻量级网络架构方面是一个绕不开的话题,只要接触深度 ...
- 关于深度可分离卷积、空洞卷积、分组卷积的理解笔记
深度可分离卷积(Depthwise separable convolution) 深度可分离卷积由逐通道卷积(Depthwise Convolution)和逐点卷积(Pointwise Convolu ...
- 对深度可分离卷积、分组卷积、扩张卷积、转置卷积(反卷积)的理解
参考: https://zhuanlan.zhihu.com/p/28749411 https://zhuanlan.zhihu.com/p/28186857 https://blog.yani.io ...
最新文章
- 列举一些分析次级代谢物基因簇相关的数据库
- jQuery计数子元素
- android开发学习 ------- 弹出框
- postmain请求中午乱码_完美解决Get和Post请求中文乱码的问题
- python客户价值分析_航空公司客户价值分析实例
- 海量数据挖掘MMDS week3:流算法Stream Algorithms
- vs2017环境下编译log4cpp-1.1.3
- 二进制GCD算法解析
- 移动通信原理,GSM/GPRS模块无线传输实验教学
- MySQL 有这一篇就够(呕心狂敲37k字,只为博君一点赞!!!)
- JavaScript重定向Referer丢失
- 人脸识别长篇研究 | (一)发展与市场(二)技术与流程(三)行业应用
- 复变函数——一到三章总结
- Unrecognized Windows Sockets error: 10106: Socket creation failed
- mybatis插入大于号小于号到oracle
- 关于一台机器运行两个身份证读卡器模块(总结)
- linux—rm命令详解(一天一个命令)
- 离散数学之数理结构推理理论
- java jsp开发的电子商务系统代码下载
- Java Date Time 教程-java.sql.Date
热门文章
- maka html5,MAKA H5制作
- JAVA学习——GUI鼠标画图交互练习
- 歌曲剪辑软件测试自学,想做vlog?想剪视频?全网最良心的视频剪辑软件测评之入门篇...
- unity实现前后左右移动代码_Unity实现物体左右移动效果
- 微信小程序 有赞UI关于Tab 标签页的坑
- 2.5 js格式化时间库
- 鸿蒙系统图标大小怎么调节,华为手机桌面图标大小怎么调?用华为手机的朋友这些技巧需要了解...
- 制图折断线_cad折断线怎么画,你值得一看的技巧
- 人脸检测实战终极:使用 OpenCV 和 Python 进行人脸对齐
- matlab如何设置数值类型,matlab数据类型(数值类型)