DP读书:《ModelArts人工智能应用开发指南》(一)人工智能技术、应用平台

ModelArts

怎么用ModelArts人工智能应用

  • 训练底座
    • 训练案例
  • 盘古矿山模型
    • Main
  • config.py

训练底座

云安全底座

训练案例

在训练案例

盘古矿山模型

盘古矿山模型

Main

下面是快速助手
https://support.huaweicloud.com/qs-modelarts/modelarts_06_0006.html

准备开发环境
在ModelArts控制台的“ 开发环境 > Notebook”页面中,创建基于pytorch1.8-cuda10.2-cudnn7-ubuntu18.04镜像,类型为GPU,规格选择Pnt1或Vnt1系列的Notebook,具体操作请参见创建Notebook实例章节。
如果需要使用本地IDE(PyCharm或VS Code)远程连接Notebook,需要开启SSH远程开发。本案例以在线的JupyterLab为例介绍整个过程。

Notebook创建完成后,状态为“运行中”。单击“操作”栏的“打开”,进入JupyterLab页面。
打开JupyterLab的Terminal。此处以Terminal为例介绍整个过程。JupyterLab更多操作请参见JupyterLab简介及常用操作。
图1 打开Terminal

Step1 创建算法工程
在JupyterLab的Terminal中,在work目录下执行ma-cli createproject命令创建工程,根据提示输入工程名称,例如:water_meter。然后按回车键选择默认参数(连续按五次回车),并选择跳过资产安装步骤(选择6)。
图2 创建工程

执行以下命令进入工程目录。
cd water_meter

执行以下命令复制项目数据到Notebook中。
python manage.py copy --source {obs_dataset_path} --dest ./data/raw/water_meter_crop
python manage.py copy --source {obs_dataset_path} --dest ./data/raw/water_meter_segmentation

说明:
{obs_dataset_path}路径为Step1 准备数据中下载到OBS中的数据集路径,比如“obs://{OBS桶名称}/water_meter_segmentation”和“obs://{OBS桶名称}/water_meter_crop”

图3 复制数据集到Notebook中

Step2 使用deeplabv3完成水表区域分割任务
执行如下命令安装ivgSegmentation套件。
python manage.py install algorithm ivgSegmentation==1.0.2

图4 ivgSegmentation套件安装成功

如果提示ivgSegmentation版本不正确,可以通过命令python manage.py list algorithm查询版本。

安装ivgSegmentation套件后,在JupyterLab界面左侧的工程目录中进入“./algorithms/ivgSegmentation/config/sample”文件夹中查看目前支持的分割模型,以sample为例(sample默认的算法就是deeplabv3),文件夹中包括config.py(算法外壳配置)和deeplabv3_resnet50_standard-sample_512x1024.py(模型结构)。
图5 进入sample文件夹

表盘分割只需要区分背景和读数区域,因此属于二分类,需要根据项目所需数据集对配置文件进行修改,如下所示:
修改“config.py”文件。

图6 修改sample文件夹下的config.py文件

```c
# config.py
alg_cfg = dict(
data_root='data/raw/water_meter_segmentation',   
# 修改为真实路径本地分割数据集路径
```

修改完后按Ctrl+S保存。

修改“deeplabv3_resnet50_standard-sample_512x1024.py”文件。
图7 修改deeplabv3_resnet50_standard-sample_512x1024.py文件

# deeplabv3_resnet50_standard-sample_512x1024.pygpus=[0]
...
data_cfg = dict(...    num_classes=2,  # 修改为2类...    ...    train_scale=(512, 512),  # (h, w)#size全部修改为(512, 512)...    train_crop_size=(512, 512),  # (h, w)...    test_scale=(512, 512),  # (h, w)...    infer_scale=(512, 512),  # (h, w))

修改完按Ctrl+S保存。

在water_meter工程目录下,执行如下命令安装deeplabv3预训练模型。

python manage.py install model ivgSegmentation:deeplab/deeplabv3_resnet50_cityscapes_512x1024

图8 安装deeplabv3预训练模型

执行如下命令训练分割模型。(推荐使用GPU进行训练)

python manage.py run --cfg algorithms/ivgSegmentation/config/sample/config.py --gpus 0

图9 分割模型训练结果

训练好的模型会保存在指定位置中,默认为“./output/deeplabv3_resnet50_standard-sample_512x1024/checkpoints/”中。

验证模型效果。
模型训练完成后,可以在验证集上计算模型的指标,首先修改配置文件的模型位置。

修改“config.py”文件,修改完按Ctrl+S保存。

config.py

...

alg_cfg = dict(

load_from=‘./output/deeplabv3_resnet50_standard-sample_512x1024/checkpoints/checkpoint_best.pth.tar’, # 修改训练模型的路径

)

执行如下命令计算模型指标。

python manage.py run --cfg
algorithms/ivgSegmentation/config/sample/config.py --pipeline evaluate

图10 模型指标计算结果

模型推理。
模型推理能够指定某一张图片,并且推理出图片的分割区域,并进行可视化,首先需要指定需要推理的图片路径。

修改“config.py”文件,修改完按Ctrl+S保存。

alg_cfg = dict(

img_file=‘./data/raw/water_meter_segmentation/image/train_10.jpg’ # 指定需要推理的图片路径

)

执行如下命令推理模型。

python manage.py run --cfg algorithms/ivgSegmentation/config/sample/config.py --pipeline infer

图11 表盘分割模型推理结果

推理输出的图片路径在“./output/deeplabv3_resnet50_standard-sample_512x1024”下。

图12 水表表盘分割结果可视化

执行如下命令导出算法SDK。
python manage.py export --cfg algorithms/ivgSegmentation/config/sample/config.py --is_deploy

算法开发套件支持将模型导出成一个模型SDK,方便进行模型部署等下游任务。SDK导出的路径为“./export/deeplabv3_resnet50_standard-sample_512x1024/Linux_x86_64_GPU_PyTorch_Common_py”

图13 SDK导出路径

图14 SDK导出示意图

Step3 水表读数识别
执行如下命令安装mmocr套件。

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

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

相关文章

【C#学习笔记】属性和字段

文章目录 前言属性和字段的区别字段访问修饰符和关键字定义变量类型的定义变量命名变量的赋值 属性 不同的使用情况 前言 最近在工作的过程中常常会觉得自己在程序设计方面的能力还是有欠缺。例如一直对于变量的声明感到不足,在工作中为了图方便总是直接public定义…

声音突破:so 索

小孩儿看完武侠剧,就决定从二楼往地面上跳,年轻的老妈看到了,就在那里骂,喝斥不准逞能,不许乱来,不许跳。但小孩子不听话,心里全是影视剧的画面,那叫一个侠之能也,于是飞…

面向长文本处理的键值缓存压缩技术:智能压缩,无损性能,免微调

随着输入长度的增加,大型语言模型(LLMs)中的键值(KV)缓存需要存储更多的上下文信息以维持性能,这导致内存消耗和计算时间急剧上升。KV缓存的增长对内存和时间效率的挑战主要表现在两个方面:一是…

元宇宙数字藏品交易所,未来发展的大趋势

随着科技的飞速进步,元宇宙以其独特的魅力为数字世界绘制了一幅前所未有的宏伟蓝图。在这一宏大的背景下,数字藏品交易所作为连接虚拟与现实的桥梁,正以其卓越的优势,引领着数字藏品市场迈向新的高度。 首先,元宇宙为…

【相关概念】经济金融中的Momentum

张张张三丰de思考与总结: 最近做的期货价格泡沫中,一直在说,momentum,momentum,momentum,那么究竟什么是momentum呢? 目前,在有关期货价格泡沫的研究文献中,一般都是研究…

本轮牛市新趋势,跟随The First捕捉牛市Alpha

与以往牛市“百花齐放”的繁荣景象相比,本轮牛市颇具独特走势,呈现出了资金集中度高、财富聚集效应小的特点,绝大部分加密资产甚至跑不赢BTC的涨幅幅度。而以往大放色彩的公链币价值币的走势,甚至比不过牛尾才爆发的MEME币。这使得…

Java项目之消息队列(手写java模拟实现mq)【三、MQ的核心类-消息类的存储(用文件存储消息)】✔ ★

Java项目之MQ 七. 消息存储设计设计思路为什么要用文件存储文件存储结构queue_data.txt ⽂件格式:queue_stat.txt ⽂件格式: 创建 MessageFileManager 类定义一个内部类, 来表示该队列的统计信息 Stat实现统计⽂件Stat读写(文本文件的读写)InputStream—…

python爬虫入门教程(一)

上一篇文章讲了爬虫的工作原理,这篇文章以后就要重点开始讲编程序了。 简单爬虫的的两个步骤: 使用HTTPRequest工具模拟HTTP请求,接收到返回的文本。用于请求的包有: requests、urllib等。 对接收的文本进行筛选,获取想要的内容。用户筛选文…

JavaScript-内存分配,关键字const

内存空间 内存分为栈和堆 栈:由操作系统自动释放存放的变量值和函数值等。简单数据类型存放在栈中 栈会由低到高先入后出 堆:存储引用类型 (数组,对象) 对象会先将数据存放在堆里面,堆的地址放在栈里面 关键…

VMD-PSO-LSTM单维时序预测模型(单输入单输出)-附代码

VMD-PSO-LSTM单维时序预测模型(单输入单输出) 1)首先对原始单维数据进行VMD分解,分解为K个模态分量和1个残差分量 2)将各个模态分量输入模型,建立模型进行预测 3)将各个预测结果相加得到最终…

clickhouse(十五、存储优化实践)

文章目录 背景问题定位优化方式排序键设计写入顺序压缩算法 DoubleDeltaLowCardinality避免使用Nullable 总结 背景 clickhouse集群容量告警,项目中某些表占据大量的存储空间,借此机会对ck的存储优化进行实践学习,并通过多种方式测试验证优化…

React(五)useEffect、useRef、useImperativeHandle、useLayoutEffect

(一)useEffect useEffect – React 中文文档 useEffect hook用于模拟以前的class组件的生命周期,但比原本的生命周期有着更强大的功能 1.类组件的生命周期 在类组件编程时,网络请求,订阅等操作都是在生命周期中完成 import React, { Com…

【前端】响应式布局笔记——flex

二、Flex Flex(FlexiableBox:弹性盒子,用于弹性布局,配合rem处理尺寸的适配问题)。 1、flex-direction:子元素在父元素盒子中的排列方式。 父级元素添加:flex-direction: row; 父级元素添加:flex-direction: row-reverse; 父…

家政预约小程序13我的订单

目录 1 我的订单页面布局2 全部订单页面3 完善订单状态4 查询订单信息总结 现在我们已经完成了家政预约小程序主体功能的开发,包含服务的查看,在线预约已经登录等功能。预约之后就需要家政公司的客服进行派单,由服务人员进行上门服务。在小程…

Hotcoin精彩亮相Consensus 2024 Austin,探索行业风向标

5 月 31 日,由CoinDesk主办的“Consensus 2024”大会在德克萨斯州的奥斯汀市正式落下帷幕。作为全球规模最大、最具影响力的加密货币、区块链、Web3盛会,本次Consensus 2024 Austin吸引来自 100 多个国家/地区的 15,000 多名与会者、6,800 家公司、850 多…

【C++】手动模拟String底层与深浅拷贝

在string类:版本、组件、构造、操作及应用和 C中string的一些超常用函数 (附习题)这两篇文章中我们已经了解到了string,现在让我们再来手动实现模拟一下吧~ 模拟实现string是为了更好的理解string函数的使用和深浅拷贝方面的知识~ 总体整理了两张思维导…

【Python编程】【Jupyter Notebook】启动时报错:no available port could be found

一、报错描述 在Jupyter Notebook中编写程序,无法运行,提示由于没有可供监听的端口,无法启动Jupyter服务器,如下图所示: 二、原因分析 通过报错信息,猜测大概是由于网络环境的原因。首先,关闭…

C语言(结构体)

Hi~!这里是奋斗的小羊,很荣幸各位能阅读我的文章,诚请评论指点,欢迎欢迎~~ 💥个人主页:小羊在奋斗 💥所属专栏:C语言 本系列文章为个人学习笔记,在这里撰写成文一…

AIGC实战!7个超热门的 Midjourney 关键词教程

一、剪纸风格 核心词: paper art(剪纸艺术) 关键技巧: 主体物:可以换成任意主角,Chinese illustration (中国风插画);艺术风格:paper art (剪纸…

ruoyi vue 集成积木报表真实记录

按官方文档集成即可 积木报表官方集成文档 集成问题 1.注意 idea 配置的 maven 需要设置成 本地配置&#xff0c;不可以使用 idea 自带的 maven,自带 maven 会导致私有源调用不到 后端代码 新建 base 模块 maven配置 <project xmlns"http://maven.apache.org/POM/…