使用mmdetection来训练自己的数据集(visdrone)(四)结果分析

2024-04-29 18:28

本文主要是介绍使用mmdetection来训练自己的数据集(visdrone)(四)结果分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

测试

 python tools/test.py <your-config-file> <your-model-weights-file> --out <save-pickle-path>

关于test.py 的命令行

    parser.add_argument('--out',type=str,help='dump predictions to a pickle file for offline evaluation')

计算量、参数量计算脚本

 python tools/analysis_tools/get_flops.py <你的配置文件位置>

结果图

==============================
Use size divisor set input shape from (1080, 1920) to (768, 1344)
==============================
Compute type: dataloader: load a picture from the dataset
Input shape: (768, 1344)
Flops: 0.199T
Params: 32.039M

推理时间、fps、gpu memory,计算脚本

需要下面的依赖

pip install psutil --upgrade
 python tools/analysis_tools/benchmark.py <你的配置文件位置> --checkpoint <模型权重epoth> --task inference --fuse-conv-bn

结果图

04/29 17:04:51 - mmengine - INFO - ============== Done ==================
04/29 17:04:51 - mmengine - INFO - Overall fps: 34.1 img/s, times per image: 29.3 ms/img
04/29 17:04:51 - mmengine - INFO - cuda memory: 365 MB
04/29 17:04:51 - mmengine - INFO - (GB) mem_used: 13.95 | uss: 5.80 | pss: 5.80 | total_proc: 1

绘制曲线图脚本

 python tools/analysis_tools/analyze_logs.py plot_curve <train-json-file> --keys <关键词:loss> --legend <标题> --out <保存为pdf形式>

示例

python tools/analysis_tools/analyze_logs.py plot_curve work_dirs/tood_r50_1x_visdrone/20240429_141736/vis_data/20240429_141736.json --keys loss_cls loss --legend loss_cls loss --out work_dirs/losses_1.pdf

在这里插入图片描述
多卡训练

bash ./tools/dist_train.sh \${CONFIG_FILE} \${GPU_NUM} \[optional arguments]

详情参考官方文档

https://mmdetection.readthedocs.io/zh-cn/latest/user_guides/useful_tools.html#id2

这篇关于使用mmdetection来训练自己的数据集(visdrone)(四)结果分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/946824

相关文章

TypeScript高级类型 在鸿蒙中的使用 Partial、Required、Readonly、Pick、Record

我的工程代码在这里,持续更新中 欢迎交流,谢谢 https://github.com/MartinLi89/WanHarmony Partial <Type> 新定义 一个类型,将所有属性变为可选的类. class TextTS {a: string = "1"b: string = "2"c: string = "3"}//1 Partial <Type>新定义 一个类型,将所有属性变为

【算法训练 day29 组合总和、组合总和Ⅱ、分割回文串】

目录 一、有序数组的平方-LeetCode 39思路实现代码个人问题总结 二、组合总和Ⅱ-LeetCode 40思路实现代码个人问题总结 三.分割回文串-LeeCode 131思路实现代码个人问题总结 一、有序数组的平方-LeetCode 39 Leecode链接: leetcode 39 文章链接: 代码随想录 视频链接: B站 给你一个 无重复元素 的整数数组 can

Leetcode---1.两数之和 (详解加哈希表解释和使用)

文章目录 题目 [两数之和](https://leetcode.cn/problems/two-sum/)方法一:暴力枚举代码方法二:哈希表代码 哈希表哈希表的基本概念哈希函数(Hash Function):冲突(Collision):链地址法(Chaining):开放地址法(Open Addressing): 哈希表的操作插入(Insert):查找(Search):删除(Delete):

Qt编译和使用freetype矢量字库方法

在之前讲过QT中利用freetype提取字库生成图片的方法: #QT利用freetype提取字库图片_qt freetype-CSDN博客文章浏览阅读1.2k次。这是某个项目中要用到的片段,结合上一篇文章#QT从字体名获取字库文件路径使用// 保存位图int SaveBitmapToFile(HBITMAP hBitmap, LPSTR lpFileName){HDC hDC;int iBits

2.12学习内容 责任链,HashSet去除重复数据原理

public class Main { public static void main(String[] args) { Support evan=new HR("人力Evan"); Support kaka=new ZuZhang("组长kaka", 100);//组长最多能解决提高工资100的问题 Support bingbing=new JingLi("经理bingbing",

如何使用 PuTTY 创建 SSH 密钥以连接到 VPS

公钥和私钥 SSH 密钥的好处 如果您的无头或远程 VPS 可以通过互联网访问,您应该尽可能使用公钥身份验证而不是密码。这是因为与仅使用密码相比,SSH 密钥提供了一种更安全的登录方式。虽然密码最终可以通过暴力破解攻击破解,但 SSH 密钥几乎不可能仅通过暴力破解来解密。使用公钥身份验证,每台计算机都有 (i) 公钥 和 (ii) 私钥 “密钥”(两个数学上相关的算法,几乎不可能被破解)。 如

7.21 ios自动关联控件,centos systemctl使用,tomcat配置

学习笔记 1.ios自动配控件 学习过程中app出现这个错误 Terminating app due to uncaught exception ‘NSUnknownKeyException’, reason: ‘[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key myB

android的activitygroup使用

使用方法: 让mainactivity继承ActivityGroup manager = getLocalActivityManager();private void showPage(Class<?> cls) {container.removeAllViews();manager.removeAllActivities();System.gc();container.addView(man

入坑,使用第三方SDK开发mavenJspWeb项目

最近公司给了我一个奇怪的任务:用国外一个特定的SDK新建maven项目用开发一个运行在手机上的jsp网站,刚听到这个任务的时候我是懵逼的,除了jsp会一点外,各种没接触过。 刚开始,我的电脑没有这个环境,可视化编辑器都没有,为了能快速完成,我选择用myeclipse8.5,装上去,发现缺少m2eclipse插件插件,后来才知道myeclipse10是有自带的。 安装maven,这个比较简单就不

java并发编程ThreadLocal的使用

ThreadLocal与synchronized 有着相反的概念,前者在多线程使用时会创建新的对象,后者保证对象在多线程是唯一的。 看代码好理解: public class Test {ThreadLocal<Long> longLocal = new ThreadLocal<Long>();ThreadLocal<String> stringLocal = new ThreadLocal