DETR训练自己数据集心得

news2025/1/13 9:30:46

对QKV的理解,先废一下话...

计算流程参考:https://zhuanlan.zhihu.com/p/82312421

给定一组query,和当前输入样本input(每个样本都有各自的key),经过空间变化后input→query。

计算query和key之间的相关性r,r中的每个元素就可以看做是input中每个样本和其他样本的关系向量,然后根据query和key的相关性得到value的加权和(即,注意力)。

本质上,QKV的计算就是矩阵之间的计算。通过样本输入向量input和训练过程中训练得到的三个矩阵WQ、WK、WV分别进行矩阵计算,得到QKV三向量。

虽然QKV三者的属性不在同一空间,其实是有一定潜在联系的,通过某种变换(个人认为就是矩阵之间的线性相乘相加计算)将三者属性映射到一个相似的空间。注意力机制不是为了query去找value,而是根据当前query获取value的加权和来获取对输入样本的注意力。

训练参数说明

args.lr_backbone默认为1e-5,则train_backbone默认为true,通过设置backbone的lr来设置是否训练网络时接收backbone的梯度从而让backbone也训练。

--lr:网络学习率。
--lr_backbone:主干网络的学习率。
--batch_size:如果设置太高了显卡带不动,会显示爆显存的错,就需要降低batch_size。
--weight_decay:权重衰减系数。
--epochs: 训练的轮次,所有图片训练一次是一轮。
 --lr_drop:学习率衰减epoch(每训练epoch后,学习率线性递减变化)。
--clip_max_norm:梯度衰减最大范数。
--frozen_weights:是否固定住参数的权重,类似于迁移学习的微调。
--backbone:backbone的网络结构选择,默认'resnet50'。
--dilation:是否进行空洞卷积,区分是否DC5模块。
--position_embedding:用于图像特征的位置编码方法类型,可选['sine', 'learned'],默认是'sine'。
--enc_layers:Encoder中的layer数量。
--dec_layers:Decoder中的layer数量。
--dim_feedforward:FFN(前馈神经网络)的通道数。
--hidden_dim:中间维度。默认256。
--dropout:神经元以dropout设置的概率随机失活,一般用在全连接层,为了防止或减轻过拟合。
--nheads:头个数。
--num_queries:查询位置个数,即多少个目标框。
--pre_norm:在网络中,是否提前进行normalization。
--mask:
--no_aux_loss:  是否在解码器使用辅助损耗。
--set_cost_class:类别损失权重。
--set_cost_bbox:L1定位框损失函数权重。
--set_cost_giou:giou定位框损失函数权重。
--mask_loss_coef:mask损失置信度。
--dice_loss_coef:轮廓区域损失,分割使用
--bbox_loss_coef:预测框损失。
--giou_loss_coef:giou损失。主要有类别、预测框和giou损失函数。L1 Loss整体不如giou。
--eos_coef:针对背景分类的权重,即为无目标样本设置的权重,默认0.1。
--dataset_file:存储数据的格式,默认为‘coco’。
--coco_path:是存放自己数据集train、test、val文件夹的文件夹路径
--remove_difficult:是否移除difficult。
--output_dir:训练以及验证模型保存的文件夹路径。
--device:‘cpu’ or ‘cuda’,default='cuda'
--seed:随机种子seed。
--resume:预处理模型以及断点训练的load模型的地址。
--start_epoch:指定开始训练的第几个epoch。如果设置resume了,会根据resume指定模型中的epoch接着训练。
--eval:测试模型。
--num_workers:加载数据(batch)的线程数目,参考:num_workers的设置
--world_size:一般别超过1,是分布式训练需要用到的设置。
--dist_url:设置分布式训练。

错误及解决办法

在测试图片的时候报错:output with shape [1, 640, 640] doesn't match the broadcast shape [3, 640, 640]。(我单独输出图像的shape,明明是三通道的,不知道为什么在推断模型的时候给判断成单通的了...)

解决:待测试图像是灰度图,需要将灰度图转换成RGB三通道的彩色图,在inference_img.py文件中添加:

im = Image.open(img_path).convert('RGB')

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

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

相关文章

深度学习与总结JVM专辑(二):垃圾回收基础(图文+代码)

垃圾回收基础概念什么是垃圾回收为什么要进行垃圾回收垃圾什么是垃圾你是垃圾吗?让我用算法来测测你。引用计数算法可达性分析算法对象引用对象,真的死了吗方法区回收废弃常量无用类垃圾回收算法回收类型分代收集理论标记清除算法(Mark-Sweep…

【Hack The Box】linux练习-- Irked

HTB 学习笔记 【Hack The Box】linux练习-- Irked 🔥系列专栏:Hack The Box 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📆首发时间:🌴2022年11月17日🌴 &#x1f36…

[附源码]计算机毕业设计JAVA基于ssm的电子网上商城

[附源码]计算机毕业设计JAVA基于ssm的电子网上商城 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM my…

基于FPGA的PID控制器开发与实现

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》 效果预览: 目录 一、理论基础 二、核心程序 三、测试结果

数据结构与算法之顺序表详解

标题:猜数字小游戏 作者:Ggggggtm 寄语:与其忙着诉苦,不如低头赶路,奋路前行,终将遇到一番好风景 文章目录: 一、顺序表的概念与结构 1、线性表的解释 2、顺序表概念解释 二、顺序表的思路及代码…

ERP系统三种部署方式的区别

ERP系统被认为是一种 "企业应用程序",指的是为满足企业的软件需求和提高业务绩效而设计的软件。今天有许多不同的ERP系统可供使用,其范围很广,取决于企业的规模、功能和需求。ERP系统的类型根据其部署方式划分,包括云ER…

二、Redis分布式锁

一、什么是分布式锁 分布式锁是一种跨进程的,跨机器节点的一种互斥锁。保证在多个机器节点对共享资源访问的一个排他性。 分布式与单机情况下最大的不同在于分布式锁是多进程的而单机锁是单进程多线程的。 二、为什么需要分布式锁 与分布式锁相对就的是单机锁&…

BHQ-1 amine,1308657-79-5,BHQ染料通过FRET和静态猝灭的组合工作

英文名称:BHQ-1 amine 中文名称:BHQ-1 氨基 CAS:1308657-79-5 外观:深紫色粉末 分子式:C25H29N7O3 分子量:475.55 结构式: 溶解性:溶于大部分有机溶剂,溶于水 储存…

luffy-(13)

内容概览 支付宝支付介绍支付宝支付二次封装订单相关表设计生成订单接口支付前端支付宝回调接口 支付宝支付介绍 """ 项目中有需要在线支付功能,可以使用支付宝支付(沙箱环境)微信支付(需要有备案过的域名)云闪付我们的项目以支付宝支付为例支付流程使用官方…

【动手学深度学习】关于“softmax回归的简单实现”报错的解决办法(含源代码)

目录:关于“softmax回归的简单实现”报错的解决办法一、前言二、实现步骤2.1 导包2.2 初始化模型参数2.3 重新审视Softmax的实现2.4 优化算法2.5 训练2.6 源代码三、问题出现四、问题的解决五、再跑代码六、改正后的函数源代码一、前言 在之前的学习中,…

题库系统(公众号免费调用)

题库系统(公众号免费调用) 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台&#xff0…

arthas 源码构建

arthas 源码构建 git下载代码 git clone https://github.com/alibaba/arthas.git 若github被墙,可以在gitee搜索下载 maven clean 可以在项目目录执行 mvn clean , ide可以执行界面执行 maven package 可以在项目目录执行mvn package 问题记录 ja…

四肽Suc-AAPD-对硝基苯胺,165174-58-3

粒酶B底物succ - aapd - pna。也被ICE劈开了。 编号: 177581中文名称: 四肽Suc-Ala-Ala-Pro-Asp-对硝基苯胺CAS号: 165174-58-3单字母: Suc-AAPD-pNA三字母: Suc-Ala-Ala-Pro-Asp-pNA氨基酸个数: 4分子式: C25H32O11N6平均分子量: 592.56精确分子量: 592.21等电点(PI): -pH7.0时…

新进场的獴哥健康、至真健康们,讲不出互联网医疗的新故事

文丨智能相对论 作者丨沈浪 曾几何时,互联网医疗风靡一时,现如今潮水退去,当市场回归理性,赛道竞争趋于同质化,一批互联网医疗企业正在试图通过讲好新故事,来拉开品牌与品牌之间的商业差距,寻…

ArcGIS Pro 转换Smart3D生成的倾斜3D模型数据osgb——创建集成网格场景图层包

最近在做Arcgis 批处理的一些工作,然后再学习Python的同时,偶然觉得arcgis Pro是个好东西呢?然后结合近期的Smart3D倾斜3D模型数据,是否可以在arcgis里查看呢?带着这样的疑问和好奇,开始了arcgis Pro的学习…

【408专项篇】C语言笔记-第四章(选择与循环)

第四章:选择、循环 第一节:选择if-else 1. 关系表达式与逻辑表达式 if-else的判断条件结果还是真与假,即1或0,一般是关系表达式或逻辑表达式。 算术运算符的优先级高于关系运算符,关系运算符的优先级高于逻辑与和逻…

Webpack 5 超详细解读(四)

31.proxy 代理设置 为什么开发阶段需要设置代理,在开发阶段,我们需要请求后端接口,但是一般后端接口地址和我们本地的不在同一个服务中提供,这时进行访问就会存在跨域的问题,所以我们需要对我们的请求进行转啊操作。模拟跨域请求代码如下: https://api.github.com/users…

高项 沟通管理论文

3个过程: 1,规划沟通管理:根据干系人的信息需要和要求及组织的可用资产情况,制订合适的项目沟通方式和计划的过程。 2,管理沟通:根据沟通管理计划,生成、收集、分发、储存、检索及最终处置项目信息的过程…

Spring boot 实践Rabbitmq消息防丢失

之前看很多网上大佬的防丢失的文章,文章中理论知识偏多,所以自己想着实践一下,实践过程中也踩了一些坑,因此写出了这篇文章。如果文章有误人子弟的地方,望在评论区指出。 导致消息出现丢失的原因 发送时失败&#xff…

295348-87-7,AF 594 Succinimidyl Ester可用于成像和流式细胞分析

理论分析: 中文名:AF 594活性酯 英文名:AF 594 Succinimidyl Ester,Alexa Fluor 594 NHS Ester,AF 594 NHS Ester CAS号:295348-87-7 化学式:C39H37N3O13S2 分子量:819.85 ex/em : 5…