XSepConv 极致分离卷积块优于DWConv | Extremely Separated Convolution
思想简单有效,准备手动实现一下代码
自己实现代码连接:https://blog.csdn.net/weixin_42096202/article/details/104778248
Abstract:
DWConv已逐渐成为现代高效神经网络不可或缺的运算,近来更大尺寸的卷积(5X5)也被应用于此。在本文中,我们提出了一种新型的极致分离卷积块(XSepConv),它将空间分离卷积融合成DWConv,以进一步降低计算成本和大核的参数大小。此外,我们使用额外的2X2DWConv加上改进的对称padding策略来补偿空间分离卷积带来的副作用。XSepConv的设计可以高效的替代大核尺寸的DWConv。为了验证这一点,我们将XSepConv应用于最先进的架构MobileNetV3-Small,并在四个竞争激烈的基准数据集(CIFAR-10、CIFAR-100、SVHN和Tiny-ImageNet)上进行了广泛的实验,以证明XSepConv确实能够在准确性和效率之间取得更好的平衡。
Introduction:
1.之前应用较多的轻量级网络大多是基于深度可分离卷积的,属于分组卷积的个例,其中
Depthwise separable convolutions = Depthwise convolution + Pointwise convolution
2.Nips2019的工作Convolution with even-sized kernels and symmetric padding,使用对称padding策略解决了偶数尺寸大小的卷积提取特征带来的位置偏移问题。与深度卷积相比,偶数大小的传统卷积也可以获得具有竞争力的精度
3.之前的相关工作如MixNet探索了卷积核大小对于性能的影响,大尺寸的卷积被证明可以有效增强网络性能
4.空间分离卷积 == KxK卷积 = Kx1卷积 + 1xK卷积,可以进一步节省计算成本。考虑到基于深度卷积的CNNs主要侧重于对通道数的探索以达到降低计算成本的目的,可以通过对正交空间空间维数的进一步分解来实现更大幅度的压缩,特别是对大深度卷积核。空间可分卷积可以看作是空间层次上的分解,由宽度方向的卷积和高度方向的卷积组成,近似替代原来的二维空间卷积,从而降低了计算复杂度。然而,直接将空间可分卷积应用在网络架构中会带来大量的信息损失。
本文提出了一种极致分离的卷积块XSepConv,它将深度分离卷积与空间可分卷积混合在一起,形成空间可分的深度卷积,进一步减少了大深度卷积核的参数大小和计算量。考虑到空间分离卷积特别是在水平和竖直方向上缺乏足够的捕获信息的能力,额外的操作需要捕捉信息在其他方向(e.g.对角方向)避免信息大量丢失。在这里,我们使用一个简单而有效的操作,2X2DWConv与改进的对称填充策略,在一定程度上以补偿上述副作用。
XSepConv:
1.basic XSepConv block:
K×K DW = 2×2 DW(改进对称padding策略)+1×K DW + K×1 DW
利用空间分离卷积来减小大深度卷积核的参数大小和计算复杂度,并使用一个额外的2x2深度卷积和改进的对称填充策略来补偿空间可分卷积带来的副作用。
2.down sampling XSepConv block:
K×K DW = 2×2 DW(改进对称padding策略)+1×K DW(stride=2) + K×1 DW(stride=2)
相当于在竖直水平两个方向分别down sampling,论文中还分析了具体计算量和参数量的计算,讨论了down sampling模块适用于卷积核尺寸>7。
Improved Symmetric Padding Strategy:
当使用偶数卷积核时,非对称padding方式,例如只在右下方向,常常用来保证特征图大小不变。因此,激活值会偏移到空间位置的左上角,这就是移位问题。为了解决这个问题上图(a)的操作为:
1.对输入特征图按照通道分为4个组
2.对4个组特征分别按照左上,左下,右上和右下方向Padding
3.对4个padding后的特征分别使用2x2卷积提取特征
4.对提取到的特征进行拼接
然而,在图像分类等大多数计算机视觉任务中,最重要的输出是最后一层而不是中间的单层。如图2(a)所示,传统对称padding策略将在最后一层的一些输出处遇到不对称。如果沿着所有四个移位方向都不同的路径(如图2(a)中的绿线)的信息流通,则在最终输出中消除位置偏移。否则,位置偏移将在至少一个方向上累积,例如,图2(a)中的红线指示左上方向的位置偏移将在最终将特征挤压到空间位置的左上角并导致性能下降的最终输出中累积。为了解决这个问题,本文提出了改进的对称padding策略,具体如图2(b):
1.定义4个padding方向
2.假设N为网络中使用2x2卷积层的个数,如果可以被4整除,则按照四个方向顺序padding:
3.如果N%4 = 2,最后两层具有偶数大小内核的padding方向是相反的,以便尽可能地消除偏移。
4.如果N%4 = 1,最后一层使用传统对称padding策略.
Experiments:
1.XSepConv与DWConv:
2.大卷积核:
3.结构设计:
4.结构对比:
XSepConv 极致分离卷积块优于DWConv | Extremely Separated Convolution相关推荐
- pytorch_lesson16.2 架构对学习/鲁棒性的影响(VGG16复现+感受野+平移不变性)+架构对参数量的影响(1*1卷积核+分组卷积与深度分离卷积+NiN网络复现)
提示:仅仅是学习记录笔记,搬运了学习课程的ppt内容,本意不是抄袭!望大家不要误解!纯属学习记录笔记!!!!!! 文章目录 前言 一.架构对学习能力/鲁棒性的影响 1 深度 1.1 困难与实践 1.2 ...
- 代码实践|通过简单代码来回顾卷积块的历史
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 我试着定期阅读ML和AI的论文,这是保持不掉队的唯一的方法.作为一 ...
- 【深度学习】讲一个深度分离卷积结构和空洞卷积的应用
[深度学习]讲一个深度分离卷积结构和空洞卷积的应用 文章目录 前言:看一张图像 1 概述1.1 正常卷积1.2 Depth可分离卷积 2 深度可分离卷积的优点 3 空洞(扩张)卷积(Dilated/A ...
- 【ICCV-2019】ACNet:通过非对称卷积块增强CNN的核骨架 3*3卷积==>1*3卷积+3*1卷积=白给的精度提升
论文:https://arxiv.org/pdf/1908.03930v1.pdf 代码:https://github.com/ShawnDing1994/ACN 通过非对称卷积块增强CNN的核骨架 ...
- 特征图注意力_CBAM:卷积块注意力模块
此篇文章内容源自 CBAM: Convolutional Block Attention Module,若侵犯版权,请告知本人删帖. 原论文下载地址: https://arxiv.org/pdf/18 ...
- 常规-分组-深度分离-分组深度分离卷积-参数量-计算量-dilation-python实现
不同的卷积操作 本文所用样本 一般的卷积(常规的) 分组卷积 深度分离卷积 逐通道卷积(depthwise conv) 逐点卷积 (pointwise conv) 分组深度分离卷积 上面卷积总结 卷积 ...
- 【深度学习】移动翻转瓶颈卷积的实现(mobile inverted bottleneck convolution)
[深度学习]移动翻转瓶颈卷积的实现(mobile inverted bottleneck convolution) 文章目录 1 MBConv1.1 Depthwise Convolution1.2 ...
- tensorflow卷积报错Failed to get convolution algorithm. This is probably because cuDNN failed t
tensorflow卷积报错Failed to get convolution algorithm. This is probably because cuDNN failed t 说明:环境是ten ...
- 深度学习——卷积块回顾
Bottleneck块 Bottleneck模块的思想是通过1×1卷积先减少维度再增加维度,启到减少参数降低运算量的作用. def bottleneck_module(x, out_dim, rati ...
- CBAM(卷积块注意模块)学习笔记
论文地址:https://arxiv.org/abs/1807.06521 一.简介 我们提出了Convolutional Block Attention Module(CBAM), 一个简单而有效的 ...
最新文章
- 使用Python,OpenCV进行平滑和模糊
- 做管理必须避开的六个坑
- ACM-ICPC如何起步
- SOA面向服务架构打包部署
- C++返回栈上的数组(局部变量)问题探索
- linux系统添加网卡驱动,Linux 2.6.35内核配置和网卡驱动添加
- 最长无重复字符子串?
- Halcon 一维测量
- unity性能优化初级入门篇
- IIS添加对ashx文件的支持
- MAC下Charles的破解版
- 董明珠赞同取消住房公积金 格力员工每人一套房
- 计算噪声方差的函数 matlab,噪声强度(噪声功率) 噪声方差到底有什么关系? matlab中的awgn函数...
- Thrift生成java、php代码报错Cannot use reserved language keyword: end
- java实战小结-Controller报错:Content type ‘multipart/form-data;boundary=----WebKitFormBoundaryxxxx not supp
- mysql最大整数类型_MySQL教程19-整数类型
- 5k显示器和4k显示器有什么区别
- CSharp代码示例每日一讲: 在GDI+中使用画笔和画刷
- html页面使用var变量,html元素:var标签的使用方法及作用
- maven assembly打包zip报错 You must set at least one file.