DETR类型检测网络---思考和Tricks测试

目录

  • batch_size的影响
  • 辅助损失的作用
  • 学习率的影响
  • Decoder层数增多的影响
  • 3D检测中, feats位置编码和query位置编码是否共享mpl层
    • 背景-关于query的生成方式
  • 利用widthformer类似的方式简化注意力机制

batch_size的影响

batch=8:
在这里插入图片描述
batch=20:
在这里插入图片描述
由实验结果可知:这里实验有问题,横坐标不统一,不能直接比较…大致可以看出batch_size越大,loss下降略快,而且越平滑.注意理论上不能太大.

辅助损失的作用

transformer类模型,当层数很多的时候,收敛很慢,容易发散.辅助损失帮助模型在训练过程中更好地收敛,特别是在训练的早期阶段。还可以稳定训练过程,减少震荡和过拟合的风险。
下面进行对比验证:
batch=8;layer_num=6;aux_loss=true
在这里插入图片描述

batch=8;layer_num=6;aux_loss=false
在这里插入图片描述
由实验结果可知:辅助损失确实可以减少震荡和抑制过拟合,如果没有辅助损失甚至都不能收敛(可能layer太深,梯度传不回去了).

学习率的影响

在实验中发现loss先下降后上升.最后发现把学习率从0,001改成0,0002就好了.猜测是初始学习率0.001可能过大,导致模型在训练过程中的参数更新步长过大,容易跳过最优解.

2024-04-07 18:21:18,692 - mmdet - INFO - Epoch [20][1000/1069] lr: 2.000e-04, eta: 2 days, 7:04:24, time: 0.685, data_time: 0.009, memory: 28667, loss_cls: 0.2155, loss_bbox: 0.4342, d0.loss_cls: 0.3011, d0.loss_bbox: 0.4841, d1.loss_cls: 0.2889, d1.loss_bbox: 0.4726, d2.loss_cls: 0.2352, d2.loss_bbox: 0.4572, d3.loss_cls: 0.2356, d3.loss_bbox: 0.4515, d4.loss_cls: 0.2154, d4.loss_bbox: 0.4376, loss: 4.2288, grad_norm: 197.8638
2024-04-07 18:23:51,636 - mmdet - INFO - Epoch [21][100/1069] lr: 2.000e-05, eta: 2 days, 6:53:49, time: 0.744, data_time: 0.061, memory: 28667, loss_cls: 0.1997, loss_bbox: 0.3806, d0.loss_cls: 0.2881, d0.loss_bbox: 0.4400, d1.loss_cls: 0.2770, d1.loss_bbox: 0.4156, d2.loss_cls: 0.2205, d2.loss_bbox: 0.4054, d3.loss_cls: 0.2189, d3.loss_bbox: 0.3969, d4.loss_cls: 0.2009, d4.loss_bbox: 0.3860, loss: 3.8298, grad_norm: 100.7063

由实验结果可知:学习率对loss的影响巨大,图中的loss骤降就是学习率减少导致的.

Decoder层数增多的影响

曾经在vit下做个类似实验,参考
在实验中发现层数过多时,loss下不去,后来降低学习率后解决了.在低学习率0.0002下实验对比以下:
layer_num=2:
在这里插入图片描述
layer_num=6:
在这里插入图片描述
由实验结果可知:区别不大,猜测有可能在稳态式区别大一点,或者数据集太少(8k)下.

3D检测中, feats位置编码和query位置编码是否共享mpl层

背景-关于query的生成方式

DETR中是预设的query_pos shape为(n,embed_dim), 而query=zeros.shape为(n,embed_dim)
DETR3ddeformable_DETR中,query_pos(query_embed):预设的shape为(n,embed_dim),query:预设的shape为(n,embed_dim),reference_point:利用query_pos线性映射为shape(n,3)
PETR类中是reference_point:预设的shape为(n,3)
query_pos(query_embed):利用reference_point线性映射为shape(n,embed_dim)
query:zeros shape为(n,embed_dim)

我们利用PETR的方式:

feats侧(下面统称kv侧),利用归一化bev位置信息经过正余弦编码和mpl层生成key_pos;
query侧(下面统称q侧),利用预定义的目标位置(0-1归一化)信息经过正余弦编码和mpl层生成key_pos;

如果feats和query在同一尺度的bev空间坐标系下的,那么可以共享mpl层进行前向传播,而且反向传播时可以对reference_point的位置信息进行对齐,使得refernce_point在目标位置处集中.下面开始验证:
共享位置编码mpl层:
在这里插入图片描述

不共享位置编码mpl层

在这里插入图片描述
由实验结果可知:不共享反而效果更好™,有点不能理解,后续多模态的时候继续这块实验吧

利用widthformer类似的方式简化注意力机制

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

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

相关文章

JAVA语言开发的智慧城管系统源码:技术架构Vue+后端框架Spring boot+数据库MySQL

通过综合应用计算机技术、网络技术、现代通信技术等多种信息技术,充分融合RS遥感技术、GPS全球定位技术、GIS地理信息系统,开始建设一个动态可视的、实时更新的、精细量化的城市管理系统。智慧城管将采用云平台架构方式进行建设,基于现有数字…

人工智能大模型应用指南

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。…

直流屏整流模块HG07A220R电源模块HG10A220R

直流屏整流模块HG07A220R电源模块HG10A220R 其他同类型监控模块PM09T电源模块HG22005/S,HG22010/S,HG11010/S,HG11020/S,HG10A220Z,HG10A220F,HG05A220Z,HG07A220Z,HG10A110Z&#x…

免费可商用字体素材大全,办公设计字体合集打包166款

一、素材描述 这是一套免费可商用字体素材,这些字体一般会在办公与设计的时候用到,比如,Photoshop、illustrator、Coreldraw、AfterEffects、Indesign、WPS、Office,等等,想要更好更快地办公与设计,字体还…

【Java】面向对象核心知识点(二),文章层次分明,内容精益求精,代码简单易懂

目录 一、构造方法 1.1 概念 1.2 作用 1.3 代码 二、抽象 2.1 概念 2.2 作用 2.3 注意 2.4 代码 三、接口 3.1 概念 3.2 作用 3.3 注意 3.4 语法 3.5 代码 四、内部类 4.1 成员内部类 4.2 局部内部类 4.3 静态内部类 4.4 匿名内部类 (原创文章&…

WWW‘24 | 课程学习CL+模仿学习IL用于ETF及商品期货交易

WWW24 | 课程学习CL模仿学习IL用于ETF及商品期货交易 原创 QuantML QuantML 2024-05-04 13:47 论文地址:[2311.13326] Curriculum Learning and Imitation Learning for Model-free Control on Financial Time-series (arxiv.org) 本文探讨了在金融时间序列数据上…

W801学习笔记十七:古诗学习应用——上

硬件驱动以及软件架构大体上已经完成,尚存一些遗漏之处,后续会寻找合适的时机进行补充。自此章起,将正式迈入软件应用阶段,尤其是游戏开发领域。 关于第一个应用,此前已有一些构想: 其一,随机…

【跟我学RISC-V】(二)RISC-V的基础知识学习与汇编练习

写在前面: 这篇文章是跟我学RISC-V的第二期,是第一期的延续,第一期主要是带大家了解一下什么是RISC-V,是比较大体、宽泛的概念。这一期主要是讲一些基础知识,然后进行RISC-V汇编语言与c语言的编程。在第一期里我们搭建了好几个环…

FBA头程空运发货流程详解|携手天图通逊,开启高效跨境物流之旅

在众多头程发货方式中,空运以其速度快、时效高的特点,成为许多卖家特别是急需快速补货或应对市场变化的友好选择,那FBA头程空运的发货流程是怎样的呢? 1、发货准备 在开始空运之前,首先需要进行发货准备。这包括将货物送达指定的…

DETR类型检测网络实验2---优化测试

补全reference_point Anchor-DETR提出用预定义的参考点生成query_pos; DBA-DETR提出预定义参考信息由(x,y)增至(x,y,w,h) 那么在3D检测任务中是否可以把预定义参考信息补全为(x,y,z,l,w,h,sint,cost),而query_pos都是使用xy两个维度(因为是bev网络). (这种方法在Sparse-DETR中…

轻松应对数据恢复挑战:雷神笔记本,不同情况不同策略

在数字化时代,数据无疑是我们生活中不可或缺的一部分。无论是重要的工作文件、珍贵的家庭照片,还是回忆满满的视频,一旦丢失,都可能给我们的生活带来诸多不便。雷神笔记本作为市场上备受欢迎的电脑品牌,用户在使用过程…

Adobe-Premiere-CEP 扩展 入门-视频剪辑-去气口插件-Silence Remover

短视频,这两年比较火,不要再问为什么用Premiere,非常难用,为什么不用某影,某些国内软件非常接地气简单,又例如某音资深的视频短编辑就很好用了。。。 Premiere二次开发调试难,不如自己搞个cons…

perl:用 MIDI::Simple 生成midi文件,用 pygame 播放 mid文件

在 csdn.net 下载 strawberry-perl-5.32.1.1-64bit.zip 解压安装在 D:\Strawberry\ 运行 cpan install MIDI::Simple D:\Strawberry\c\bin\gmake.exe test -- OK Running make install for CONKLIN/MIDI-Perl-0.84.tar.gz Installing D:\Strawberry\perl\site\lib\MIDI.pm I…

kubebuilder(6)webhook

operator中的webhook也是很重要的一块功能。也是相对比较独立的模块,所以放在后面讲。 webhook是一个callback,注册到k8s的api-server上。当某个特定的时间发生时,api server就会查询注册的webhook,并根据一些逻辑确认转发消息给…

【ARM Cortex-M3指南】3:Cortex-M3基础

文章目录 三、Cortex-M3基础3.1 寄存器3.1.1 通用目的寄存器 R0~R73.1.2 通用目的寄存器 R8~R123.1.3 栈指针 R133.1.4 链接寄存器 R143.1.5 程序计数器 R15 3.2 特殊寄存器3.2.1 程序状态寄存器3.2.2 PRIMASK、FAULTMASK和BASEPRI寄存器3.2.3 控制寄存器 3.3 操作模式3.4 异常…

使用FPGA实现串-并型乘法器

介绍 其实我们知道,用FPGA实现乘法器并不是一件很简单的事,而且在FPGA中也有乘法器的IP核可以直接调用,我这里完全就是为了熟悉一些FPGA的语法然后写了这样一个电路。 串-并型乘法器模块 从字面上看,串-并乘法器就是其中一个乘数…

Nodejs process.nextTick() 使用详解

还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,ech…

OpenCV 为轮廓创建边界框和圆(62)

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV检测凸包(61) 下一篇 :OpenCV如何为等值线创建边界旋转框和椭圆(62) ​ 目标 在本教程中,您将学习如何: 使用 OpenCV 函数 cv::boundingRect使用 OpenCV 函数 cv::mi…

数据库(MySQL)—— 事务

数据库(MySQL)—— 事务 什么是事务事务操作未控制事务测试异常情况 控制事务一查看/设置事务提交方式:提交事务回滚事务 控制事务二开启事务提交事务回滚事务 并发事务问题脏读(Dirty Read)不可重复读(Non…

数据结构练习题---环形链表详解

链表成环,在力扣中有这样的两道题目 https://leetcode.cn/problems/linked-list-cycle/ https://leetcode.cn/problems/linked-list-cycle-ii/description/ 这道题的经典解法是利用快慢指针,如果链表是一个环形链表,那么快指针(fast)和慢指…