paddledetection在window使用cpu快速上手 & 在cpu端训练自己的VOC类型数据集

2023-11-12

使用cpu快速上手

配置文件

配置文件在configs文件夹下,包含了基本上所有常见模型的配置文件
以yolov3_mobilenet_v1_roadsign.yml为例

_BASE_: [
  '../datasets/roadsign_voc.yml',
  '../runtime.yml',
  '_base_/optimizer_40e.yml',
  '_base_/yolov3_mobilenet_v1.yml',
  '_base_/yolov3_reader.yml',
]
  • yolov3_mobilenet_v1_roadsign 文件入口
  • roadsign_voc 主要说明了训练数据和验证数据的路径
  • runtime.yml 主要说明了公共的运行参数,比如说是否使用GPU、每多少个epoch存储checkpoint等
  • optimizer_40e.yml 主要说明了学习率和优化器的配置。
  • ppyolov2_r50vd_dcn.yml 主要说明模型、和主干网络的情况。
  • ppyolov2_reader.yml 主要说明数据读取器配置,如batch size,并发加载子进程数等,同时包含读取后预处理操作,如resize、数据增强等等

修改&开始训练

因为我使用的是cpu,所以只需要将configs/runtime.ymluse_gpu: 改成 false
在这里插入图片描述
然后使用命令行进行训练

 python tools/train.py -c configs/yolov3/yolov3_mobilenet_v1_roadsign.yml

在这里插入图片描述
到这就已经开始简单的训练了!
【参考文档】30分钟快速上手PaddleDetection

训练自己的VOC类型数据集

结构

下面是我voc类型数据集的结构
在这里插入图片描述
至于label_list.txttrain.txtval.txt不用多管,这部分是后面生成的。

你需要做的就是

  1. 在dataset文件夹中创建一个属于自己的文件夹
  2. 创建annotations,images文件夹,然后将图片文件放入images,将xml文件放入annotations
  3. 创建 create_list.py(代码如下)
import random
import os
#生成train.txt和val.txt
random.seed(2020)
#---------------------修改为自己的路径----------------------------------------------------
xml_dir  = 'D:/computervision/PaddleDetection-release-2.5/dataset/number/annotations'#标签文件地址
img_dir = 'D:/computervision/PaddleDetection-release-2.5/dataset/number/images'#图像文件地址
#---------------------修改为自己的路径----------------------------------------------------

path_list = list()
for img in os.listdir(img_dir):
    img_path = os.path.join(img_dir,img)
    xml_path = os.path.join(xml_dir,img.replace('jpg', 'xml'))
    path_list.append((img_path, xml_path))
random.shuffle(path_list)
ratio = 0.9
#---------------------train/val之前修改为自己的路径----------------------------------------------------
train_f = open('D:/computervision/PaddleDetection-release-2.5/dataset/number/train.txt','w') #生成训练文件
val_f = open('D:/computervision/PaddleDetection-release-2.5/dataset/number/val.txt' ,'w')#生成验证文件
#---------------------修改为自己的路径----------------------------------------------------

for i ,content in enumerate(path_list):
    img, xml = content
    text = img + ' ' + xml + '\n'
    if i < len(path_list) * ratio:
        train_f.write(text)
    else:
        val_f.write(text)
train_f.close()
val_f.close()

#生成标签文档
label = ['number']#设置你想检测的类别

#---------------------label_list之前修改为自己的路径----------------------------------------------------
with open('D:/computervision/PaddleDetection-release-2.5/dataset/number/label_list.txt', 'w') as f:
# ---------------------label_list之前修改为自己的路径----------------------------------------------------
    for text in label:
        f.write(text+'\n')

修改配置文件

这点是基于你已经选择好了想要使用的模型,我以我使用的ppyoloe为例:
在这里插入图片描述
配置文件就这么4个

接下来你要做的就是:

  1. configs/datasets创建(或者是直接修改voc.yml文件)
    以下内容基本上必须修改!!!在这里插入图片描述
    其实直接右键就可以了

在这里插入图片描述
最后的修改结果就是:

  1. 修改configs/ppyoloe/ppyoloe_crn_l_36e_coco_xpu.yml
    在这里插入图片描述

贫困小孩用的是cpu,所以要改这个
在这里插入图片描述

  1. 然后其他文件的话就是一些非必须的调参
  2. 因为我用的是cpu,所以configs/runtime.yml中还要修改以防万一
    在这里插入图片描述

开跑

命令行开跑:

python tools/train.py -c configs/ppyoloe/ppyoloe_crn_l_36e_coco_xpu.yml

(1)报了个错

在这里插入图片描述

ppdet/core/workspace.py第78行修改为

with open(file_path, encoding='utf-8') as f:

修改后
在这里插入图片描述

(2)结论

cpu真的别来沾边,内存占用率最高到99%属实是有点绷不住

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

paddledetection在window使用cpu快速上手 & 在cpu端训练自己的VOC类型数据集 的相关文章

随机推荐

  • yolo-车辆测距+前车碰撞预警(追尾预警)+车辆检测识别+车辆跟踪测速(原创算法-毕业设计)

    目录 前言 一 环境配置 二 车辆检测 实时跟踪测速算法及代码解读 1 主函数各参数含义 2 算法实现 3 核心代码 4 效果展示 三 跟车距离测量算法及代码解读 1 主函数各参数含义 2 算法实现 3 效果展示 四 前车碰撞预警 追尾预警
  • seo的1000+篇文章总结

    seo的1000 篇文章总结 本文收集和总结了有关seo的1000 篇文章 由于篇幅有限只能总结近期的内容 想了解更多内容可以访问 http www ai2news com 其分享了有关AI的论文 文章 图书 query 08 外链 07
  • 今日面试题-2022-2-7

    Java序列化 反序列化 Java序列化就是指将对象转换为字节序列的过程 反序列化是指将字节序列转换成目标对象的过程 什么情况需要Java序列化 当Java对象需要在网络上传输或者持久化存储到文件中时 序列化的实现 让类实现Serializ
  • mysql 所有列_mysql怎么查询表中所有列(字段)?

    mysql查询表中所有列的方法 1 通过 查询表的所有列 语法 SELECT FROM 表名 2 通过列出表的所有字段来查询表的所有列 语法 SELECT 字段列表 FROM 表名 MySQL 数据表是由行和列构成的 通常把表的 列 称为字
  • 使用sqlite时遇到的错误 read-only

    在模拟器上运行没有问题 在真机上报如下错误 Attempt to add read only file at path file localhost var mobile Applications A80208B7 36C8 4CD0 94
  • 【BZOJ3309】DZY Loves Math 解题报告

    BZOJ3309 DZY Loves Math Description 对于正整数 n 定义 f n 为 n 所含质因子的最大幂指数 例如 f 1960 f 2 3 5 1 7 2 3 f 10007 1 f 1 0 给定正整数 a b 求
  • 可以单机运行的ChatGLM-6B发布

    清华技术成果转化的公司智谱 AI 开源了 GLM 系列模型 ChatGLM 6B 这是一个支持中英双语的对话语言模型 基于 General Language Model GLM 架构 具有 62 亿参数 结合模型量化技术 用户可以在消费级的
  • Qt 学习:comboBox编程时使用currentIndexChanged老是出现 assert failure错误

    Qt5 学习新手 所以用comboBox的 indexChanged槽时不知为何总是出现 ASSERT failure 错误 在程序中由于还使用了QList的对象 起初以为是它出了问题 反复检查也没有 后来在网上搜了半天才发现原来是在另外一
  • 1.PCB设计流程

    1 设计流程 笔记参考了郭天祥的PCB学习视频 1 总流程 SCH设计 SCH仿真 生成网表 PCB设计 信号完整性分析 低速信号即低于50Mhz的信号 不需要信号完整性分析 文件存储及打印 PS 加工时要注意加工厂的制作能力 比如最小线宽
  • itunes备份和恢复速度一样吗_Mac技巧分享:如何从加密的iTunes备份中恢复数据?...

    为了增强iTunes备份的安全性 您可以在iTunes中选中 加密iPhone备份 选项 但是 如果您忘记 丢失或忘记了备份密码 则在取回密码之前 不能取消选中 加密iPhone备份 选项 现在 我们的数据恢复软件 PhoneRescue可
  • 经典算法-动态规划

    一 基本概念 动态规划过程是 每次决策依赖于当前状态 又随即引起状态的转移 一个决策序列就是在变化的状态中产生出来的 所以 这种多阶段最优化决策解决问题的过程就称为动态规划 二 基本思想与策略 基本思想与分治法类似 也是将待求解的问题分解为
  • c# datagridview合并单元格

    region 合并单元格的测试 private int nextrow null private int nextcol null private void dataGridView1 CellFormatting object sende
  • 程序员情感三部曲之程序员如何找女朋友

    我的公众号 码农之屋 id Spider1818 分享的内容包括但不限于 Linux 网络 云计算虚拟化 容器Docker OpenStack Kubernetes SDN OVS DPDK Go Python C C 编程技术等内容 欢迎
  • mysqldump备份恢复数据库

    备份单库 单表 mysqldump u username p dbname tbname gt filename sql 备份单库多表 mysqldump u username p dbname tbname1 tbname2 gt fil
  • python二级题库(百分之九十原题) 刷题软件推荐 第二套

    目录 一 选择题 二 基本操作 三 简单应用 四 综合应用 刷题软件 文末有联系方式 注明来意 一 选择题 1 下列叙述中正确的是 A 在栈中 栈中元素随栈底指针与栈顶指针的变化而动态变化 B 在栈中 栈顶指针不变 栈中元素随栈底指针的变化
  • GeoServer系列-geojson保存mongodb乱码问题

    前言 基于前一篇文章GeoServer系列 通过mongodb发布geojson数据 业务上可将常见的地理文件统一为geojson保存到mongodb 方便统一维护和发布geoserver 这一篇将解决mongodb中属性中文乱码问题 1
  • python关于uwsgi

    一 定义 1 uWSGI定义 uWSGI是一个web服务器 实现了WSGI协议 uwsgi协议 http协议等 uWSGI的主要特点是 超快的性能 c语言编写 低内存占用 多app管理 详尽的日志功能 可以用来分析app的性能和瓶颈 高度可
  • 项目计划管理 (包含WBS 分解图、甘特图)

    WBS表 工作分解表 工作分解表结构是以交付成果为导向的项目各组成部分的一种分解结构 它对项目的总范围进行组织分解和定义 工作包是WBS的最底层元素 一般的工作包是最小 可交付成果 创建WBS时需要满足以下几点基本要求 1 某项任务应该在W
  • 基于轨迹数据的人口流向分析技术,精准病毒传播追踪

    2019年12月 我国出现了新型冠状病毒引发的多起病例 全国逐渐开启疫情防疫监控 严重地区甚至实施封闭管理 而此次疫情正好恰逢春运期间 大规模的跨地区人口流动会助长病毒传播 甚至传染到全球范围 因此 科学管理人口流动成为疫情防控关键 基于疫
  • paddledetection在window使用cpu快速上手 & 在cpu端训练自己的VOC类型数据集

    使用cpu快速上手 配置文件 配置文件在configs文件夹下 包含了基本上所有常见模型的配置文件 以yolov3 mobilenet v1 roadsign yml为例 BASE datasets roadsign voc yml run