英伟达最新开源

2023-11-19

Title: FasterViT: Fast Vision Transformers with Hierarchical Attention
Paper: https://arxiv.org/pdf/2306.06189.pdf
Code: https://github.com/NVlabs/FasterViT

导读

今天为大家带来 NVIDIA 研究团队最新开源的一个高效神经网络架构 “FasterViT”,旨在提高计算机视觉领域的图像处理速度。

与常规的神经网络架构一样,FasterViT 结合了CNN局部特征学习方面的优势和Transformer全局建模能力方面的优势。此外,论文的亮点是引入了一种称为Hierarchical Attention, HAT的方法,将具有二次复杂度的全局自注意力机制分解为多级注意力,以降低计算成本。该方法利用了高效的基于窗口的自注意力机制,每个窗口都有专用的"carrier tokens",参与局部和全局特征学习。在高层级输出特征上,全局自注意力机制以较低的成本实现了窗口间的高效交流。

FasterViT在准确性与图像处理速度之间达到了最优的权衡点,并在图像分类、目标检测和语义分割等多个计算机视觉任务上得到了广泛验证。研究人员还展示了HAT可以作为现有网络的插件模块使用,并增强它们的性能。与竞争对手相比,FasterViT在高分辨率图像上表现出更快速和更准确的性能。

动机

FasterViT 提出的动机是解决 CV 领域中在处理高分辨率图像时所面临的效率问题。尽管 ViT 在各个任务上取得了优秀的性能,但其自注意力机制的计算复杂度对于高分辨率图像来说是很高的,导致处理速度较慢。此外,原始的 ViT 模型在学习特征表示时缺乏多尺度的能力,对于一些下游任务,如目标检测和语义分割,这种等向性结构并不适用。

FasterViT 的架构设计着重于在 CV 任务中实现最高的吞吐量,并针对主流的通用硬件进行优化,这些硬件在并行计算方面表现出色。该架构的计算涉及一组具有 CUDA 和 Tensor 核心作为计算单元的流式多处理器(SMs)。计算过程中需要频繁进行数据传输,而数据移动带宽可能会对计算产生影响。因此,受计算限制的操作是受数学计算限制的,而受内存传输限制的操作则是受内存限制的。需要在两者之间进行权衡,以最大化吞吐量,下面带大家具体分析下。

看多几个网络的小伙伴都了解,在一般的分层视觉模型中,随着深度的增加,中间表示的空间维度会缩小。初始网络层通常具有较大的空间维度和较少的通道(例如,112x112x64?),使它们受限于内存。这使得更适合于计算密集型操作,例如密集卷积,而不是对传输成本产生额外开销的深度可分卷积或稀疏卷积。此外,还存在一些无法用矩阵操作表示的 op,如非线性激活、池化和批归一化,也受限于内存,应尽量减少使用。相反,较后面的层通常受限于计算,需要进行计算密集型操作。例如,分层 CNN 的特征图大小为 14x14,具有高维度的卷积核。这为更具表现力的操作提供了空间,如层归一化、注意力机制等,对吞吐量影响相对较小。

方法

Framework

上面我们简要分析了一些动机,基于这些要点,本文提出了一种可以从加速计算硬件中获益的新颖架构,整体框架如图所示:

FastViT

是不是很简洁?可以看出,该方法利用较早阶段的卷积层对更高分辨率的输入进行处理。模型的后半部分依赖于新颖的分层注意力层,在整个特征图上进行空间推理。在这个设计中,论文针对计算和吞吐量对架构进行了优化。因此,网络的前半部分和下采样块使用密集的卷积核。同时,在较高分辨率的阶段(即1、2阶段),避免使用挤压激励操作,并将层归一化最小化。而架构的后半部分(即3、4阶段)通常受限于计算,因为 GPU 硬件在计算方面花费的时间较多,与内存传输成本相比不成比例。因此,应用多头注意力机制不会成为瓶颈。

其实后面的网络设计思路都大差不差了。我们主要看下 HAT 的设计思路即可。

HAT

HAT 是一种新颖的窗口注意力机制。该模块旨在以较低的计算成本促进局部和全局信息的交换,其中引入了载体标记(CTs)的概念,并执行分层自注意力操作。

如上图所示,HAT 模块首先将输入特征图分割成局部窗口,类似于 Swin 的操作。每个局部窗口由一组标记表示。关键思想是引入 CTs,用于总结每个局部窗口内的信息。CTs 通过池化和卷积操作获得,它们提供了各自局部窗口的摘要信息。每个局部窗口都有独特的 CTs。

在 HAT 块中,CTs 经过多头自注意力(MHSA)操作,然后进行层归一化和多层感知机(MLP)操作。这个注意力过程允许 CTs 交换信息并总结全局特征。接下来,局部窗口标记和 CTs 进行拼接,并应用另一组注意力操作来建模它们之间的交互作用,从而实现短距离和长距离空间信息的交流。随后,标记再次被分割成各自的局部窗口和 CTs,并在该阶段的多个层上迭代应用这些操作。为了促进长程交互,最后在该阶段进行全局信息传播。输出结果通过对 CTs 进行上采样,并与局部窗口标记合并来计算。

为了融入位置信息,本文使用一个两层的 MLP 向 CTs 和局部窗口标记添加了绝对位置偏置。此外,还采用了 SwinV2 中提出的对数空间相对位置偏置,以增强具有图像样本局部性的注意力。总体而言,HAT 模块实现了局部窗口和全局特征之间的信息交换,有效的促进了整个特征图层次结构中的空间推理能力。

上图简单展示了高效的全局局部自注意力机制的注意力图比较。可以看出,所提出的分层注意力将自注意力分为局部和子全局部分,都可以压缩为两个密集的注意力操作。

实验

图像分类

:::block-1

在ImageNet-1K数据集上,与各种混合、卷积和基于Transformer的网络相比,FasterViT模型在相同吞吐量下实现了更高的准确性。例如,与ConvNeXt-T相比,准确率提高了2.2%。考虑到准确性和吞吐量的权衡,FasterViT模型比基于Transformer的模型(如Swin Transformer系列)具有显著的速度优势。此外,与最近的EfficientFormer和MaxViT等混合模型相比,FasterViT在平均吞吐量上具有更高的性能,并且在ImageNet top-1性能方面表现更好。在模型优化方面,如TensorRT,FasterViT模型的延迟-准确性Pareto前沿趋势依然存在。
:::

目标检测

:::block-1

在MS COCO数据集上,使用Cascade Mask R-CNN网络进行目标检测和实例分割的性能评估中,FasterViT模型在准确性和吞吐量的权衡上表现更好。例如,FasterViT-4在盒子AP指标上优于ConvNeXt-B和Swin-B,分别提升了0.2和1.0,在掩膜AP指标上分别提升了0.3和1.0,同时吞吐量分别快了15%和30%。在其他模型变体中也观察到类似的趋势。此外,使用FasterViT-4作为ImageNet-21K预训练的骨干网络,与最先进的DINO模型进行额外的目标检测实验,达到了58.7的盒子AP,验证了FasterViT作为骨干网络与更复杂、最先进的模型的有效性。

:::

语义分割

:::block-1

在 ADE20K 数据集上,使用 UPerNet 网络进行语义分割实验,FasterViT 模型也在性能和吞吐量的权衡上取得了良好的表现。例如,FasterViT-4 在 mIoU 指标上优于 Swin-B,单尺度和多尺度推理分别提高了1.0和0.7,并且吞吐量高出16.94%。与 ConvNeXt-B 相比,在多尺度推理方面,FasterViT-4的吞吐量照样提高了7.01%,mIoU提高了0.4。

:::

总结

FasterViT 被设计为一种混合网络结构,综合了 CNN 和 ViT 的优势,旨在实现高效的图像处理速度。同时,为了处理高分辨率图像,论文中引入了一种新的 HAT 模块,用于捕捉短距离和长距离的空间依赖关系,并有效地建模窗口间的交互。通过这些改进,本文模型能够很好的在图像处理速度和性能之间取得最佳平衡的解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

英伟达最新开源 的相关文章

随机推荐

  • SQL语句大全(第21天) (转)

    第一大章 创建数据库 CREATE 创建 DATABASE 数据库 ace 数据库名字 打开数据库 USE 打开 ace 数据库名字 给表格 SHOW 显示 TABLES 所以列表名字 创建表 用户名 id ID user 用户 passw
  • 大数据基础

    1 HDFS 1 HDFS为什么不适合存储大量小文件 答 1 大量文件的元数据占用NameNode大量内存空间 2 磁盘寻道时间超过读取时间 2 HDFS 何时离开安全模式 答 ActiveNameNode启动时HDFS进入安全模式只读 d
  • 剑指Offer 12—矩阵中的路径

    题目描述 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 如果 word 存在于网格中 返回 true 否则 返回 false 单词必须按照字母顺序 通过相邻的单元格内的字母构成 其中 相邻 单元格是那些水平相邻
  • 日志清理脚本,升级版

    root ip 10 172 10 35 cat usr local shell iop ps data rm sh bin bash 获取15天之前的日期 del date date Y m d d 15 days ago 获取30天之前
  • 【C#基础】C# 预处理器指令

    序号 系列文章 8 C 基础 C 面向对象编程 9 C 基础 C 异常处理操作 10 C 基础 C 正则表达式 文章目录 前言 1 预处理器指令的概念 2 预处理器指令的定义与使用 2 1 可为空上下文 2 2 定义符号 2 3 条件编译
  • Windows无法访问\\ 请检查名称的拼写。否则,网络可能有问题。

    Windows无法访问 请检查名称的拼写 否则 网络可能有问题 错误代码 0x80070053 网络路径键入不正确 不存在或者网络提供程序当前不可用 请尝试键入路径或与网络管理员联系 遇到局域网内无法打开共享打印机时出现的问题 解决方法 打
  • python的安装与环境配置

    一 访问python的官网进行下载对应的版本 python官网的地址 Welcome to Python org 点击Downloads 选择Download Python 3 11 4 目前最新的python 也就是3 11 4 之后等待
  • Redisson框架官方介绍

    我们现在看到的就是redission官方网站 https redisson org 首页可以看出来 redisson可以实现很多东西 在redisson的基础上 redisson做了超多的封装 我们看一下 例如说 Spring Cache
  • python获取windows窗口_pywin32 怎么获取 windows 的窗体内文本框的内容?

    我已经用 spy 去确认我找到了文本框的句柄了 用函数 win32gui SendMessage 获取不了文本框的文本内容 用 str 类型的参数接收获取的内容的话没有获取到东西 而用 PyBuffer 类型去获取则得到类似于 16 进制的
  • 助你解锁万物智联新机遇 —— YMatrix 超融合数据库

    近期 在 YMatrix 5 0 发布会上 四维纵横创始人 CEO 姚延栋分享了 返璞归真 以简驭繁 YMatrix 超融合数据库 5 0 发布 的主题演讲 在本次演讲中 介绍 YMatrix 超融合数据库的发展历程及现阶段的技术痛点 深入
  • Leetcode Shortest Palindrome (最短回文串)

    Leetcode Shortest Palindrome 最短回文串 题目描述 Given a string S you are allowed to convert it to a palindrome by adding charact
  • clang 01. clang driver流程分析

    文章目录 前言 在这里简要概述一下clang的流程 1 clang driver代码分析 1 1创建诊断 DIagnosticsEngine 实例 1 2创建Driver clang driver Driver 的实例 1 3通过 Driv
  • 计算机勾兑双绝是谁发明,勾兑大师范玉平之“舌尖上的五粮液”

    1958年 那是一个热火朝天的时代 在五粮液酒厂的仓库里 人们总能看到一位斯斯文文的小伙子 在一阵阵紧张的收货发货后 不紧不慢地将那些大大小小的酒坛收拾得整整齐齐 之后他便一边对着账本 一边慢条斯理地抿着小酒 尽管他手中的酒杯里常常只有半杯
  • 网页是如何显示在浏览器

    这两天学习了一些网页如何在浏览器中显示的知识 感觉在我向前端走的路上非常有用 所以就在这里总结一下 大家可以看看 我也算是巩固一下知识 因为自己学识太浅 内容可能有一些错误之处 希望看到的朋友可以指出来啦 在Edge浏览器也加入Chromi
  • 低投入也有高效率!Fortinet 安全 SD-WAN方案赋能金融保险行业

    当前 金融保险等行业进入数字化转型的快速发展阶段 数字化效能不断提升的同时 也对广域网等基础IT建设提出了更高的需求 某保险公司在全国的省级分公司和多级分支机构多达上百家 近年来 蓬勃的数字化应用对其广域网带来了巨大挑战 该公司采用Fort
  • ARGB,RGB颜色值表示

    转载请注明出处 http blog csdn net wei chong chong article details 50831493 今天自定义一个控件 设置背景颜色时犯难了 现在就来总结一下android中的颜色值表示 android
  • 9月,Java岗爆了!

    你有面试机会了吗 随着金九银十到来 肯定有很多小伙伴想抓住一年两次的机会 开始疯狂投简历了吧 但是事实是 投出去的简历基本上HR都是已读不回 收到面试邀请 被告知不用面试了 参加了面试 就像走了个过场 成了HR的业绩指标 面试通过 但是被放
  • LWIP在STM32上的移植

    本文做记录摘抄 加上自己的体会 文章标题 STM32使用LWIP实现DHCP客户端 http www cnblogs com dengxiaojun p 4379545 html 该文章介绍了几点 LWIP源码的内容 关键点 1 inclu
  • id选择器和class选择器

    id选择器 id选择器用来选取带有给定id属性的元素 语法 id例如 html div div css container color blue id选择器的一些特征 1 id选择器以 号开头 后跟元素的id属性值 2 id选择器只能选取带
  • 英伟达最新开源

    Title FasterViT Fast Vision Transformers with Hierarchical Attention Paper https arxiv org pdf 2306 06189 pdf Code https