mmdetection调用模型训练

news2024/10/6 8:25:07

mmdetection调用模型训练

文章目录

  • mmdetection调用模型训练
    • 转化数据集格式从labelme到coco
    • 首先data导进来
    • 改一下`coco.py`
    • 改一下`class_names.py`
    • 在模型跑了之后看生成文件然后掐了
    • 包版本
    • 设置`PYTHONPATH`
    • diffustiondet模型
      • 模型训练
      • 跑完了
      • 检测模型
    • yolo模型
    • yolof模型

转化数据集格式从labelme到coco

image-20230612102840681

首先data导进来

以这样的形式命名

422f4e7e2cbcb305cbb44b92fa5d6af

因为现在mmdetection版本更新了到3.x

所以项目结构变了

改一下coco.py

image-20230612004243817

改一下class_names.py

c8322758537f71481eaee4baa3672a7

在模型跑了之后看生成文件然后掐了

5b472a88830c1b0bb8bcf346ab81681

然后跑这个config

包版本

068f69f2dcd16e5209241f387bbeb3f

主要就是这三个包

mmdet好像要用mim安装

f28a7b23695bdf6049be520d026d692

这包都是按官网教程装的

设置PYTHONPATH

$env:PYTHONPATH += ";F:\Include\include\CV\openlab\mmdetection-3.x"

Python的import语句用于在当前模块中导入其他Python模块的代码。Python解释器会在一系列预定义的目录中查找要导入的模块,这些目录被称为Python路径(Python Path)。

当你执行一个Python脚本时,Python解释器会将当前脚本的目录自动添加到Python路径中。此外,Python还会在环境变量PYTHONPATH中指定的目录以及一些默认的位置(例如Python安装目录下的Libsite-packages目录)中查找模块。

在你的情况下,错误信息提示Python解释器无法在Python路径中找到名为projects.example_project.dummy的模块。这可能是因为你的projects目录不在Python路径中。

要解决这个问题,你可以将包含projects目录的路径添加到PYTHONPATH环境变量中。例如,如果你的projects目录位于F:\Include\include\CV\openlab\mmdetection-3.x,你可以这样设置环境变量(在Windows命令提示符中):

$env:PYTHONPATH += ";F:\Include\include\CV\openlab\mmdetection-3.x"

然后再次运行你的脚本,Python解释器就应该能够找到你的projects.example_project.dummy模块了。

注意,这种方法设置的环境变量只在当前的命令提示符会话中有效。如果你开启了新的命令提示符会话,你需要再次设置环境变量。如果你想让环境变量的设置在系统中持久保存,你需要将上述命令添加到你的系统环境变量设置中。

diffustiondet模型

模型训练

a7a2dad054ee09d263dcd817b9eed61

6d1356ac46f2929e1c610038127c297

这个估计要看轮数

我用这个模型跑了90000个

不知道效果咋样

因为一开始模型预设太高了450000

跑一分钟不到就爆了

跑完了

竟然因为一个图片不存在的错误而终止了

正好到15000个迭代

还好保存了一个checkpoint能够测试模型

image-20230612084356693

画个损失图

python .\tools\analysis_tools\analyze_logs.py plot_curve .\Evinci\20230612_015115\vis_data\20230612_015115.json --keys loss loss_cls loss_bbox

可以加个输出路径--out out.pdf, 会输出到项目的根目录…

image-20230612084614811

Figure_1

检测模型

python tools/test.py Evinci_config\diffusiondet_r50_fpn_500-proposals_1-step_crop-ms-480-800-450k_coco.py Evinci_diffusiondet\iter_15000.pth --show

--show可以不加,这个过程是在验证集上进行训练,然后输出结果,加了--show会一张一张的显示,所以训练就特别慢

image-20230612085524690

如果不加,不到一分钟就出来结果了

211029-019C_98_1_1129_312_0.717.png

可以看到我模型里面标注的训练和测试集的训练log信息

image-20230612205331605

yolo模型

第一次运行模型会下载一些文件

image-20230612164126520

一定是要在第一次启动之后然后掐掉, 运行的配置文件要从指定的工作目录中获取, 然后运行

可以在第一次运行之后把模型产生的配置文件放到自己的配置文件夹中, 然后修改一些必要的属性,再运行,这样基本上回没什么问题和bug

可以看到,模型下载完之后训练就开始正常运行了

image-20230612164407110

还有一个关键点,可以看到上述的loss非常大,因为没有加载预训练模型,所以模型是从头开始训练的,而自己的数据集图片总共就六七百张,数量还是很小的,所以想要早小数据集上有一个比较不错的效果,加载预训练模型是比较关键的

就是在load_from中填写预训练模型的路径,我是已经把要使用预训练模型的checkpoint文件都下载下来了

但是之后报了个奇怪的bug

yolof模型

果然是就需要从自己的config配置文件进行启动

image-20230612165330419

这样就成功了

虽然一开始肯定是要先从,configs下面的模型的配置文件运行

但是在work-dir生成配置文件之后,就要从该文件进行运行

但是之后报了个奇怪的bug

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

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

相关文章

qemu arm-trusted-firmware atf 的编译

参考网站 ATF (arm-trusted-firmware),可以称之为 Trusted Firmware-A (TF-A),也就是 TF-A https://www.trustedfirmware.org/ https://github.com/ARM-software/arm-trusted-firmware 环境 使用 qemu,就是不需要板子 win10 …

Node.js入门与 Webpack模块打包工具

目录 Node.js入门 fs模块-读写文件 path模块-路径处理 压缩前端html 认识URL中的端口号 http模块-创建Web服务 体验 Web 服务除了接口数据以外,还能返回网页资源等 Node.js模块化 ECMAScript标准-默认导出和导入 ECMAScript标准-命名导出和导入 包的…

攻防世界-Reverse-Game

题目描述:下载附件,得到一个exe程序,运行该程序,可以看到如下的界面 根据描述信息说明: a. 这是一个电路,有8个开关,只有8个开关全部闭合,才能够获取到flag; b. 其中n表…

Unity shader - 纹理采样

目录 1.什么是UV 2.凹凸纹理 3.渐变纹理映射 4.遮罩纹理 1.什么是UV 对于三维模型,有两个最重要的坐标系统,一是顶点的位置(X,Y,Z)坐标,另一个就是UV坐标。什么是UV?简单的…

关于机器人精度的总结(重复精度和绝对精度区分)

ABB系列某款机器人精度参数表 机械臂是工业生产中的重要设备,在焊接码垛 以及 非 接触测量等 领域中有 着重要应 用。然而由于机械臂本体制造中存在机械制造公差装配误差导致的运动学参数误差以及电机转角与关节转角间减速比误差等,导致机械臂存在重复性定位精度较高(0.05 mm …

EMQ的介绍及整合SpringBoot的使用

首先先了解一下底层的协议: 1. MQTT MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅 (publish/subscribe)模式的"轻量级"通讯协议,该协议构建…

python实现递归算法解决年龄问题

一、问题描述 有5个人坐在一起,问第5个人多少岁,他说比第4个人大2岁。问第4个人多少岁,他说比第3个人大2岁。问第3人多少岁,他说比第2个人大2岁。问第2个人多少岁,他说比第1个人大2岁。最后问第1个人多少岁&#xff0…

ALLEGRO之SHAPE

ALLEGRO中的SHAPE菜单对应AD中的Polygon Pour,即铺铜操作。 1. Polygon:铺铜,在Options选择对应子层(例如Etch-Top),选择Dynamic copper(动态铺铜,会自动避让过孔,Static…

MIT 6.S081 教材第五章内容 -- 中断与设备驱动--上

MIT 6.S081 教材第五章内容 -- 中断与设备驱动--上 引言真实操作系统内存使用情况(上一节回顾)中断和设备驱动Interrupt硬件部分设备驱动概述在XV6中设置中断UART驱动的top部分UART驱动的bottom部分Interrupt相关的并发UART读取键盘输入Interrupt的演进小结代码:控制…

VanillaNet 原理与代码解读

paper:VanillaNet: the Power of Minimalism in Deep Learning official implementation: GitHub - huawei-noah/VanillaNet 存在的问题 虽然复杂网络的性能很好,但它们日益增加的复杂性给部署带来了挑战。例如,ResNets中的sh…

浏览器工作原理

浏览器(也称为网络浏览器或互联网浏览器)是安装在我们设备上的软件应用程序,使我们能够访问万维网。在阅读这篇文字时,你实际上正在使用一个浏览器。 有许多浏览器正在被使用,截至2022年,使用最多的是&…

为了找到好工作,花2个月时间整理了3.5W字的自动化测试面试题(答案+学习路线)!

从5月初开始找工作到现在,先后面试了阿里巴巴、字节跳动、网易、快手的测试开发岗。 大公司对于测试开发的要求相比来说高很多,要求掌握的知识点的广度和深度层次也比较高,遂整理了这两个月的面试题目文档供大家参考,同时也是为了…

基于java+swing+mysql商城购物系统

基于javaswingmysql商城购物系统 一、系统介绍二、功能展示1.项目骨架2.主界面3.用户登陆4.添加商品类别5、添加商品6、商品管理 四、其它1.其他系统实现五.获取源码 一、系统介绍 项目类型:Java SE项目 项目名称:商城购物系统 用户类型:双…

【C++学习】线程库 | IO流 | 空间配置器

🐱作者:一只大喵咪1201 🐱专栏:《C学习》 🔥格言:你只管努力,剩下的交给时间! 一、线程库 在C11之前,涉及到多线程问题,都是和平台相关的,比如w…

【Python爬虫开发基础⑥】计算机网络基础(Web和HTTP)

专栏:python网络爬虫从基础到实战 欢迎订阅!近期还会不断更新~ 另外:如果想要看更多的计算机网络知识,可以关注我的专栏:计算机网络 往期推荐: 【Python爬虫开发基础①】Python基础(变量及其命名…

【数据结构】特殊矩阵的压缩存储

🎇【数据结构】特殊矩阵的压缩存储🎇 🌈 自在飞花轻似梦,无边丝雨细如愁 🌈 🌟 正式开始学习数据结构啦~此专栏作为学习过程中的记录🌟 文章目录 🎇【数据结构】特殊矩阵的压缩存储&#x1f38…

C语言学习(二十六)---指针练习题(二)

在上节的内容中,我们进一步学习了有关指针的内容,并做了一些关于指针的题目,今天我们将继续练习一些指针的题目,以便大家更好的理解和掌握指针的知识,好了,话不多说,开整!&#xff0…

【c++11】 左值引用和右值引用

c11特性 右值引用左值引用和右值引用左值引用右值引用比较 右值引用的应用左值引用的短处右值引用解决问题移动构造 STL的改动move()函数结语 右值引用 c从出现就有着引用的语法,但是在c11后又新增了右值引用的新特性,以往所学的引用成了左值引用。非左…

代码随想录算法训练营第四十二天| 背包问题

标准背包问题 有n件物品和一个最多能背重量为w 的背包。 第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 举一个例子: 背包最大重量为4。 物品为: 重量价…

5.2.3目录与文件之权限意义

现在我们知道了Linux系统内文件的三种身份(拥有者、群组与其他人),知道每种身份都有三种权限(rwx), 已知道能够使用chown, chgrp, chmod去修改这些权限与属性,当然,利用ls -l去观察文…