深度学习论文: RepViT: Revisiting Mobile CNN From ViT Perspective及其PyTorch实现

这篇具有很好参考价值的文章主要介绍了深度学习论文: RepViT: Revisiting Mobile CNN From ViT Perspective及其PyTorch实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

深度学习论文: RepViT: Revisiting Mobile CNN From ViT Perspective及其PyTorch实现
RepViT: Revisiting Mobile CNN From ViT Perspective
PDF: https://arxiv.org/pdf/2307.09283.pdf
PyTorch代码: https://github.com/shanglianlm0525/CvPytorch
PyTorch代码: https://github.com/shanglianlm0525/PyTorch-Networks

1 概述

本文通过引入轻量级 ViT 的架构选择,重新审视了轻量级 CNNs 的高效设计。这导致了 RepViT 的出现,这是一种新的轻量级 CNNs 家族,专为资源受限的移动设备设计。在各种视觉任务上,RepViT 超越了现有的最先进的轻量级 ViTs 和 CNNs,显示出优越的性能和延迟。这突显了纯粹的轻量级 CNNs 对移动设备的潜力。

2 RepViT

主要对MobileNetV3-L进行了现代化改进。考虑了移动设备上的延迟和在ImageNet上的top-1准确率。最终,获得了一系列全新的纯轻量级CNN模型,即RepViT,它能够实现更低的延迟和更高的性能。
深度学习论文: RepViT: Revisiting Mobile CNN From ViT Perspective及其PyTorch实现,Paper Reading,Deep Learning,深度学习,cnn,pytorch

2-1 Aligning training recipe

train: 300 epochs
optimizer: AdamW
schedule: cosine annealing learning rate
warmup: 5 epochs
数据增强: Mixup, auto-augmentation, random erasing
正则化: Label Smoothing
activations: GeLU replace Hardswish
benchmark metric: Latency metric

2-2 Block design

Separate token mixer and channel mixer. RepViT 将深度卷积提前,使得通道混合器和令牌混合器能够被分开。为了提高性能,还引入了结构重参数化来在训练时为深度滤波器引入多分支拓扑。
深度学习论文: RepViT: Revisiting Mobile CNN From ViT Perspective及其PyTorch实现,Paper Reading,Deep Learning,深度学习,cnn,pytorch
Reducing expansion ratio and increasing width. 在通道混合器中,原本的扩张比例是4,这意味着MLP块的隐藏维度是输入维度的四倍,这对计算资源造成了很大的负担,对推理时间产生了显著影响。为了解决这个问题,我们可以将扩张比例降低到2,从而减少了参数冗余和延迟,使得MobileNetV3-L的延迟降低到0.65毫秒。随后,通过增加网络的宽度,即增加各阶段的通道数量,Top-1准确率提高到73.5%,而延迟仅增加到0.89毫秒!

2-3 Macro design

RepViT 从宏观架构元素出发,包括 stem,降采样层,分类器以及整体阶段比例。通过优化这些宏观架构元素,模型的性能可以得到显著提高。

Early convolutions for stem. 复杂的起始模块会引入显著的延迟瓶颈,因此用早期卷积替换了原始的起始模块,同时增大通道数到24。总的延迟降低到0.86ms,同时 top-1 准确率提高到 73.9%。
深度学习论文: RepViT: Revisiting Mobile CNN From ViT Perspective及其PyTorch实现,Paper Reading,Deep Learning,深度学习,cnn,pytorch
Deeper downsampling layers. 首先使用一个 1x1 卷积来调整通道维度,然后将两个 1x1 卷积的输入和输出通过残差连接,形成一个前馈网络。此外,他们还在前面增加了一个 RepViT 块以进一步加深下采样层,增加网络深度并减少由于分辨率降低带来的信息损失。这一步提高了 top-1 准确率到 75.4%,同时延迟为 0.96ms。
深度学习论文: RepViT: Revisiting Mobile CNN From ViT Perspective及其PyTorch实现,Paper Reading,Deep Learning,深度学习,cnn,pytorch
**Simple classifier. ** 将原来复杂的分类器替换为一个简单的分类器,即一个全局平均池化层和一个线性层,这一步将延迟降低到 0.77ms,同时 top-1 准确率为 74.8%。
深度学习论文: RepViT: Revisiting Mobile CNN From ViT Perspective及其PyTorch实现,Paper Reading,Deep Learning,深度学习,cnn,pytorch
Overall stage ratio. 在这项改进中,论文选择了一个更优的阶段比例1:1:7:1,并将网络深度增加到2:2:14:2,从而实现了更深层的布局。这一步使得top-1准确率提高到76.9%,同时延迟仅为1.02毫秒。

2-4 Micro design

RepViT 通过逐层微观设计来调整轻量级 CNN,这包括选择合适的卷积核大小和优化挤压-激励(Squeeze-and-excitation,简称SE)层的位置。这两种方法都能显著改善模型性能。

Kernel size selection. 众所周知,CNNs 的性能和延迟通常受到卷积核大小的影响。为了建模像 MHSA 这样的远距离上下文依赖,ConvNeXt 使用了大卷积核,从而实现了显著的性能提升。然而,大卷积核对于移动设备并不友好,因为它的计算复杂性和内存访问成本。MobileNetV3-L 主要使用 3x3 的卷积,有一部分块中使用 5x5 的卷积。本文将它们替换为3x3的卷积,这导致延迟降低到 1.00ms,同时保持了76.9%的top-1准确率。
Squeeze-and-excitation layer placement.
作为一个通道注意力模块,SE层可以弥补卷积在缺乏数据驱动属性上的限制,从而带来更好的性能。本文设计了一种策略,在所有阶段以交叉块的方式使用SE层,从而在最小的延迟增量下最大化准确率的提升,这一步将top-1准确率提升到77.4%,同时延迟降低到0.87ms。

RepViT的整体架构如下:
深度学习论文: RepViT: Revisiting Mobile CNN From ViT Perspective及其PyTorch实现,Paper Reading,Deep Learning,深度学习,cnn,pytorch
通过整合上述改进策略,我们便得到了模型RepViT的整体架构。
深度学习论文: RepViT: Revisiting Mobile CNN From ViT Perspective及其PyTorch实现,Paper Reading,Deep Learning,深度学习,cnn,pytorch

3 Experiments

深度学习论文: RepViT: Revisiting Mobile CNN From ViT Perspective及其PyTorch实现,Paper Reading,Deep Learning,深度学习,cnn,pytorch文章来源地址https://www.toymoban.com/news/detail-631592.html

到了这里,关于深度学习论文: RepViT: Revisiting Mobile CNN From ViT Perspective及其PyTorch实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mobile-ViT (MobileViT)网络讲解

      上篇博文我们分析了 VIT 的代码,有不了解的小伙伴可以去看下:Vision Transformer(VIT)代码分析——保姆级教程。这篇博文我们先介绍下Mobile-ViT的原理部分,代码分析我们下篇博文再介绍。下面附上论文和官方代码。 论文连接:https://arxiv.org/abs/2110.02178 官方代码:https://g

    2024年02月06日
    浏览(38)
  • 【图像分类】【深度学习】ViT算法Pytorch代码讲解

    ViT是由谷歌公司的Dosovitskiy, Alexey等人在《 An Image Is Worth 16x16 Words: Transformers For Image Recognition At Scale【ICLR2021】》【论文地址】一文中提出的模型,提出了一种基于transformer结构的模型,摒弃传统的CNN结构,直接将Transformer应用到图像块序列上一样可以达到非常好的性能。 论文

    2024年02月08日
    浏览(65)
  • [论文阅读] Revisiting Feature Propagation and Aggregation in Polyp Segmentation

    [论文地址] [代码] [MICCAI 23] Abstract 息肉的准确分割是筛查过程中有效诊断结直肠癌的关键步骤。 由于能够有效捕获多尺度上下文信息,普遍采用类似UNet 的编码器-解码器框架。 然而,两个主要限制阻碍了网络实现有效的特征传播和聚合。 首先,跳跃连接仅将单个尺度特征传

    2024年02月02日
    浏览(73)
  • ViT模型架构和CNN区别

    目录 Vision Transformer如何工作 ViT模型架构 ViT工作原理解析 步骤1:将图片转换成patches序列 步骤2:将patches铺平 步骤3:添加Position embedding 步骤4:添加class token 步骤5:输入Transformer Encoder 步骤6:分类 总结 Vision Transformer(VIT)与卷积神经网络(CNN)相比 数据效率和泛化能力:

    2024年02月11日
    浏览(28)
  • 深度学习04-CNN经典模型

    卷积神经网络(CNN)是深度学习中非常重要的一种网络结构,它可以处理图像、文本、语音等各种类型的数据。以下是CNN的前4个经典模型 LeNet-5 LeNet-5是由Yann LeCun等人于1998年提出的,是第一个成功应用于手写数字识别的卷积神经网络。它由7层神经网络组成,包括2层卷积层、

    2024年02月06日
    浏览(41)
  • 深度学习——CNN卷积神经网络

    卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习中常用于处理具有网格结构数据的神经网络模型。它在计算机视觉领域广泛应用于图像分类、目标检测、图像生成等任务。 CNN 的核心思想是通过利用局部感知和参数共享来捕捉输入数据的空间结构信息。相比于传统

    2024年02月15日
    浏览(48)
  • 深度学习|CNN卷积神经网络

    在CNN没有出现前,图像对人工智能来说非常难处理。 主要原因: 图像要处理的数据量太大了。图像由像素组成,每个像素又由不同颜色组成,一张1000×1000彩色RGB图像需要的参数是1000×1000×3,需要三百万参数左右,普通神经网络会全用全连接方法来学习整幅图像上的特征,处

    2024年02月11日
    浏览(52)
  • 深度学习03-卷积神经网络(CNN)

    CNN,即卷积神经网络(Convolutional Neural Network),是一种常用于图像和视频处理的深度学习模型。与传统神经网络相比,CNN 有着更好的处理图像和序列数据的能力,因为它能够自动学习图像中的特征,并提取出最有用的信息。 CNN 的一个核心特点是卷积操作,它可以在图像上进

    2024年02月05日
    浏览(71)
  • 深度学习1.卷积神经网络-CNN

    目录 卷积神经网络 – CNN CNN 解决了什么问题? 需要处理的数据量太大 保留图像特征 人类的视觉原理 卷积神经网络-CNN 的基本原理 卷积——提取特征 池化层(下采样)——数据降维,避免过拟合 全连接层——输出结果 CNN 有哪些实际应用? 总结 百度百科+维基百科 卷积层

    2024年02月11日
    浏览(54)
  • 深度学习05-CNN循环神经网络

    循环神经网络(Recurrent Neural Network,RNN)是一种具有循环连接的神经网络结构,被广泛应用于自然语言处理、语音识别、时序数据分析等任务中。相较于传统神经网络,RNN的主要特点在于它可以处理序列数据,能够捕捉到序列中的时序信息。 RNN的基本单元是一个循环单元(

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包