Conditional DETR(ICCV 21)

news2024/11/24 20:53:02

Conditional DETR(ICCV 21)

Conditional DETR for Fast Training Convergence

加速detr收敛(50 epoch收敛)

DETR收敛慢的原因

DETR训练收敛速度慢,需要500 epochs
DETR的Cross Attention高度依赖content embedding(decoder的输出,可以是self attention的输出)进行定位和预测增加了对高质量的content embeddings的需求,需要很多轮才能学号content embedding,因此增大了训练的难度

Conditional DETR修改点

主要修改了decoder部分,其他部分和原始DETR保持一致

在这里插入图片描述

结构(只画了decoder)

img

  1. cross attention两个换成了concat,原始的是相加
  2. 模块:生成新的参考点

Decoder Cross Attention

Decoder有三种输入: query key value
value是encoder的输出,称其为content embedding
key由encoder的输出t=content embedding +spatial key(空间位置编码,三角函数位置编码或可学习)构成
query由decoder的前一层(self attention)的输出=content query和spatial query(空间位置编码,也就是object query)

conditional:条件空间查询

图右侧加的额外的附加条件是2d坐标embedding

原始的DETR,self-attention的输出作为q,这个q需要同时在和k匹配过程中,查询出k表示的物体和识别出bbox的边界,训练时间按长。

qk计算分两个部分:一个是content计算,一个是position计算
c q ⊤ c k + p q ⊤ p k . {\mathbf{c}_q^\top\mathbf{c}_k+\mathbf{p}_q^\top\mathbf{p}_k}. cqck+pqpk.
补充的条件空间查询(上面的pq,pk):有意把一份空间信息concat到self attention输出上

(s(补充的网络部分),f(self输出))->pq
p s = sinusoidal(sigmoid( s ) ) \mathbf{p}_s=\text{sinusoidal(sigmoid(}\mathbf{s})) ps=sinusoidal(sigmoid(s))
sigmoid之后空间位置编码(三角函数)

算完ps之后和T做运算,算q:
p q = T p s = λ q ⊙ p s \mathbf{p}_q=\mathbf{T}\mathbf{p}_s=\lambda_q\odot\mathbf{p}_s pq=Tps=λqps
T的FFN的输入是上一层decoder的输出,λq的值是经过FFN得到的

ablations-projections T:

在这里插入图片描述

full就是标准矩阵的意思,最后是只训练对角的参数值

参考:

https://www.bilibili.com/video/BV1sj411K7Mj/?spm_id_from=333.788&vd_source=4e2df178682eb78a7ad1cc398e6e154d

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go编程规范

文章目录 注释转义符定义变量方法一:指定变量类型,声明后若不赋值,使用默认值方法二:根据值自行判定变量类型(类型推导)方法三:省略var, 注意:左侧的变量不应该是已经声明过的,否则会导致编译错误[推荐]全局…

通讯网关软件001——利用CommGate X2Access-U实现OPC UA数据转储Access

本文介绍利用CommGate X2ACCESS-U实现从OPC UA Server读取数据并同步转储至ACCESS数据库。CommGate X2ACCESS-U是宁波科安网信开发的网关软件,软件可以登录到网信智汇(http://wangxinzhihui.com)下载。 【案例】如下图所示,实现从OPC UA Server实时读取…

经典指标策略回测一览

编辑 经典指标策略回测一览 关键词 A股市场(沪深京三市) 5000股票20年内日线走势回测,区分除权,前复权,后复权三种模式;由于数据量较大,采用两种方式共享数据,一是 天启网站的数据…

Minor GC、Young GC、Full GC、Old GC、Major GC、Mixed GC 一文搞懂

简介 大家经常会看到各种各样的 GC 名称,比如:Minor GC、Young GC、Full GC、Old GC、Major GC、Mixed GC。 刚开始看到这么多 GC 名词后,真的是心累 哎,没办法,一声国粹之后也只能慢慢的把它们理理顺。 GC分类 我…

(vue2)面经基础版-案例效果分析

配路由 先配一级,一级里面配二级。一级路由:首页(二级:嵌套4个小页面)、详情页 高亮a->router-link,高亮效果对自带高亮类名router-link(-exact)-active设置 注:通过children配置项&#…

【springboot源码】深度解析@Value赋值时机及底层原理

1.Value使用 Value主要是让我们程序动态的将外部值注入到bean中的,使用方式主要如下两种: 1.1Value("${}"):可以获取对应属性文件中定义的属性值。 1.2Value("#{}"):表示 SpEl 表达式通常用来获取 bean 的…

【操作系统】聊聊什么是CPU上下文切换

对于linux来说,本身就是一个多任务运行的操作系统,运行远大于CPU核心数的程序,从用户视角来看是并发执行,而在CPU视角看其实是将不同的CPU时间片进行分割,每个程序执行一下,就切换到别的程序执行。那么这个…

[激光原理与应用-70]:AD8512运算放大器的工作原理与连接电路

目录 概述: 一、AD8512的功能与主要特征 一、AD8510 1.1 管脚说明 1.2 电源电压 1.3 输入信号电压 1.4 偏置电压 1.5 参考连接 1.6 放大倍数 1.7 参考电路 二、AD8512 1.1 管脚说明 1.2 AD8512的电路连接 1.3 如何调整放大倍数 1.4 AD8512半波与全波…

基于 Socket 网络编程

基于 Socket 网络编程 前言一、基于Socket的网络通信传输(传输层)二、UDP 的数据报套接字编程1、UDP 套接字编程 API2、使用 UDP Socket 实现简单通信 三、TCP 流套接字编程1、TCP 流套接字编程 API2、使用 TCP Socket 实现简单通信3、使用 Tcp 协议进行…

【数据链路层】网络基础 -- MAC帧协议与ARP协议

数据链路层认识以太网以太网帧格式(MAC帧)认识MAC地址对比理解MAC地址和IP地址认识MTUMTU对IP协议的影响MTU对UDP协议的影响MTU对于TCP协议的影响 再谈局域网转发原理(基于协议)ARP协议ARP协议的作用ARP协议的工作流程ARP数据报的格式 数据链路层 用于两…

网工内推 | 雄岸区块链集团,网安工程师,HCIE-Security、CISP优先

01 雄岸区块链集团 招聘岗位:网络安全测试工程师 职责描述: 1、负责安全测试工作,包括渗透测试、漏洞分析、攻防演练和安全评估等。 2、发掘业务系统安全问题,跟进安全整改。 3、出现网络攻击或安全事件时,进行紧急…

Tensorrt8.6.1安装

环境配置:Tensorrt8.6.1 ,cuda11.6, cudnn8.6.0, torch1.13.1cu116, torchvision0.14.1cu116 1.先把cuda11.6, cudnn8.6.0, torch1.13.1cu116, torchvision0.14.1cu116这几个安装完之后 2.下载Tensorrt8.6.1,复制移动以下文件 将include中头…

Nat. Rev. Bioeng. | 中山大学左涛组详述肠道微生态工程化改造

肠道微生态工程化改造 Engineering the gut microbiome Review Article, 2023-6-16, Nature Reviews Bioengineering DOI:10.1038/s44222-023-00072-2 原文链接:https://www.nature.com/articles/s44222-023-00072-2 第一作者:Xiaowu Bai&…

近距离看GPU计算-1

文章目录 前言1.什么是GPU及其分类1.独立GPU(Discrete GPU)2.集成GPU(Integrated GPU)3.移动GPU(Mobile GPU) 2.GPU绘制流水线3.GPU计算的演进之旅1.CUDA的发明2.统一可编程单元3.浮点计算的标准化4.随机存取数据5.存储支持ECC 前言 转自 GPU and Computing 公众号 在前面文章…

Java实现单链表

目录 一.单链表 二.单链表基本操作的实现 1.单链表类、属性的定义 2.求链表长度 3.链表是否包含值为key的节点 4.添加元素 5.删除节点 6.清空链表 三、完整代码 一.单链表 链表是一种在物理存储结构上非连续的存储结构,数据元素的逻辑顺序通过链表中的引用…

【深度学习】卷积神经网络(LeNet)【文章重新修改中】

卷积神经网络 LeNet 前言LeNet 模型代码实现MINST代码分块解析1 构建 LeNet 网络结构2 加载数据集3 初始化模型和优化器4 训练模型5 训练完成 完整代码 Fashion-MINST代码分块解析1 构建 LeNet 网络结构2 初始化模型参数3 加载数据集4 定义损失函数和优化器5 训练模型 完整代码…

AIDAO,将会引领我们走向何方?

人工智能(AI)和分布式自治组织(DAO)都是区块链赛道的热门项目之一,他们看似在不同的领域独立发展,然而,它们之间也存在着巨大的协同潜力。 未来,AI有望成为推动DAO发展的重要动力&a…

【Java 基础篇】Java并发包详解

多线程编程是Java开发中一个重要的方面,它能够提高程序的性能和响应能力。然而,多线程编程也伴随着一系列的挑战,如线程安全、死锁、性能问题等。为了解决这些问题,Java提供了一套强大的并发包。本文将详细介绍Java并发包的各个组…

Docker网络问题:容器无法访问外部网络

Docker网络问题:容器无法访问外部网络 😟 Docker网络问题:容器无法访问外部网络 😟摘要 🤔引言 🌐正文 🤓为什么容器无法访问外部网络? 😕1. 网络配置错误2. 防火墙设置3…

WebGL 选中物体

目录 前言 如何实现选中物体 示例程序(PickObject.js) 代码详解 gl.readPixels()函数规范 示例效果 前言 有些三维应用程序需要允许用户能够交互地操纵三维物体,要这样做首先就得允许用户选中某个物体。对物体…