当前位置: 首页 > article >正文

RT-DETRv2训练自定义数据集的排坑全记录

RT-DETRv2训练自定义数据集的排坑全记录最近在使用lyuwenyu/RT-DETR的PyTorch版本训练自定义缺陷检测数据集从启动报错到成功训练踩了不少典型的“新手坑”这里把完整的排坑过程和解决方案整理出来帮大家一次性避坑一、环境与项目准备1.1 项目准备我用的是Windows系统Anaconda创建的Python 3.8环境PyTorch 2.0CUDA 11.8项目结构如下RT-DETR-V2/ ├── tools/train.py # 训练入口脚本 ├── configs/rtdetrv2/ # 模型配置文件 ├── src/ # 核心源码 └── datasets/ # 自定义数据集数据集是COCO格式包含train.json、val.json和图片文件标注的类别是N和P两类。1.2 选择yml文件选择训练时传入的yml文件我是用这个不用改长这样1.3 修改coco_detection.yml文件修改coco_detection.yml文件修改输入数据集路径、num_classes和remap_mscoco_category我的是2个类别yolo格式的类别ID是0、1而coco是从1开始为变为1、2这里num_classes则填3下文的坑3就是填为2报错了1.4 修改训练的epoches修改dataloader.yml和optiminzer.yml中的epoches2个文件的epoches需要保持一致1.5 开始运行命令为 python tools/train.py -c configs/rtdetrv2/rtdetrv2_r50vd_6x_coco.yml二、排坑全过程按报错顺序坑1FileNotFoundError: No such file or directory配置文件找不到报错截图报错信息FileNotFoundError: [Errno 2] No such file or directory: configs/rtdetrv2/rtdetrv2_r50vd_6x_coco.yml问题分析启动命令是在tools目录下运行的python tools/train.py-cconfigs/rtdetrv2/rtdetrv2_r50vd_6x_coco.yml此时工作目录是tools/相对路径configs/会被解析为tools/configs/但配置文件实际在项目根目录的configs/下路径不匹配导致文件找不到。解决方案方法1切换工作目录到项目根目录cdD:\work\git\Object-Detection\RT-DETR-V2 python tools/train.py-cconfigs/rtdetrv2/rtdetrv2_r50vd_6x_coco.yml方法2使用绝对路径python tools/train.py-cD:\work\git\Object-Detection\RT-DETR-V2\configs\rtdetrv2\rtdetrv2_r50vd_6x_coco.yml坑2UnicodeDecodeError: gbk codec cant decode byte 0xafJSON文件编码错误报错截图报错信息UnicodeDecodeError: gbk codec cant decode byte 0xaf in position 364: illegal multibyte sequence问题分析我的图像文件有中文字符Windows系统默认编码是GBK而你的COCO标注JSON文件是UTF-8编码文件中包含了GBK无法识别的字符比如特殊标点、中文注释导致json.load()读取失败。解决方案修改src/data/dataset/coco_dataset.py中读取JSON文件的代码指定encodingutf-8# 原代码报错self.cocoCOCO(ann_file)# 修改后withopen(ann_file,r,encodingutf-8)asf:self.cocoCOCO(json.load(f))或者直接用VS Code打开train.json点击右下角的编码格式选择UTF-8保存强制转换编码。坑3CUDA error: device-side assert triggered类别ID越界报错截图报错信息C:\actions-runner\_work\pytorch\pytorch\pytorch\aten\src\ATen\native\cuda\IndexKernel.cu:93: Assertion index out of bounds failed. RuntimeError: CUDA error: device-side assert triggered问题分析这是DETR系列模型最经典的“类别ID越界”错误根源是你的标注文件中categories的id是从1开始的N:1、P:2配置文件中num_classes: 2模型预留的类别索引是0和1当模型读取到category_id2的标注时会尝试访问数组的第3个位置索引从0开始直接越界触发CUDA断言错误。解决方案有两种方案推荐方案1不用修改标注文件方案1修改配置文件num_classes把rtdetrv2_r50vd_6x_coco.yml中的num_classes改成3这样模型就支持0,1,2三个索引完美匹配你的标注ID。# 原配置num_classes:2# 修改后num_classes:3方案2修改标注文件把类别ID改成从0开始categories:[{id:0,name:N},{id:1,name:P}]同时把所有annotations中的category_id:1改成0category_id:2改成1保持num_classes:2不变。最终成功训练的日志截图解决完以上三个坑后模型终于正常启动训练loss也在稳定下降Epoch: [0] [0/48] eta: 0:11:06 lr: 0.000000 loss: 40.9994 (40.9994) Epoch: [0] [47/48] eta: 0:00:01 lr: 0.000000 loss: 40.2926 (40.7860)三、避坑总结与经验路径问题优先排查Windows下运行脚本时一定要注意工作目录和相对路径的匹配优先切换到项目根目录运行。编码问题别忽视JSON文件在Windows下很容易出现编码错误读取时务必指定encodingutf-8。类别ID是重中之重DETR模型对类别ID非常敏感必须保证标注的category_id不超过num_classes-1要么修改配置要么重映射ID。调试CUDA报错的技巧在train.py最顶部加上os.environ[CUDA_LAUNCH_BLOCKING] 1可以强制同步CUDA操作让报错直接定位到CPU代码行更容易排查问题。

相关文章:

RT-DETRv2训练自定义数据集的排坑全记录

RT-DETRv2训练自定义数据集的排坑全记录 最近在使用lyuwenyu/RT-DETR的PyTorch版本训练自定义缺陷检测数据集,从启动报错到成功训练,踩了不少典型的“新手坑”,这里把完整的排坑过程和解决方案整理出来,帮大家一次性避坑&#xff…...

AI设计泳装,能颠覆今夏潮流?

AI设计泳装,能颠覆今夏潮流? 夏日临近,泳装市场硝烟再起。然而,海量款式与消费者挑剔审美的矛盾日益尖锐——设计周期长、打版成本高、爆款命中率低,让无数商家深陷库存泥潭。如何破局?北京先智先行科技有限…...

冲压送料机远程监控运维管理系统方案

某设备制造商,常年向汽车零部件、电子元器件等行业客户供应各类冲压送料设备,随着市场拓展,其售后运维面临诸多突出问题。一方面,设备分布地域广泛,客户上报故障后,售后服务往往响应滞后且运维成本居高不下…...

鸿蒙PC中获取并使用DevEco Studio

鸿蒙PC中获取并使用DevEco Studio 一、前言 本文由 AtomCode 协助润色 随着鸿蒙生态的不断扩展,DevEco Studio 也推出了适配鸿蒙 PC 的预览版本。本文将详细介绍如何申请公测名额、下载安装 DevEco Studio,以及创建/导入项目并安装到鸿蒙设备。 前置条…...

在OpenClaw项目中集成Taotoken实现Agent工作流

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在OpenClaw项目中集成Taotoken实现Agent工作流 对于使用OpenClaw框架构建AI Agent的开发者而言,一个稳定、便捷的模型服…...

数据类型与变量-Part1-基础篇

C语言数据类型与变量(基础篇) 系列导航 📍 Part 1: C语言数据类型与变量(基础篇)← 你在这里🔜 Part 2: C语言内存探秘(进阶篇)🔜 Part 3: C语言输入输出格式化艺术 大家…...

网络编程入门 Python Socket 实现一个简单的用户认证系统

# Python Socket 实现一个简单的用户认证系统这次写的是一个简单的用户认证系统。整体思路是:1. 服务端负责保存和校验用户名、密码 2. 客户端负责输入用户名、密码 3. 客户端把用户输入的数据发送给服务端 4. 服务端判断用户名和密码是否正确 5. 服务端把登录结果返…...

为什么92%的Lovable新手在第5小时放弃?——资深架构师拆解3个致命认知盲区

更多请点击: https://codechina.net 第一章:Lovable应用开发入门与环境搭建 Lovable 是一个面向现代 Web 应用的轻量级全栈框架,专为快速构建可维护、可扩展且富有表现力的交互式应用而设计。它融合了声明式 UI、响应式状态管理与内置服务抽…...

【Flink学习】(五)Flink 并行度与任务链,任务运行核心原理

本文主要整理Flink 底层任务运行机制,学会合理设置并行度,初步具备任务调优思维。 一、并行度概念 并行度代表 Flink 任务运行的线程数量,决定任务处理速度,分为全局并行度、算子并行度、客户端并行度。 二、并行度设置 分为三种方…...

Windhawk终极指南:5分钟掌握Windows系统个性化定制

Windhawk终极指南:5分钟掌握Windows系统个性化定制 【免费下载链接】windhawk The customization marketplace for Windows programs: https://windhawk.net/ 项目地址: https://gitcode.com/gh_mirrors/wi/windhawk Windows系统定制一直是许多用户的痛点&am…...

Wordpress网站使用siteground security optimizer 及 translatepress多语言插件的翻译问题

问题:发现有的页面翻译出错,如下图:经排查,原因是 SiteGround 主机安全插件中的“锁定并保护系统文件夹”功能,阻止了 TranslatePress 插件的 trp-ajax.php 文件正常执行。解决方法:将 trp-ajax.php 加入白…...

3分钟彻底清理Windows系统:Win11Debloat让你的电脑重获新生

3分钟彻底清理Windows系统:Win11Debloat让你的电脑重获新生 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter a…...

从零训练潮州话语音克隆模型:ElevenLabs Fine-tuning实战(附1782条标注语料清洗脚本)

更多请点击: https://codechina.net 第一章:从零训练潮州话语音克隆模型:ElevenLabs Fine-tuning实战(附1782条标注语料清洗脚本) 语料准备与质量校验 潮州话语音克隆对数据一致性要求极高。我们采集并人工标注了178…...

使用Taotoken后API调用稳定性与延迟的实际体验观察

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken后API调用稳定性与延迟的实际体验观察 在最近一个为期一周的后端服务开发项目中,我们将原本直接调用多个厂…...

Audio Slicer:智能音频分割终极指南,告别繁琐手动剪辑

Audio Slicer:智能音频分割终极指南,告别繁琐手动剪辑 【免费下载链接】audio-slicer A simple GUI application that slices audio with silence detection 项目地址: https://gitcode.com/gh_mirrors/aud/audio-slicer 还在为音频剪辑的繁琐操作…...

Windows和Office激活终极指南:KMS_VL_ALL_AIO一键解决方案

Windows和Office激活终极指南:KMS_VL_ALL_AIO一键解决方案 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows和Office的激活问题烦恼吗?每次重装系统都要重新…...

智界V9,50万的豪华MPV来了

鸿蒙智行旗下首款旗舰MPV——智界V9正式亮相了。目前的高端MPV市场格局跟之前有很大改变,尤其是四十万之上这个段位,以前基本被几家合资老牌霸占,如今本土的科技企业和新势力一窝蜂杀进来。智界V9的起步价为38.98万,高端款51.98万…...

3个核心功能:用HSTracker将炉石传说数据转化为你的制胜优势

3个核心功能:用HSTracker将炉石传说数据转化为你的制胜优势 【免费下载链接】HSTracker A deck tracker and deck manager for Hearthstone on macOS 项目地址: https://gitcode.com/gh_mirrors/hs/HSTracker 在炉石传说的竞技场上,每一张卡牌的抽…...

写给前端的 CANN-ops-fft:昇腾FFT算子库到底是啥?

写给前端的 CANN-ops-fft:昇腾FFT算子库到底是啥? 之前做信号处理,兄弟问我:“哥,我想做频域分析,昇腾上有现成的 FFT 库吗?” 好问题。今天一次说清楚。 ops-fft 是啥? ops-fft Op…...

【硬核测评】程序员专属AI面霸养成指南:鹅来面OfferGoose,真的能让你Offer拿到手软?

一、AI面试工具:程序员求职的“智能外挂”,你跟上节奏了吗?在当今内卷激烈的互联网求职环境中,面试环节的难度与复杂度不断攀升。从在线笔试的代码挑战,到远程视频面试的即时问答,再到大厂多轮技术面试的压…...

【MATLAB源码-第442期】基于MATLAB的OFDM系统PAPR抑制算法仿真及限幅压扩SLM、PTS与TR性能对比

操作环境:MATLAB 2024a1、算法描述摘要 正交频分复用技术能够把高速数据流分解到多个正交子载波上传输,因此在宽带通信系统中具有较高的频谱利用率和较强的抗频率选择性衰落能力。公开资料显示,OFDM 已经用于 DAB、DVB、WLAN、WiMAX、第四代和…...

开源数据库 TimescaleDB 2.27.1 发布:性能改进与多项错误修复,官方建议尽快升级

开源数据库 TimescaleDB 2.27.1 版本正式发布,较 2.27.0 版本有性能改进和错误修复,官方建议用户尽快升级。 TimescaleDB 简介 TimescaleDB 是基于 PostgreSQL 构建的开源数据库,打包为 PostgreSQL 扩展程序,可让 SQL 扩展到时间序…...

2026企业网盘怎么选?十大产品深度测评:从合规到协作一次讲清

企业网盘已经不只是“存文件”这么简单了。2026年,远程办公常态化、数据合规持续收紧、企业开始把“文件”当作数字资产来治理——网盘也从“云端U盘”进化为企业数字资产管理的底座。 过去选网盘,很多企业只看容量和价格;现在真正拉开差距的…...

git常用使用命令(亲测,可以,自己的笔记)

一本 官方中文版 书分享给大家(说明:本人多次阅读,体会是容易入门,读起来很顺手,但是讲的不深入) https://git-scm.com/book/zh/v2 一、git官方使用命令: usage: git [--version] [--help] [-C…...

十大榜单全覆盖,价值兑现引领:联想定义中国AI企业新高度

当前,全球 AI 产业已正式迈入规模化商业落地的关键周期,“技术炫技”让位于“价值兑现”,“算力筑基—技术创新—场景落地”的协同闭环成为高质量发展的核心逻辑。据《全球首席信息官(CIO)报告:企业级 AI 竞…...

利用Taotoken为Claude Code配置稳定后备API解决封号与Token不足问题

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用Taotoken为Claude Code配置稳定后备API解决封号与Token不足问题 对于依赖Claude Code进行日常开发的工程师而言,服…...

Cocos学习笔记:帧动画制作与动画编辑器使用

一、帧动画基础原理核心逻辑:帧动画本质是逐帧替换精灵(Sprite)的显示图片,通过控制图片切换频率,让静态序列图呈现连续动态效果。视觉原理:人眼存在视觉残留特性,短时间内连续播放 24 帧以上图…...

具身智能(Embodied AI):当 Agent 拥有了物理世界的身体

具身智能(Embodied AI):当Agent拥有了物理世界的身体,下一个十年的科技革命? 一、引言 (Introduction) 钩子 (The Hook) 你有没有过这样的幻想:下班回家推开门,AI机器人已经做好了你爱吃的糖醋排骨,把换下来的脏衣服扔进了洗衣机,甚至还帮你把刚到的快递拆好了?过去…...

避坑指南:华为云Stack OBS 3.0对象存储部署,小型化与标准化方案到底怎么选?

华为云Stack OBS 3.0部署选型实战:小型化与标准化方案深度对比 当企业级用户面对华为云Stack OBS 3.0对象存储部署时,第一个关键决策点往往出现在架构形态的选择上——是采用轻量灵活的小型化方案,还是选择高扩展性的标准化部署?这…...

【仅限前500名设计师获取】Midjourney双色调调色板生成器(含17组经Adobe Color验证的高转化配色矩阵)

更多请点击: https://codechina.net 第一章:Midjourney双色调调色范式的底层逻辑与设计价值 双色调(Duotone)并非简单叠加两种颜色,而是基于人眼视觉感知的非线性响应特性,在Midjourney中构建的一套语义化…...