MMDet初尝试:以官方文档为例,训练模型

news2024/11/15 15:47:19

使用前配置

按照官方文档配置环境:https://mmdetection.readthedocs.io/zh_CN/3.x/get_started.html

  1. 安装conda/Miniconda

  2. 创建并激活一个 conda 环境

    conda create --name openmmlab python=3.8 -y
    conda activate openmmlab
    
  3. 安装PyTorch(GPU平台)

    conda install pytorch torchvision -c pytorch
    
  4. 使用 MIM 安装 MMEngine 和 MMCV

    pip install -U openmim
    mim install mmengine
    mim install "mmcv>=2.0.0"
    
  5. 安装 MMDetection

    cd mmdetection
    pip install -v -e .
    # 注意不用遗漏“-e”后面的" .""
    # "-v" 指详细说明,或更多的输出
    # "-e" 表示在可编辑模式下安装项目,因此对代码所做的任何本地修改都会生效,从而无需重新安装。
    
  6. 验证 MMDetection 是否安装正确

    1. 下载配置文件和模型权重文件

      mim download mmdet --config rtmdet_tiny_8xb32-300e_coco --dest .

    2. 运行以下命令进行验证

      python demo/image_demo.py demo/demo.jpg rtmdet_tiny_8xb32-300e_coco.py --weights rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth --device cpu
      
    3. 你会在当前文件夹中的 outputs/vis 文件夹中看到一个新的图像 demo.jpg,图像中包含有网络预测的检测框

实操

这里实现的是官方文档中的“将单阶段检测器作为RPN”一节,下附链接

https://mmdetection.readthedocs.io/zh_CN/3.x/user_guides/single_stage_as_rpn.html
在这里插入图片描述

官方文档中写的都很详细的了,代码也有附上,这里就不再当搬运工了

总的来说就是:

  1. 创建一个名为 configs/faster_rcnn/faster-rcnn_r50_fpn_fcos-rpn_1x_coco.py 的配置文件(已建立,不用自己建文件,在configs/fcos/fcos_r50-caffe_fpn_gn-head_1x_coco.py的基础上进行了修改)

  2. 使用命令来训练定制模型(更多训练命令,请参考这里)

    # 使用8个 GPU 进行训练
    bash
    tools/dist_train.sh
    configs/faster_rcnn/faster-rcnn_r50_fpn_fcos-rpn_1x_coco.py
    --work-dir  /work_dirs/faster-rcnn_r50_fpn_fcos-rpn_1x_coco
    

我没有8个GPU,我只使用1个,我使用的训练命令如下

python tools/train.py configs/faster_rcnn/faster_r50_fpn_fcos-rpn_1x_coco.py --work-dir work-dir/faster_r50_fpn_fcos-rpn_1x_coco/
# 注意“-”和“_”别打混了
# work-dir为工作目录,训练好后的模型权重文件会存储在通过“--work-dir”指定的地方(自己建一个work-dir文件夹)

然后就可以看到开始输出信息
在这里插入图片描述

在这里插入图片描述

接下来会输出模型信息、工作目录以及使用钩子的信息(有点长,不全部截图了)
在这里插入图片描述

就开始训练模型了
在这里插入图片描述

(会一直输出训练的信息,如果不想看,也可以在后台挂起,将这些信息输出到指定的目录文件中

【待更新】

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

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

相关文章

C++ 多态:(使用Shape类层次结构的多态性的屏幕管理器)开发一个基本图形软件包

基于上篇C 多态:Shape类层次结构https://mp.csdn.net/mp_blog/creation/editor/133175074 【问题描述】 使用C 多态:Shape类层次结构中实现的Shape类层次。仅限于二维形状,如正方形,长方形、三角形和圆。和用户进行交互&#xff…

计算机操作系统 (王道考研)笔记(三)文件

目录 1 文件1.1 内存映射文件1.1.1 定义1.1.2 传统文件访问方式1.1.3 内存映射文件访问方式 1.2 文件管理1.3 文件的逻辑结构1.4 文件目录1.5 文件物理结构(文件分配方式)1.6文件的逻辑结构和物理结构 2 I/O3 缓冲区,磁盘 1 文件 1.1 内存映…

第二证券:北证50是什么意思?

随着中国资本市场的不断发展,投资者开始关注市场指数。北证50指数是其中一个备受关注的指数。那么,北证50究竟是什么意思呢?本文将从定义、历史、构成股票等多个角度分析北证50指数,帮助读者全面了解该指数。 1.定义 北证50指数…

基于Web安全的Python编程(1)

目录 一、http协议基础知识介绍 1、http协议分类 2、请求方法 3、什么是URL 4、请求头 5、响应状态码 二、常用Python库、函数、操作 三、http常用请求方法 1、不带参请求 2、带参数请求(get和post存在细微区别) 四、http响应属性获取 1、获取…

TikTok营销成功秘籍:ROI指标的黄金法则

在当今数字营销领域,TikTok已经崭露头角,成为了品牌和营销者们争相追逐的热门平台。 然而,要在TikTok上取得成功,不仅需要创意和内容,还需要精确的ROI(投资回报率)指标来衡量和优化你的营销策略…

【python入门篇】列表简介及操作(2)

列表是什么? 列表是由一系列按特定顺序排列的元素组成。你可以创建包含字母表中的所有字母、数字 0~9 或所有家庭成员的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。列表通常包含多个元素,因此给列表指定一…

图片转RGB数组格式

0 Preface/Foreword 嵌入式开发中,想要在LCD屏幕中显示任意照片,该如何操作? 根据LCD的大小确定把照片进行缩放;比如LCD的规格为:360 RGB* 360, 原始照片的大小为:1000RGB*1000,那…

FlashAttention2原理解析以及面向AIGC的加速实践

FlashAttention-2提出后,便得到了大量关注。本文将具体讲述FlashAttention-2的前世今生,包括FlashAttention1&2的原理解析、加速效果比较以及面向AIGC的加速实践,在这里将相关内容与大家分享~ 引言 将 Transformers 扩展到更长…

文心一言 VS 讯飞星火 VS chatgpt (102)-- 算法导论9.3 8题

八、用go语言,设 X[1…n]和 Y[1…n]为两个数组,每个都包含n个有序的元素。请设计一个 O(lgn)时间的算法来找出数组 X和Y中所有 2n 个元素的中位数。 文心一言: 要在 O(lgn) 时间内找出两个有序数组 X 和 Y 中所有元素的中位数,可…

vue最新前端面试题系列(1-5)

前言: 欢迎浏览和关注本专栏《 前端就业宝典 》, 不管是扭螺丝还是造火箭, 多学点知识总没错。 这个专栏是扭螺丝之上要造火箭级别的知识,会给前端工作学习的小伙伴带来意想不到的帮助。 文章目录 1,Vue 常用的修饰符都有哪些?事件修饰符表单修饰符2,$route和 $router的…

企业年报API的应用:从金融投资到市场研究

引言 在数字化时代,企业年报不再仅仅是一份财务报告,它们变成了宝贵的信息资源,可用于各种商业应用。企业年报API已经改变了金融投资和市场研究的方式,使得从中获取数据变得更加高效和灵活。本文将深入探讨企业年报API的应用&…

创建线程的4种方法

目录 一.前言 1.关于进程调度 (1)为什么要调度? (2)调度的真正对象 (3)调度的资源 2.线程 (1).线程的写法 (2)线程创建的方法 1.继承Thread (1)使用继承Thread,重写run的方式来创建线程 (2)继承Thread,使用匿名内部类 2.实现Runnable (1)使用实现Runnable,重写run…

基于SSM的网上药品售卖系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

衷心 祝愿

达之云衷心祝愿您,中秋国庆双节快乐,阖家幸福!感谢您们一直以来对达之云的关注与支持。 双节来临之际,达之云发布全新产品——达之云CDP客户数据平台(Dazdata CDP),致力于为中小企业提供互联网营…

【VUE复习·6】监视属性watch:用途、两种写法、简写、应用时注意事项(重点)、深度监视(重点)

总览 1.监视属性是用来干什么的? 2.监视属性的两种写法 3.应用时注意事项 4.深度监视 一、监视属性是用来干什么的? 1.用途 监视一个值(可以是基本属性 data,或者是计算属性 computed)是否被改变。如果此值被改变&…

品牌奖项+个人奖项双丰收,极智嘉全面展现自身硬核实力

最近,中国物流与采购联合会发布了2022年度科学技术奖获奖名单。在这份名单中,极智嘉与国药物流、南京医药、九州通医药以及多所高校合作,成功研发并应用了“面向医药流通的大规模机器人集群系统关键技术”。这项研究赢得了科学技术进步奖的一…

SpringCloud + SpringGateway 解决Get请求传参为特殊字符导致400无法通过网关转发的问题

title: “SpringCloud SpringGateway 解决Get请求传参为特殊字符导致400无法通过网关转发的问题” createTime: 2021-11-24T10:27:5708:00 updateTime: 2021-11-24T10:27:5708:00 draft: false author: “Atomicyo” tags: [“tomcat”] categories: [“java”] description: …

Win10检测和配置使用千兆网

注:一般只有比较旧的电脑才会是百兆网卡(我的2019年笔记本dell灵越是百兆网卡瑞昱RTL810x/8139,离谱)。 查看硬件是否为千兆网卡 cmd内执行如下(100000000b100000kb100Mb,我这里显示的为百兆)…

如何在不失去理智的情况下调试 TensorFlow 训练程序

一、说明 关于tensorflow的调试,是一个难啃的骨头,除了要有耐力,还需要方法;本文假设您是一个很有耐力的开发者,为您提供一些方法;这些方法也许不容易驾驭,但是依然强调您只要有耐力&#xff0c…

Multisim14.0仿真(二十七)基于UC3842的反激式开关电源的设计及仿真

一、UC3842简介: UC3842为固定频率电流模式PWM控制器。它们是专门为OFF−线和直流到直流转换器应用与最小的外部组件。内部实现的电路包括用于精确占空比控制的修剪振荡器、温度补偿参考、高增益误差放大器、电流传感比较器和理想适合于驱动功率MOSFET的高电流温度极…