【ModelArts系列】华为ModelArts训练yolov3模型(训练作业)

2023-10-27

一、参考资料

华为ModelArts Notebook训练yolov3模型

二、相关介绍

在ModelArts的 训练任务 中运行ModelZoo中模型,以yolov3为例,训练集为 COCO2014。

运行环境

运行环境:ModelArts notebook
模型:ModelZoo,yolov3
数据集:COCO2014
AI引擎:Ascend-Powered-Engine | tensorflow_1.15-cann_5.0.3-py_3.7-euler_2.8.3-aarch64
规格:Ascend: 1*Ascend-910(32GB) | ARM: 24 核 96GB

三、关键步骤

关键步骤,请参考官方教程:YOLOv3

博主复现的过程中,仅记录一些容易出错的步骤。

3.1 下载源代码

官方仓库:YOLOv3

博主的仓库:modelarts-yolov3
在这里插入图片描述

3.2 准备数据集

  1. 下载COCO2014数据集,下载地址:

    链接:https://pan.baidu.com/s/16sxIpFs-hd-6FzN2rSHgqA
    提取码:1234

  2. 数据集上传到obs;

用obs-browser客户端上传COCO2014数据集到OBS。
在这里插入图片描述

3.3 准备预训练模型

在这里插入图片描述

预训练模型下载之后,放入 YoloV3_for_TensorFlow_1.6_code/data/darknet_weights 路径。

+--- data
|   +--- coco2014_minival.txt
|   +--- coco2014_trainval.txt
|   +--- darknet_weights  # 预训练模型所在路径
|   |   +--- checkpoint
|   |   +--- darknet53.ckpt.data-00000-of-00001
|   |   +--- darknet53.ckpt.index
|   |   +--- darknet53.ckpt.meta
|   |   +--- readme

3.4 准备源码

准备txt标注文件

根据COCO2014数据集的实际路径使用 coco_trainval_anns.pycoco_minival_anns.py 分别生成 训练和验证样本标注文件 coco2014_trainval.txtcoco2014_minival.txt ,并放置于 YoloV3_for_TensorFlow_1.6_code/data 录下。

# 1. 修改源码中的路径

# 2. 执行 coco_trainval_anns.py
python coco_trainval_anns.py

# 3. 执行 coco_minival_anns.py
python coco_minival_anns.py

train.py

参数基本上默认即可。
在这里插入图片描述

args_modelarts_single.py

参数基本上默认即可。
在这里插入图片描述
在这里插入图片描述

上传源码

准备好源码之后,上传到obs中。
在这里插入图片描述

3.5 创建算法

算法管理 ---》创建
名称:自定义
描述:自定义
创建方式:自定义脚本
	---》AI引擎:Ascend-Powered-Engine,tensorflow_1.15-cann_5.0.3-py_3.7-euler_2.8.3-aarch64
	---》代码目录:liulingjun-demo/yolov3/code
	启动文件:liulingjun-demo/yolov3/code/train.py
输入数据配置:data_url
输出数据配置:train_url
超参:
	---》model,String,
	---》batch_size,Integer
	---》total_epoches,Integer

代码目录
在这里插入图片描述

输入输出数据配置
在这里插入图片描述

超参
在这里插入图片描述
创建算法
在这里插入图片描述

3.6 创建训练作业

训练管理 ---》训练作业
名称:自定义
描述:自定义
算法:刚创建的算法
训练输入:/liulingjun-demo/yolov3/dataset/
训练输出:/liulingjun-demo/yolov3/output/
超参:默认即可
资源池:公共资源池、专属资源池
规格:根据实际情况选择
计算节点个数:根据实际情况选择
作业日志路径:/liulingjun-demo/yolov3/logs/
其他参数:默认即可

在这里插入图片描述

增加超参数

单击“增加超参”,手动增加超参。配置 代码中的命令行参数值,请根据您编写的算法代码逻辑进行填写,确保参数名称和代码的参数名称保持一致。可填写多个参数。
在这里插入图片描述

参数名称 类型 默认值 是否必填 描述
mode String modelarts_single YOLOv3训练场景分为单尺度和多尺度。单尺度为modelarts_single多尺度为modelarts_multi
batch_size Integer 32 一次训练所抓取的数据样本数量。单尺度训练建议值为32,多尺度训练建议值为16。
total_epoches Integer 200 训练总轮数。

设置mode模式为:modelarts_single
在这里插入图片描述

提交训练作业

训练作业一般需要运行一段时间,根据您选择的数据量资源不同,训练时间将耗时几分钟到几十分钟不等。在ModelArts中创建训练任务,训练脚本会自动将obs中的数据集拷贝到ModelArts容器中,数据集越大耗费时间越长。

训练作业的状态

训练作业的状态有:等待中,运行中,运行失败,已完成,终止中,已终止。
在这里插入图片描述

3.7 资源占用情况

npu资源占用情况
在这里插入图片描述
在这里插入图片描述

资源监控
在这里插入图片描述

3.8 yolov4与yolov5

yolov4、yolov5与yolov3操作步骤类似,结合ModelZoo的操作说明进行复现。

yolov4

官方仓库:YOLOv4

博主的仓库:modelarts-yolov4

在这里插入图片描述
在这里插入图片描述

yolov5

官方仓库:YOLOv5

博主的仓库:modelarts-yolov5

在这里插入图片描述

四、FAQ

Q:数据集路径错误

2022-07-28 16:09:09.053230: W tensorflow/core/framework/op_kernel.cc:1639] Unknown: AttributeError: 'NoneType' object has no attribute 'shape'
Traceback (most recent call last):

  File "/home/ma-user/anaconda/lib/python3.7/site-packages/tensorflow_core/python/ops/script_ops.py", line 235, in __call__
    ret = func(*args)

  File "/home/ma-user/modelarts/user-job-dir/code/utils/data_utils.py", line 306, in get_batch_data
    multi_scale)

  File "/home/ma-user/modelarts/user-job-dir/code/utils/data_utils.py", line 216, in parse_data
    img, boxes = random_resize(img, boxes, min_ratio=0.25, max_ratio=2, jitter=0.3)

  File "/home/ma-user/modelarts/user-job-dir/code/utils/data_aug.py", line 429, in random_resize
    h,w,c = img.shape

AttributeError: 'NoneType' object has no attribute 'shape'


2022-07-28 16:09:09.053445: W tensorflow/core/framework/op_kernel.cc:1639] Unknown: AttributeError: 'NoneType' object has no attribute 'shape'
错误原因:
以下两个标注文件中的数据集路径不正确,找不到图片路径,导致opencv读取图片失败
coco2014_trainval_modelarts.txt
coco2014_minival_modelarts.txt

解决办法:
根据数据集的真实路径,修改txt文件中的路径

Q: 容量不足,训练作业终止

在这里插入图片描述

Q:训练作业一直等待中

在这里插入图片描述

错误原因:
资源不够

解决办法:
停止不用的notebook,重新启动

Q: 找不到txt标注文件

在这里插入图片描述

错误原因:
找不到txt标注文件

解决办法:
准备txt标注文件,参考上文【准备源码】

Q: 找不到darknet53.ckpt

在这里插入图片描述

错误原因:
找不到预训练模型

解决办法:
参考上文【准备预训练模型】
将 `YOLOv3_TensorFlow_1.6_model/single/ckpt` 路径下的模型文件拷贝到 `YoloV3_for_TensorFlow_1.6_code/data/darknet_weights`,并重命名为 `darknet53.ckpt`;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【ModelArts系列】华为ModelArts训练yolov3模型(训练作业) 的相关文章

  • 一个抓取阿里云GEOJSON地图区域数据的NODEJS脚本

    中国的区域划分大致是这么个结构 中国 gt 省 gt 市 gt 区 gt 县 gt 镇 gt 乡 对于我们一般的开发者或者中小型企业 要我们自己来收集这些区域信息 显然是不可能的 这个时候我们就得借助一些成熟的地图数据 比如百度地图 高德地
  • 增强现实python

    本博文用来记录使用python实现增强现实 增强现实技术 即实时地计算摄影机影像的位置及角度并加上相应图像 视频 3D模型的技术 这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动 主要工作 实现动态的放置虚拟模型 本文实现了在自己上
  • IHS 禁用SSLV2 启用SSLV3

    昨天完成了PCI第二季度的ASV扫描 也扫出几个问题 主是IHS SSL加密比较弱 1 PCI ASV扫描出来的两个问题 1 38140 SSL Server Supports Weak Encryption Vulnerability 2
  • FastReport VCL 6.7.6 For Delphi10.4.2 安装图解教程

    FastReport VCL 6 7 6 For Delphi10 4 2 安装图解教程 Fastreport控件的安装 一步一步按说明来 不难搞 1 先关闭Delphi 2 右键 以管理员身份运行 对应版本的recompile exe 2
  • 图片情感分析(2):图像情感分析模型

    图像情感分析模型是基于卷积神经网络建立的 卷积神经网络的构建用了keras库 具体代码实现以及代码运行在下一篇贴出 模型包括3个卷积层 2个池化层 4个激活函数层 2个Dropout层 2个全连接层 1个Flatten层和最终分类层 图片初

随机推荐

  • Java创建数组的四种方式

    1 使用默认值来初始化 语法 数组元素类型 数组名称 new 数组元素类型 数组长度 EG int nums new int 5 创建了一个类型为int 名字为nums 长度为5的数组 2 先声明一个数组 再给值 语法 数据元素类型 数组名
  • 37 年来首次 FSF 允许非正式会员提名董事会候选人;Linux RamFS 文件系统移植到 Rust;Git 2.35 发布

    整理 宋彤彤 责编 屠敏 开源吞噬世界的趋势下 借助开源软件 基于开源协议 任何人都可以得到项目的源代码 加以学习 修改 甚至是重新分发 关注 开源日报 一文速览国内外今日的开源大事件吧 一分钟速览新闻点 成立 37 年来首次 FSF 允许
  • Spring boot配置logback日志打印到指定路径文件

    在实际项目开发中 一般都是使用log打印日志到指定路径 生成文件 而平时使用的System out pring 只能输出日志到控制台 当我们把项目打成war包部署到服务器上 会有不用的用户使用我们的应用 这个时候如果一个客户端出现了问题 那
  • 断弧图片数据集 数据集扩充 增强

    图像处理可以用到的数据 这是原始图像总共1356张 对应的XML文件是它的标签 此数据可以用来做图像目标检测 YOLOv4 v3 SSD faster rcnn 数据集增广 数据集扩充 数据集增强的常用方法与软件 https blog cs
  • 修改pycharm缓存文件路径

    Pycharm在使用过程中 Pycharm会生成大量缓存文件 而这些缓存文件默认存储在C盘的用户目录里面 导致C盘空间被占用 目标 将C盘用户目录下的 Pycharm2019转移到D盘 D cache pycharm 文件夹下 如下图 解决
  • div设置边角小三角形

    div class leftmsg div div class rightmsg div
  • 使用NCNN的INT8量化方式进行推理

    本文以NCNN框架为例 实践量化在推理中的巨大作用 加深对神经网络量化的理解 NCNN当前版本只支对称量化 下面以INT8精度为例介绍NCNN的量化使用方式 编译NCNN mkdir build cd build cmake 进入到buil
  • Java面试--常见集合

    Java面试 基础 ArrayList ArrayList的扩容机制 FailFast和FailSafe ArrayList和LinkedList HashMap 介绍一下put方法流程 1 7和1 8有何不同 负载因子默认值为何是0 75
  • CSDN编程竞赛 ——— 第六期之python

    CSDN编程竞赛报名地址 https edu csdn net contest detail 16 请不要删掉此地址 目录 前言 背景 大赛简介 参赛流程 参赛经历 解题思路 经验心得 资料分享 前言 背景 目前为止共参加过三次 不过没拿到
  • 20201013 矩阵2范数matlab求解

    这里是引用n norm X 返回矩阵 X 的 2 范数或最大奇异值 该值近似于 max svd X 示例 n norm X p 返回矩阵 X 的 p 范数 其中 p 为 1 2 或 Inf https ww2 mathworks cn he
  • java导出Excel增加下拉框选项,解决小数据量和大数据量下拉框选项的问题

    文章目录 java导出Excel增加下拉框选项 一 小数据量情况 二 大数据量情况 java导出Excel增加下拉框选项 java结合easyExcel 添加传参模型ConsumablesAddDTO 一 小数据量情况 仅供参考 二 大数据
  • 鸿蒙系统怎么退出,华为鸿蒙2.0系统升级了怎么退回EMUI11系统?操作教程详解[多图]...

    华为鸿蒙2 0系统升级了怎么退回EMUI11系统 很多用户升级了又不知道如何才能退回到原来的系统 下面就让安卓乐园小编为大家带来 2 0系统升级退回EMUI11系统操作教程详解 这次开启华为鸿蒙2 0系统手机开发者beta版公测招募的机型有
  • 遗传算法最通俗的讲解案例

    遗传算法 遗传算法求全局最优解或者近似优解 遗传算法GA可以用到数据挖掘领域 由于缺少一些详细的例子 导致难以理解 以下是一个大牛的遗传算法的详细例子 通过这个例子 我们可以详细而且直观的加深对遗传算法的理解 遗传算法的有趣应用很多 诸如寻
  • 机器学习 之 python实现 多元线性回归 梯度下降 普适算法与矩阵算法

    介于网上的多元线性回归梯度下降算法多为固定数量的因变量 如三元一次函数 y 1 x 1
  • 有向图问题1--深度优先、广度优先遍历和拓扑排序

    有向图基础 术语定义 一个顶点的出度为由该顶点指出的边的总数 一个顶点的入度为指向该顶点的边的总数 一条有向边的第一个顶点称为它的头 第二个顶点称为它的尾 数据结构 使用邻接表来表示有向图 其中v gt w表示为顶点v对应的邻接链表中包含一
  • 纯CSS实现背景色渐变

    这里简单介绍一下如何用纯CSS实现背景渐变色 一 关键词 1 linear gradient 首先我们要使用的就是CSS中的linear gradient 函数 它用于创建一个表示两种或多种颜色线性渐变的图片 其结果属于数据类型 是一种特别
  • 【VerilogHDL】模块

    VerilogHDL 模块 模块基本语法 2选1多路选择器实例 模块描述方式 行为级或算法级的描述方式 行为级建模 4bit 的二进制行波计数器 带进位 数据流描述方式 数据流级建模 门级描述方式 门级建模 开关级描述方式 开关级建模 描述
  • 电子科技大学计算机系统结构半期考试参考答案

    2023 答案 半期试题 15分 1 试分析采用哪种设计方案实现求浮点数乘法FPMUL对系统性能提高更大 假定FPMUL操作占整个测试程序执行时间的10 一种设计方案是增加专门的FPMUL硬件 可以将FPMUL操作的速度加快到10倍 另一种
  • git新手常见错误01

    错误信息 error Your local changes to the following files would be overwritten by checkout idea workspace xml Please commit y
  • 【ModelArts系列】华为ModelArts训练yolov3模型(训练作业)

    一 参考资料 华为ModelArts Notebook训练yolov3模型 二 相关介绍 在ModelArts的 训练任务 中运行ModelZoo中模型 以yolov3为例 训练集为 COCO2014 运行环境 运行环境 ModelArts