深度学习论文: Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs及其PyTorch实现
深度学习论文: Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs及其PyTorch实现
Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs
PDF: https://arxiv.org/pdf/2203.06717.pdf
PyTorch代码: https://github.com/shanglianlm0525/CvPytorch
PyTorch代码: https://github.com/shanglianlm0525/PyTorch-Networks
1 概述
本文提出一种大量采用超大卷积核的模型——RepLKNet,在结构重参数化、depthwise 卷积等设计要素的加持下,超大卷积既强又快,在目标检测和语义分割等任务上超过 Swin Transformer 而且远超传统小卷积模型。
2 Guidelines of Applying Large Convolutions
大核卷积的实用往往伴随着性能与速度的下降,为此,本文总结了5条大核卷积高效使用的指标方针。
2-1 Guideline 1: large depth-wise convolutions can be efficient in practice.
一般来讲,大核卷积计算量非常大。这是因为核尺寸的增加会对应导致参数量与FLOPs的增加,而这个弊端可以通过Depth-wise卷积缓解。比如,RepLKNet的的卷积核从[3; 3; 3; 3] 提升到了[31; 29; 27; 13],但FLOPs与参数量仅增加18.6%与10.4%。实际上,计算复杂度主要由 1x1 卷积主导。
此外深度卷积计算效率低,主要由于 3x3 深度卷积的存算比(ratio of computation vs. memory access cost)较低导致,而大核深度卷积的存算比更高,其实际推理延迟并未大幅提升。
2-2 Guideline 2: identity shortcut is vital especially for networks with very large kernels.
恒等跳过连接对于大核卷积性能提升非常重要
2-3 Guideline 3: re-parameterizing with small kernels helps to make up the optimization issue.
通过结构重参数技术,提升卷积核尺寸将不再导致性能下降。
将卷积核尺寸从9提升到13反而会带来性能下降;而引入结构重参数化后则可以解决该问题。
2-4 Guideline 4: large convolutions boost downstream tasks much more than ImageNet classification.
大核卷积对下游任务的提升更明显,原因如下:
- 首先,大核设计可以大幅提升感受野(Effective Receptive Fields, ERFs),而感受野对于下游任务非常重要;
- 其次,我们认为大核设计可以为网络带来更多的形状偏置。
2-5 Guideline 5: large kernel (e.g., 13×13) is useful even on small feature maps (e.g., 7×7).
大核卷积对于小图仍然有效。尽管最后阶段的卷积已有包含非常大的感受野,进一步提升感受野还可以进一步提升下游任务的性能。
3 RepLKNet
RepLKNet的架构示意图:
Stem:它由常规3x3卷积+深度卷积以及1x1卷积构成;
Stage:每个阶段均包含多个RepLK模块,每个RepLK由跳过连接与大核卷积构成,ConvFFN部分则是1x1卷积+GELU+BN构成,即采用BN替换了LN;
Transition Block:该模块置于不同阶段之间,用于调整特征分辨率和通道数。它由1x1卷积和3x3深度卷积构成。
总而言之,RepLKNet的超参包含每个阶段的RepLK模块数B与每个阶段的通道维度C以及核尺寸K。
深度学习论文: Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs及其PyTorch实现相关推荐
- 【论文阅读】Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs
[论文阅读]Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs 1.摘要 2.通过ViTs审视CNN 3. ...
- Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs笔记
论文地址:https://arxiv.org/pdf/2203.06717.pdf 代码地址:GitHub - DingXiaoH/RepLKNet-pytorch: Scaling Up Your ...
- RepLKNet:Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs
<Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs> 论文: https://arxiv.o ...
- Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs
文章目录 摘要 介绍 使用大卷积的指南 在深度卷积中使用大核 shotcut的使用 用小内核重新参数化[29]有助于弥补优化问题 对比提升ImageNet分类效果,大型卷积更能提升下游任务的效果 大型 ...
- 论文笔记——Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs
论文PDF 作者 一作:丁霄汉 谷歌学术主页 通讯:张祥雨 谷歌学术主页 摘要 现代卷积神经网络模型普遍倾向于使用多个小卷积核来代替大卷积核,受到ViT的启发,论文重新审视了大卷积核在现代卷积神经网络 ...
- 【卷积核设计】Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs
文章目录 一.背景 二.方法 三.RepKLNet:a Large-Kernel Architecture 3.1 结构 3.2 尽可能的让卷积核变大 3.3 图像分类 3.4 语义分割 3.5 目标 ...
- 深度学习论文阅读目标检测篇(四)中英文对照版:YOLOv1《 You Only Look Once: Unified, Real-Time Object Detection》
深度学习论文阅读目标检测篇(四)中英文对照版:YOLOv1< You Only Look Once: Unified, Real-Time Object Detection> Abstra ...
- 深度学习论文阅读目标检测篇(一):R-CNN《Rich feature hierarchies for accurate object detection and semantic...》
深度学习论文阅读目标检测篇(一):R-CNN<Rich feature hierarchies for accurate object detection and semantic segmen ...
- 深度学习论文阅读目标检测篇(七)中英对照版:YOLOv4《Optimal Speed and Accuracy of Object Detection》
深度学习论文阅读目标检测篇(七)中英对照版:YOLOv4<Optimal Speed and Accuracy of Object Detection> Abstract 摘要 1. In ...
最新文章
- 目前网络上开源的网络爬虫以及一些简介和比较
- Nginx源码分析(3)
- QML基础类型之size
- 正则表达式: 正向预查和负向预查
- WPF中设置ListView的Items颜色交替显示
- JAVA中equals()方法的重要性
- 3-14pytorch与统计学方法
- Extjs下拉多选框
- h5调用摄像头扫二维码_你的H5还没有升级到小程序吗
- DHCP Option 82
- ISILON OneFS CLI界面网络配置
- 网易公开课——可汗学院公开课:现代密码学(1)
- repost 从APP工厂到游戏工厂?字节跳动进攻腾讯腹地
- 问游戏java面试问题_JAVA程序员面试32问,你能回答多少题?
- Apple iPhone 8G手机误升级至2.0降级破解日记
- python做图片美化_Python实现简单的照片磨皮(照片智能磨皮) 最新免费版
- 如何选择舒适的双肩包/电脑包
- 安卓虚拟摄像头_iPhone 的“第四颗摄像头”位置,为什么给了激光雷达?
- postgres 判断null_PostgreSQL空值null参与运算的处理方法
- MAC地址存在的意义