《Video Mamba Suite》论文笔记(4)Mamba在时空建模中的作用
原文翻译
4.4 Mamba for Spatial-Temporal Modeling
Tasks and datasets.最后,我们评估了 Mamba 的时空建模能力。与之前的小节类似,我们在 Epic-Kitchens-100 数据集 [13] 上评估模型在zero-shot多实例检索中的性能。
Baseline and competitor.ViViT[2]和TimeSformer[6]研究了ViT在空间注意转化为具有时空联合注意的模型的转换。根据这些工作,我们进一步扩展了ViM模型的空间选择扫描来合并时空选择性扫描。我们将此扩展模型称为 ViViM。我们利用在 ImageNet-1K [16] 上预训练的 ViM 模型进行初始化。ViM 模型包含一个 cls 标记,该标记插入到扁平标记序列的中间。为了将 ViM 模型转换为 ViViM,我们采用了图 6 所示的直接方法。对于由 M 帧组成的给定输入,我们在对应于每一帧的标记序列的中间插入 cls 标记。此外,我们添加了每帧初始化为零的时间位置嵌入。然后将扁平的视频序列输入到 ViViM 模型中。模型的输出是通过计算每个帧的cls令牌的平均值来实现的。

Results and analysis.我们进一步分析了ViViM在zero-shot多实例检索上的结果。表11给出了各种时空模型在zero-shot多实例检索上的性能。在比较ViT和ViM时,它们都在ImageNet-1K[16]上进行预训练,我们观察到我们的ViM优于ViT。有趣的是,尽管 ImageNet-1K 上 ViT-S [69] 和 ViM-S [96] 之间的性能差距很小(79.8 vs. 88.5),ViViM-S 在零样本多实例检索上显示出比 ViT-S 的显着改进(+2.1 mAP@Avg)。这一发现表明,我们的 ViViM 在对长序列进行建模方面非常有效,从而提高了性能。
5 Efficiency Analysis
我们比较了不同时空模型的推理速度。该测试在空间维度上修复了 196 个标记,并不断提高帧数。所有测试都是在单个 A100 GPU 上以半精度执行的。为了公平比较,所有注意块都配备了 Flash-attention [14, 15]。我们将推理速度从 4 帧测试到 8192 帧,并在图 7 和图 8 中列出测试结果。两个表都表明,Mamba 比 Transformer 系列模型提供速度优势,尤其是当帧数很大时。在图 8 中,为了公平比较,我们将 ViViM-T 与 ViT 进行比较,无论是否使用 Flash-attention [14, 15]。ViM-T 与 ViT+Flash-attention 的比较是公平的,因为这两种方法都是在考虑硬件 I/O 速度的情况下优化的。当输入帧数大于 256 时,我们的 ViViM-T 比具有闪存注意力的 ViT-T 更有效。如果没有 Flash-Attention,ViM-T 相对更有效,当帧数大于 64 时超过 ViT。对于图 7 中的 TimeMambaB,当输入超过 8192 帧时,效率开始超过 timeformer-B 的效率。由于令牌交互的形式仅在时间交互上有所不同,因此效率差异不如 ViVM 和 ViT 之间的比较那么显着。

6 Conclusion
我们在视频理解领域对 Mamba 的全面评估展示了它作为传统转换器的可行替代方案的潜力。通过Video Mamba Suite,包括14个模型/模块12个视频理解任务,我们证明了Mamba能够有效地处理复杂的时空动态,表现出优越的性能和有前途的效率-性能权衡。这些发现不仅强调了 Mamba 对视频分析任务的适用性,而且还为其在计算机视觉中的应用开辟了新的途径。未来的工作可以进一步探索 Mamba 的适应性,并将其效用扩展到更复杂、多模态视频理解挑战。
相关文章:
《Video Mamba Suite》论文笔记(4)Mamba在时空建模中的作用
原文翻译 4.4 Mamba for Spatial-Temporal Modeling Tasks and datasets.最后,我们评估了 Mamba 的时空建模能力。与之前的小节类似,我们在 Epic-Kitchens-100 数据集 [13] 上评估模型在zero-shot多实例检索中的性能。 Baseline and competitor.ViViT…...
【备战软考(嵌入式系统设计师)】10 - 软件工程基础
这一部分的内容是概念比较多,不要理解,去感受。 涉及的知识点是嵌入式系统开发和维护的部分,也就是和管理相关的,而不是具体如何进行嵌入式系统开发的细节。 系统开发生命周期 按照顺序有下面几个阶段,我们主要要记…...
随手笔记-GNN(朴素图神经网络)
自己看代码随手写的一点备忘录,自己看的,不喜勿喷 GNN (《------ 代码) 刚开始我还在怀疑为什么没有加weigth bias,已经为什么权重才两个,原来是对node_feats进行的network的传播,而且自己内部直接进行了。 下面是一…...
C 语言指针怎么理解?
在今天的学习中,我注意到有位学员似乎对 C 语言指针的理解有些困惑。为了帮助大家更好地理解,我来举个例子。 C 语言指针就好比 Windows 桌面上常见的快捷方式。快捷方式可以指向某个游戏,这就是普通指针;它也可以指向另一个快捷…...
HTTP协议:通信机制、特点及实践应用
目录 前言 1. 运行机制 2. 通信方式 3. 主要特点 4. 统一资源标识符(URL) 5. HTTP报文 6. HTTP请求 7. HTTP响应 8. 实体 9. 持续连接 结语 前言 HTTP(Hypertext Transfer Protocol)是互联网上应用最广泛的一种协议&a…...
Leetcode—289. 生命游戏【中等】
2024每日刷题(126) Leetcode—289. 生命游戏 算法思想 实现代码 class Solution { public:void gameOfLife(vector<vector<int>>& board) {int rows board.size();int cols board[0].size();int neighbors[3] {0, 1, -1};vector<…...
系统运维(虚拟化)
1.VLAN VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。 每个VLAN是一个广播域,VLAN内的主机间可以直接通信,而VLAN间则不能直接互通。这样,广播报…...
Linux域名解析
1.hosts:windows c盘下面 Linux: /etc/hosts 作用:实现名字解析,主要为本地主机名、集群节点提供快速解析。平面式结构,集中式数据库。 缺点:不便于查询更新 2.DNS:域名系统 作用:实现名字解析(分层性,层次性) FQDN:完全合格域名/全称域…...
树形结构和列表的区别
树形结构和列表在数据组织、表示方式以及应用场景等方面存在明显的区别。 首先,树形结构是一种非线性的数据结构,表现为层次的嵌套结构。每个节点可以有多个子节点,这些子节点又可以有自己的子节点,形成一个层次分明的结构。这种一…...
Go中json的解析和反解析
在解析过程中,反向解析不包含其中的部分参数也不会报错,这是需要注意的一点 31 func main() { // E: main redeclared in this block 32 type A…...
SpringBoot+vue实现退出功能
目录 1. 创建点击事件 2. 编写退出逻辑 在Spring Boot 和 Vue.js 应用中实现退出功能,通常涉及到前端的用户界面操作和注销逻辑。 以下是实现退出功能的步骤: 1. 创建点击事件 在header.vue中创建一个点击事件 <span style"text-decoratio…...
Linux操作系统中管理磁盘的另外一种操作方式。即LVM——逻辑卷管理操作
在Linux操作系统中管理磁盘的一种方法名称——LVM,这种管理磁盘的优势。 1.使用LVM去管理磁盘可以在不影响原来数据的前提下去扩容磁盘空间或者是缩减磁盘空间。 在LVM中除了上层逻辑券可以扩容,下层的券组也可以扩容。 2.使用LVM管理的磁盘支持快照功…...
Lua 零基础入门
Lua 1.Lua是什么? 1.1 Lua的历史 Lua是由Roberto Ierusalimschy、Luiz Henrique de Figueiredo和Waldemar Celes于1993年创建的,当时他们是巴西里约热内卢天主教大学计算机图形技术组(Tecgraf)的成员。在开发Lua之前࿰…...
记录DemoApplication.java不变蓝问题
问题 解决方案 一、点击右下角加载 二、右键项目 勾选maven...
22_Scala集合Seq
文章目录 Seq序列1.构建集合2.List集合元素拼接&&集合拼接3.可变Seq&&List3.1 ListBuffer创建3.2 增删改查3.3 相互转化 Appendix1.Scala起别名2.Seq底层3.关于运算符操作: :4.空集合的表示 Seq序列 –Seq表示有序,数据可重复的集合 1.构建集合 …...
机器学习初学者 6 个核心算法!建议收藏,反复观看!
今天再来介绍机器学习算法的基本概念和适用场景! 首先,引用一句英国统计学家George E. P. Box的名言:All models are wrong, but some are useful. 没有哪一种算法能够适用所有情况,只有针对某一种问题更有用的算法。 也就是说&…...
SpringBoot 打包所有依赖
SpringBoot 项目打包的时候可以通过插件 spring-boot-maven-plugin 来 repackage 项目,使得打的包中包含所有依赖,可以直接运行。例如: <plugins><plugin><groupId>org.springframework.boot</groupId><artifact…...
QpushButton绘制圆角矩形并绘制背景颜色
要在QPushButton的paintEvent中绘制按钮的颜色,可以创建一个自定义的QPushButton类,并重写它的paintEvent函数。在paintEvent函数中,可以使用QPainter来绘制按钮的背景颜色。 以下是一个简单的示例代码,演示如何在自定义的QPushB…...
Core Impact 21.5 (Windows) - 高级渗透测试
Core Impact 21.5 (Windows) - 高级渗透测试 Fortra | Core Security Penetration testing software, Release Feb 2024 请访问原文链接:Core Impact 21.5 (Windows) - 高级渗透测试,查看最新版。原创作品,转载请保留出处。 作者主页&…...
【Web前端】定位_浮动_音视频
1、定位 1.1想对定位 相对定位,使用relative,参考点是标签之前的位置,不是相对于父节点、同级节点或浏览器。相对定位通过left、right进行水平偏移,通过top、bottom进行垂直偏移Ieft:表示相对于原本位置的左外边界右移的距离rig…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...
