两种Deformable Attention的区别

先分别写一下流程

Deformable DETR(2020)的Deformable Attention

请添加图片描述
解释:
Deformable Attention如下图所示K=3, M=3K是指每个zq会和K个offset算attention,M是指M个head, z q z_q zq有N=HW个:

参考点:reference points,各个特征层上的点,(0.5,0.5)x 4,(0.5,1.5)x 4,…(H-0.5,W-0.5)x 4 ,再除以H或W进行归一化;
偏移量:offsets,网络自己学习的偏移量;
采样点:reference points + offsets,每个特征点都会学习得到4个采样点,然后只计算这个特征点和这四个采样点的相似度即可,不需要学习和所有特征点的相似度;
reference point确定方法为用了torch.meshgrid方法,调用函数(get_reference_points)。 对于每一层feature map初始化每个参考点中心横纵坐标,加减0.5是确保每个初始点是在每个pixel的中心,例如[0.5,1.5,2.5, …]
在Decoder中,参考点的获取方法为object queries通过一个nn.Linear得到每个对应的reference point。
初始的采样点位置相当于会分布在参考点3x3、5x5、7x7、9x9方形邻域

  • Z Z Z :输入特征 ,[HW,C]
  • z q z_q zq :query ,N个[1,C]
  • p q p_q pq :参考点Reference Point,就是zq在特征图x上的坐标,是2d向量( P q x , P q y Pqx,Pqy PqxPqy(0和1之间)
  • ▲ P m q k ▲Pmqk Pmqk :offsets,由每个 query z q z_q zq经过一个Linear得到,每个head会生成K个offset,一共M个head,即,在每个head中采样K个位置
  • W ′ m x W'm_x Wmx :Transformation Matrix,就是过一个Linear
  • (query z q z_q zq送进通道数为3MK的Linear,前2MK个通道编码 ▲ P m q k ▲Pmqk Pmqk,剩下的MK过softmax得到对应的 A m q k Amqk Amqk
  • Values : p q p_q pq+ ▲ P m q k ▲Pmqk Pmqk获取在特征图上的值,通常是小数,因此从特征图上索引特征时采用双线性插值的方式,之后乘上 W ′ m x W'm_x Wmx
  • A m q k Amqk Amqk :Attention Weights,也一样,直接由query
  • z q z_q zq经过linear和softmax得到,也是每个head生成K个Attention weight,和(因此,在DeformableDETR的Deformable Attention里,没有真的key query乘积计算,更像DCN)

DAT(2022)的的Deformable Attention

请添加图片描述
文章可视化画的是针对最重要的key,我现在见过对attention map,query做可视化的,想怎么解释就怎么解释

流程:

  1. 特征图 x x x [H,W,C]
  2. 根据feature map生成参考点reference point,这里不是网格中心而是网格的交接点(整){(0, 0), . . . , (HG − 1, WG − 1)}
  3. 将reference point norm到(-1,1)之间,坐标(-1,-1)代表左上角,坐标(1,1)代表右下角
  4. Δ P ΔP ΔP由以query为输入的offset Network得到,并将得到的 Δ P ΔP ΔP与reference points的坐标相加,从而得到偏移后位置信息。 Δ P ΔP ΔP幅度受超参数s控制防止过大。
  5. 对变形后的reference points使用双线性插值方法进行采样从而得到x:sampled features
  6. 过两个线性层分别得到v和k
  7. bias offset:我们计算归一化范围[−1,+1]中的相对位移,然后通过连续相对位移在参数化偏置表ˆB∈R(2H−1)×(2W−1)中插值φ(ˆB;R),以覆盖所有可能的偏移值。
    8.多头输出:在这里插入图片描述

总的来说在小地方进行了修改,offset network这么设计只说了要和transformer保持相同大小的感受野,但至少证明了deformable attention 是通用的。

为什么DAT要在stage3 stage4才使用deformable attention?

因为stage1 和 stage2 基本上是在提取局部信息,deformable attention 效果不如swin attention。而且前两个stage中,key和value对太多了,会大大增大因为点积和双线性插值带来的计算复杂度。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/172950.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Apache部署虚拟主机网站

文章目录 Apache释义Apache配置关闭防火墙和selinux 更改默认页内容更改默认页存放位置个人用户主页功能基于口令登录网站虚拟主机功能基于ip地址相同ip不同域名相同ip不同端口 学习本章完成目标 1.httpd服务程序的基本部署。 2.个人用户主页功能和口令加密认证方式的实现。 3.…

gitlab安装以及创建用户创建组,修改密码 邮箱配置 数据备份与恢复--保姆级教学!

GitLab是一种基于Web的Git仓库管理工具,它允许您在组织或个人级别上创建和管理Git仓库,以便在一个中心位置上执行代码管理和协作工作。GitLab提供了强大的功能,如代码审查、问题跟踪、CI/CD、容器注册表、Wiki和持续集成等。 以下是GitLab的…

【高级网络程序设计】Week2-3 HTML

一、The Basics 1. HTML&HTML file HTMLMarkup languageHyper Text Markup LanguageHTML fileText file with markup tags.htm/.html extension Create an html file Open an editor Type: <html><head><titile><body> Save it as .html Open i…

了解:iperf网络性能测试工具

当进行网络性能测试时&#xff0c;可以使用iperf这个开源工具。iperf是一款网络测试工具&#xff0c;它能够测试TCP或UDP带宽质量&#xff0c;以及单向和双向吞吐量。使用iperf进行网络性能测试首先需要在被测试的两台计算机上安装iperf。 如何安装iperf&#xff1f; 在Debia…

日志技术logback

一&#xff0c;日志概括 二&#xff0c;日志技术的特点 三&#xff0c;日志技术的体系 三&#xff0c;入门 四&#xff0c;案例 package XinZheng;import org.slf4j.Logger; import org.slf4j.LoggerFactory;public class Main58 {//1,创建一个Logger日志对象public static fi…

泵类设备常见的5种故障及监测方法

在各种工业领域中&#xff0c;泵是一种关键设备&#xff0c;用于输送液体或气体。然而&#xff0c;泵类设备常常会面临各种故障&#xff0c;这可能导致生产停顿和生产效率下降。为了及时监测并解决这些故障&#xff0c;设备状态监测系统成为一种重要的工具。本文将介绍泵类设备…

细节决定成败——我的日志去哪了?

概述 编写本文档的目的有两点。 本周遇到了一个日志丢失的问题&#xff0c;经过分析&#xff0c;觉得挺有意思的。向大家分享一下我的分析及解决思路。应该在很多项目中都会有该问题。领导和我私下讨论过多次&#xff0c;当前的autodomain代码对文件读取的频率太高了,如何去避…

01-制作人和迈克尔杰克逊-《人月神话》中译本纠错及联想

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 2001年&#xff0c;我们翻译《人月神话》的时候&#xff0c;由于水平有限&#xff0c;译文中存在不少错误。 这些年&#xff0c;随着阅历的增长&#xff0c;在重读的时候偶尔也会有“…

msvcp120.dll缺失的解决方法与作用介绍

大家好&#xff01;我是小编。今天&#xff0c;我想和大家分享一下关于“找不到msvcp120.dll无法继续执行代码的5个解决方法”的话题。 首先&#xff0c;让我们来了解一下msvcp120.dll的作用。msvcp120.dll是Microsoft Visual C Redistributable Package的一部分&#xff0c;它…

JMM并发三大特性

并发和并行 目标都是最大化CPU的使用率 并行(parallel)&#xff1a;指在同一时刻&#xff0c;有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看&#xff0c;二者都是一起执行的。 并发(concurrency)&#xff1a;指在同一时刻只能有一条指令执行&#xff0c;…

媲美有线操作,支持4KHz响应和无线充电的游戏鼠标,雷柏VT3S上手

对于无线鼠标来说&#xff0c;操作延迟和精度对游戏操作影响很大&#xff0c;常见的游戏鼠标至少都有1KHz的回报率&#xff0c;而雷柏今年已经出了很多支持4KHz回报的鼠标了&#xff0c;像是我现在用的这款VT3S游戏鼠标&#xff0c;就搭载了旗舰级的原相3395引擎&#xff0c;支…

SpringBean的配置详解

Bean的基础配置 例如&#xff1a;配置UserDaoImpl由Spring容器负责管理 <beanid"userDao"class"com.xfy.dao.Impl.UserDaoImpl"></bean> 此时存储到Spring容器中的Bean的beanName是userDao&#xff0c;值是UserDaoImpl&#xff0c;可以根据bea…

pytorch中gather函数的理解

pytorch函数gather理解 torch.gather(input, dim, index, outNone) → Tensor Parameters: input (Tensor) – 源张量dim (int) – 索引的轴index (LongTensor) – 聚合元素的下标(index需要是torch.longTensor类型)out (Tensor, optional) – 目标张量 公式含义 这个函数的…

股票自选(四)

4-自选 自选表功能&#xff0c;均需要使用 Token 令牌进行操作&#xff0c;目的是为了将数据隔离。 添加自选表的作用是进行推送&#xff0c; 将 自选表中的近十天的涨跌幅情况通过邮箱的方式推送给对应的用户。 一. 添加到自选表 接口描述: 接口地址:/StockApi/stockSele…

转录组学习第四弹-数据质控

数据质控 将SRR转为fastq之后&#xff0c;我们需要对fastq进行质量检查&#xff0c;排除质量不好的数据 1.质量检查&#xff0c;生成报告文件 ls *fastq.gz|while read id;do fastqc $id;done并行处理 ls *fastq.gz|xargs fastqc -t 102.生成 html 报告文件和对应的 zip 压缩…

阿里巴巴对裁员谣言报警

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 前两天王自如言论事件&#xff0c;格力选择了报警&#xff0c;称高管遭到姊妹集体侮辱诽谤。 而这两天&#xff0c;阿里巴巴也报警了&#xff0c;原因是网传阿里巴巴要裁员25000人。 咱不公关了…

见证历史!合资车企「最后一搏」

从上海车展&#xff0c;到广州车展&#xff0c;最大的变化莫过于传统合资品牌在新能源及智能电动市场的持续发力。或许&#xff0c;2024年将是最后一搏的拐点。 在本届广州车展上&#xff0c;广汽丰田发布了全新新能源品牌铂智&#xff0c;铂智品牌旗下首款产品铂智4X正式亮相。…

数据结构(c语言版) 树的遍历

作业要求 以如下图为例&#xff0c;完成树的遍历&#xff1a; 1、利用孩子兄弟表示法的存储结构 2、利用先根序列创建树 3、先根遍历树 4、后根遍历树 思考 预期的结果应该为&#xff1a; 1、先根创建树时需要输入的数据为&#xff1a; A B E 0 F 0 0 C 0 D G 0 0 0 0 2、…

Android codec2 视频框架之输出端的内存管理

文章目录 前言setSurfacestart从哪个pool中申请buffer解码后框架的处理流程renderOutbuffer 输出显示 前言 输出buffer整体的管理流程主要可以分为三个部分&#xff1a; MediaCodc 和 应用之间的交互 包括设置Surface、解码输出回调到MediaCodec。将输出buffer render或者rele…

使用JMX监控ZooKeeper和Kafka

JVM 默认会通过 JMX 的方式暴露基础指标,很多中间件也会通过 JMX 的方式暴露业务指标,比如 Kafka、Zookeeper、ActiveMQ、Cassandra、Spark、Tomcat、Flink 等等。掌握了 JMX 监控方式,就掌握了一批程序的监控方式。本节介绍 JMX-Exporter 的使用,利用 JMX-Exporter 把 JMX…