最佳实践 - HUAWEI CLOUD€¦ ·...

219
ModelArts 3.1.0 最佳实践 文档版本 21 发布日期 2021-02-26 华为技术有限公司

Transcript of 最佳实践 - HUAWEI CLOUD€¦ ·...

Page 1: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

ModelArts

3.1.0

佳实践

文档版本 21

发布日期 2021-02-26

华为技术有限公司

Page 2: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

版权所有 © 华为技术有限公司 2021。 保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。 商标声明

和其他华为商标均为华为技术有限公司的商标。本文档提及的其他所有商标或注册商标,由各自的所有人拥有。 注意

您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声明或保证。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。

华为技术有限公司地址: 深圳市龙岗区坂田华为总部办公楼 邮编:518129

网址: https://www.huawei.com

客户服务邮箱: [email protected]

客户服务电话: 4008302118

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 i

Page 3: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

目 录

1 ModelArts 样例列表..................................................................................................................1

2 自动学习......................................................................................................................................62.1 找云宝(使用自动学习实现物体检测应用).....................................................................................................................62.2 银行存款预测(使用自动学习实现预测分析)..............................................................................................................11

3 预置算法....................................................................................................................................153.1 使用 AI Gallery 的预置算法训练模型............................................................................................................................... 153.2 使用时序预测算法实现访问流量预测............................................................................................................................... 223.3 使用强化学习内置环境......................................................................................................................................................... 273.4 花卉识别(使用训练管理的预置算法实现图像分类).................................................................................................33

4 数据管理....................................................................................................................................424.1 数据管理(物体检测类型)................................................................................................................................................ 42

5 常用框架....................................................................................................................................535.1 使用 MXNet 实现手写数字识别......................................................................................................................................... 535.2 使用 TensorFlow 实现手写数字识别.................................................................................................................................605.3 使用 Caffe 实现手写数字识别.............................................................................................................................................655.4 使用 Spark MLlib 实现精准推荐........................................................................................................................................ 715.5 使用 MXNet 实现 Caltech 图像识别................................................................................................................................. 765.6 使用 Spark MLlib 实现车辆满意度测评........................................................................................................................... 845.7 使用 Spark MLlib 实现鸢尾花卉分类预测....................................................................................................................... 88

6 Notebook.................................................................................................................................946.1 使用 Notebook 实现手写数字识别....................................................................................................................................946.2 使用 Pytorch 实现物体检测(Faster R-CNN)............................................................................................................. 97

7 PyCharm ToolKit..................................................................................................................1077.1 使用 PyCharm ToolKit 工具快速实现模型训练和部署.............................................................................................. 107

8 ModelArts+HiLens...............................................................................................................1198.1 手势判断技能开发............................................................................................................................................................... 119

9 Ascend 应用教程................................................................................................................... 1359.1 应用场景介绍........................................................................................................................................................................ 1359.2 使用预置算法实现图像分类(Ascend310 推理)...................................................................................................... 1369.3 使用预置算法实现物体检测(Ascend310)................................................................................................................ 144

ModelArts佳实践 目 录

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 ii

Page 4: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

9.4 Ascend910 训练和 Ascend310 推理的样例..................................................................................................................151

10 配置 ModelArts 使用权限.................................................................................................. 16110.1 场景说明.............................................................................................................................................................................. 16110.2 配置管理员帐号................................................................................................................................................................. 16410.3 配置所有权限(角色).................................................................................................................................................... 16610.4 配置所有权限(策略).................................................................................................................................................... 17010.5 配置部分功能的权限(策略)....................................................................................................................................... 176

11 高阶应用............................................................................................................................... 18511.1 使用强化学习预置算法应用于自定义环境..................................................................................................................18511.2 使用 MoXing....................................................................................................................................................................... 19111.2.1 冰山识别(使用 MoXing 框架实现图像分类)..................................................................................................... 19111.2.2 使用 MoXing 开发训练脚本,实现手写数字识别................................................................................................. 19611.3 纳管 Atlas 500,将模型部署为边缘服务....................................................................................................................200

A 获取 ModelArts 样例使用的数据集.................................................................................... 211

ModelArts佳实践 目 录

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 iii

Page 5: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

1 ModelArts 样例列表

在 佳实践文档中,提供了针对多种场景、多种AI引擎的ModelArts样例,方便您通过如下样例快速了解使用ModelArts完成AI开发的流程和操作。

自动学习样例列表(基础教程)

表 1-1 自动学习样例列表

样例 对应功能 场景 说明

找云宝 自动学习 物体检测

基于云宝数据集,使用ModelArts自动学习的物体检测算法,识别图片中的云宝。

银行存款预测

自动学习 预测分析

根据客户特征(年龄、工作类型、婚姻状况、文化程度、是否有房贷和是否有个人贷款),预测客户是否愿意办理定期存款业务。

数据管理样例(基础教程)

样例 对应功能 场景 说明

数据管理(物体检测类型)

创建数据集、发布数据集、自动分组、智能标注、数据处理、特征分析

数据管理

基于样例数据集,使用ModelArts数据管理功能,对数据集进行标注和数据处理。通过此样例教程,可快速了解数据管理的基础功能,以及智能标注、自动分组、数据处理和特征分析等高阶功能。

ModelArts佳实践 1 ModelArts 样例列表

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 1

Page 6: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

预置算法样例列表(基础教程)

样例 引擎 对应功能 场景 说明

使用AIGallery的预置算法训练模型

TensorFlow

AI Gallery>预置算法

图像分类

此样例介绍如何从AI Gallery,订阅一个预置算法resnet_v1_50,同时使用算法训练得到模型, 终将模型部署为在线服务的端到端指导。

使用时序预测算法实现访问流量预测

PyTorch

AI Gallery>预置算法

时序预测

本章节介绍使用AI Gallery中预置的时序预测算法实现访问流量预测。

使用强化学习内置环境

TensorFlow

AI Gallery>预置算法

强化学习

介绍使用AI Gallery中预置的强化学习算法训练内置环境Breakout示例。

花卉识别 TensorFlow

训练管理>预置算法

图像分类

使用预置的“ResNet_v1_50”算法对花卉数据进行训练,实现识别花卉种类的应用。

Notebook 样例列表(基础教程)

样例 引擎 对应功能 场景 说明

使用Notebook实现手写数字识别

TensorFlow

● 自行编写训练脚本

● AI全流程开发

图像识别

基于MoXing框架开发训练脚本,通过AI全流程开发实现手写数字识别的应用。

使用Pytorch实现物体检测(FasterR-CNN)

PyTorch

● 自行编写训练脚本

物体检测

介绍一种two-stage算法(Faster R-CNN),将目标区域检测和类别识别分为两个任务进行物体检测。本示例采用PyTorch引擎进行模型构建。

常用框架样例列表(AI 全流程基础教程)

表 1-2 AI 全流程样例列表

样例 引擎 对应功能 场景 说明

手写数字识别

MXNet

● 自行编写训练脚本

● AI全流程开发

图像识别

基于MXNet引擎,开发训练脚本,并通过AI全流程开发实现手写数字识别的应用。

ModelArts佳实践 1 ModelArts 样例列表

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 2

Page 7: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

样例 引擎 对应功能 场景 说明

手写数字识别

TensorFlow

● 自行编写训练脚本

● AI全流程开发

图像识别

基于TensorFlow引擎,开发训练脚本,并通过AI全流程开发实现手写数字识别的应用。

手写数字识别

Caffe ● 自行编写训练脚本

● AI全流程开发

图像识别

基于Caffe引擎,开发训练脚本,并通过AI全流程开发实现手写数字识别的应用。

精准推荐 SparkMLlib

● 自行编写训练脚本

● AI全流程开发

预测推荐

基于Spark MLlib引擎,提供精准营销的方向和辅助决策,提升消费品转化率和商家利润,改善消费者的消费体验。

Caltech图像识别

MXNet

● 自行编写训练脚本

● AI全流程开发

图像识别

基于MXNet引擎,对Caltech数据集进行训练,实现Caltech图像识别应用。

车辆满意度测评

SparkMLlib

● 自行编写训练脚本

● AI全流程开发

KNN分类

使用KNN分类算法进行车辆满意度测评,选用经典的Car Evaluation数据集,通过对六个特征值进行测评,得到用户对车辆的满意程度。

鸢尾花卉分类预测

SparkMLlib

● 自行编写训练脚本

● AI全流程开发

分类预测

通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。

Ascend 应用样例列表(基础教程)

针对支持使用Ascend应用的算法,本文档提供了如下几个操作样例,您可以参考如下典型样例,使用ModelArts提供的预置算法(训练管理或AI Gallery),支撑您的业务应用。

表 1-3 Ascend 样例列表

样例 引擎 对应功能 场景 说明

使用预置算法实现物体检测(Ascend310)

TensorFlow

预置算法(训练管理)、Ascend 310推理

物体检测

使用预置算法训练模型,然后将所得模型使用Ascend 310部署为在线服务。

ModelArts佳实践 1 ModelArts 样例列表

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 3

Page 8: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

样例 引擎 对应功能 场景 说明

使用预置算法实现图像分类(Ascend310推理)

TensorFlow

预置算法(AIGallery)、Ascend 310推理

图像分类

此样例介绍如何从AI Gallery,订阅一个预置算法resnet_v1_50,同时使用算法训练得到模型, 终将模型使用Ascend 310部署为在线服务的端到端指导。

Ascend910训练和Ascend310推理的样例

MindSpore

预置算法(AIGallery)、Ascend 910训练、Ascend 310推理

图像分类

针对ModelArts官方提供的ResNet50算法(MindSpore引擎),可使用Ascend 910训练,同时使用Ascend310推理。以云的方式提供充裕且经济的AI算力,支撑更多科研探索及行业AI应用。

PyCharm ToolKit 样例列表(高阶教程)

表 1-4 PyCharm ToolKit 样例列表

样例 引擎 对应功能 场景 说明

PyCharm本地训练和部署

MXNet

PyCharmToolKit工具

图像识别

针对使用MXNet引擎开发的手写数字识别模型,您可以使用ModelArts提供的PyCharm ToolKit工具,在本地快速完成模型的训练和部署。

ModelArts+HiLens 样例(基础教程)

表 1-5 ModelArts 和 HiLens 样例列表

样例 引擎 对应功能 场景 说明

手势判断技能开发

TensorFlow

AI Gallery>预置算法、HiLens

图像识别

提供了一个手势识别技能的样例,介绍从模型训练到查看技能效果,新建一个全新技能的全流程,帮助您快速熟悉ModelArts和Huawei HiLens技能开发的使用过程。

ModelArts佳实践 1 ModelArts 样例列表

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 4

Page 9: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

配置 ModelArts 使用权限(基础教程)

样例 对应功能 场景 说明

场景说明 IAM权限配置、全局配置

为子用户配置权限

当一个华为云帐号下需创建多个IAM用户(即子用户)时,可参考此样例,为IAM用户赋予使用ModelArts所需的权限。避免IAM用户因权限问题导致使用时出现异常。

高级功能应用样例(高阶教程)

表 1-6 强化学习自定义环境使用样例

样例 引擎 对应功能 场景 说明

使用强化学习预置算法应用于自定义环境

TensorFlow

AI Gallery>预置算法

强化学习

使用AI Gallery强化学习算法训练自定义环境“模拟期货交易”示例。

表 1-7 MoXing 使用样例

样例 引擎 对应功能 场景 说明

冰山识别 MoXing

Notebook 图像分类

在ModelArts上使用MoXing框架,利用算法识别出图像中是冰山(iceberg)还是船(ship)。

手写数字识别

MoXing

● 自行编写训练脚本

● AI全流程开发

图像识别

基于MoXing框架开发训练脚本,通过AI全流程开发实现手写数字识别的应用。

ModelArts佳实践 1 ModelArts 样例列表

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 5

Page 10: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

2 自动学习

2.1 找云宝(使用自动学习实现物体检测应用)针对业务开发者,ModelArts提供了自动学习功能,无需关注模型开发、参数调整等开发细节,仅需三步(数据标注、自动训练、部署上线),即可完成一个AI开发项目。

本章节提供了一个“找云宝”样例(“云宝”是华为云的吉祥物),帮助您快速熟悉ModelArts自动学习的使用过程。此样例为“物体检测”类别项目,通过预置的云宝图像数据集,自动训练并生成检测模型,同时将生成的模型部署为在线服务。部署完成后,用户可通过在线服务识别输入图片是否包含云宝。

开始使用样例前,请仔细阅读准备工作罗列的要求,提前完成准备工作。使用自动学习功能完成模型构建的步骤如下所示:

● 步骤1:准备数据

● 步骤2:创建物体检测项目

● 步骤3:数据标注

● 步骤4:自动训练,生成模型

● 步骤5:将模型部署上线为在线服务

● 步骤6:测试服务

准备工作● 已注册华为云帐号,且在使用ModelArts前检查帐号状态,帐号不能处于欠费或冻

结状态。

● 当前帐号已完成访问授权的配置。如未完成,请参考使用委托授权。针对之前使用访问密钥授权的用户,建议清空授权,然后使用委托进行授权。

● 创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。为保证数据能正常访问,请务必保证创建的OBS桶与ModelArts在同一区域。

● 由于创建自动学习项目需要使用数据管理功能,在开始使用前,需为数据管理模块获取访问OBS权限。

在ModelArts管理控制台,进入“数据管理 > 数据集”页面,单击“服务授权”,由具备授权的帐号“同意授权”后,即可正常使用。如果使用“帐号”登录,可直接在弹出对话框中同意授权。如果使用“IAM用户”(即子帐号)登录,需主帐号或具备Admin权限的用户进行授权操作。

ModelArts佳实践 2 自动学习

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 6

Page 11: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

步骤 1:准备数据

ModelArts在公共OBS桶中提供了云宝的示例数据集,命名为“Yunbao-Data-Custom”,因此,本文的操作示例使用此数据集进行模型构建。您需要执行如下操作,将数据集上传至您的OBS目录下,即准备工作中您创建的OBS目录“test-modelarts/dataset-yunbao”。

如果您想使用自己的数据集,可跳过此步骤,直接将数据上传至OBS文件夹中,并在步骤2:创建物体检测项目操作中直接选择此目录即可。

1. 单击数据集下载链接,将“Yunbao-Data-Custom”数据集下载至本地。

2. 在本地,将“Yunbao-Data-Custom.zip”压缩包解压。例如,解压至本地“Yunbao-Data-Custom”文件夹下。

3. 参考上传文件,使用批量上传方式将“Yunbao-Data-Custom”文件夹下的所有文件上传至“test-modelarts/dataset-yunbao”OBS路径下。

获取的数据集分为2个子目录,分别为“eval”和“train”。“train”存储的数据用于模型训练,“eval”存储的数据可用于模型的预测。

步骤 2:创建物体检测项目

1. 在ModelArts管理控制台,单击左侧导航栏“自动学习”。

2. 在“物体检测”方框中单击“创建项目”,在“创建物体检测项目”页面中,填写“名称”、“数据集名称”,选择“数据集输入位置”,云宝数据集OBS路径为“/test-modelarts/dataset-yunbao/train/”。“数据集输出位置”选择一个空目录。

说明

云宝数据集有“eval”和“train”两个目录,请选择“train”目录下的数据进行训练,如果选择“train”的上层目录,会提示“OBS存在非法数据的错误”,导致无法创建项目。

图 2-1 创建物体检测项目

3. 单击“创建项目”,完成物体检测项目创建。项目创建成功后,页面自动跳转至“自动学习 > 数据标注”页面,并自动执行数据源同步操作。

ModelArts佳实践 2 自动学习

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 7

Page 12: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

步骤 3:数据标注

数据标注,针对物体检测项目,即在已有数据集图像中,标注出物体位置,并为其打上标签。标注好的数据用于模型训练。云宝数据集中,已标注部分数据,还有部分数据未标注,您可以选择未标注数据进行试用。

自动学习项目创建时,会自动执行数据源同步操作。由于数据源同步需要一定时间,如果出现同步失败,可单击“同步数据源”手动执行。

1. 在“自动学习 > 数据标注”页面单击“未标注”页签,此页面展示所有未标注的图片数据。单击任意一张图片,进入图片标注界面。

2. 用鼠标框选图片中的云宝所在区域,然后在弹出的对话框中输入标签名称,例如此示例中的“yunbao”,按“Enter”键完成此图片的添加。标注完成后,左侧图片目录中此图片的状态将显示为“已标注”。

您可以在下方图片目录中,选择其他图片,重复上述操作继续进行图片标注。如果一张图片有多个云宝,您可以标注多处。建议将数据集中所有图片都标注完成,这样能得到一个效果比较好的模型。

图 2-2 物体检测图片标注

3. 当图片目录中所有图片都完成标注后,单击左上角“项目名称”,在弹出的对话框中单击“确定”保存标注信息,页面进入数据标注页面。您可以在“已标注”页签下查看已完成标注的图片,并通过右侧的标签信息,了解当前已完成的标签名称和标签数量。

步骤 4:自动训练,生成模型

1. 完成数据标注后,在“数据标注”页面,单击右上角的“开始训练”,然后在弹出的“训练设置”对话框中配置相关参数,参考图2-3填写相关参数。

ModelArts佳实践 2 自动学习

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 8

Page 13: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 2-3 设置训练参数

2. 单击“下一步”进入配置页,确认规格后单击“提交”开始模型的自动训练。训练时间相对较长,建议您耐心等待。如果关闭或退出此页面,系统仍然在执行训练操作。

训练完成后,您可以在界面中查看训练详情,如“准确率”、“评估结果”、“训练参数”、“分类统计表”等。

图 2-4 开始模型训练

步骤 5:将模型部署上线为在线服务

1. 在“模型训练”页签中,待训练状态变为“已完成”,单击“版本管理”区域中的“部署”。

图 2-5 开始部署上线

ModelArts佳实践 2 自动学习

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 9

Page 14: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

2. 在弹出的部署设置对话框中,选择“计算节点规格”,设置“自动停止”功能,单击“确定”开始将物体检测模型部署上线为在线服务。

如果选择免费规格,则不需要设置“自动停止”功能,1小时之后自动停止。

图 2-6 部署设置

3. 启动部署上线后,系统自动跳转至部署上线页面。此页面将呈现模型部署上线的进度和状态。

部署上线将耗费较多时间,请您耐心等待。部署完成后,版本管理区域的状态将变更为“运行中”。

图 2-7 部署成功

步骤 6:测试服务

模型部署完成后,您可添加图片进行测试。

1. 在“部署上线”界面,选择状态为“运行中”的服务版本,在“服务测试”区域单击“上传”。

图 2-8 上传图片

ModelArts佳实践 2 自动学习

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 10

Page 15: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

2. 从本地环境选择一张图片,此图片中包含云宝。然后单击“预测”进行测试。

预测完成后,右侧“预测结果”区域输出标签名称“yunbao”,以及位置坐标和检测的评分。预测结果中,“detection_boxes”表示物体所在位置坐标,“detection_scores”表示检测评分,表示坐标内图像是云宝的概览评分。

如模型准确率不满足预期,可在“数据标注”步骤中添加图片并进行标注,重新进行模型训练及部署上线。

说明

由于“运行中”的在线服务将持续耗费资源,如果不需再使用此在线服务,建议在版本管理区域,单击“停止”,即可停止在线服务的部署,避免产生不必要的费用。如果需要继续使用此云宝检测的服务,可单击“启用”恢复。

图 2-9 测试结果

2.2 银行存款预测(使用自动学习实现预测分析)银行中常见一种业务:根据客户特征(年龄、工作类型、婚姻状况、文化程度、是否有房贷和是否有个人贷款),预测客户是否愿意办理定期存款业务。

现在您可以使用ModelArts平台上的自动学习功能,预测某个客户是否会办理存款业务。自动学习功能的使用流程如下所示:

1. 准备数据:下载数据集并上传至华为云OBS中。

2. 创建预测分析项目:基于已有的数据集,创建预测分析项目。

3. 训练模型:预览数据并选择训练目标,然后启动模型训练。

4. 部署模型:将训练好的模型部署为在线服务,并测试预测结果。

准备数据

本示例使用的数据集来自UCI的Machine Learning Repository,数据集介绍请参见Bank Maketing Data Set。数据集的基本信息可参见表2-1和表2-2,您可以从Github获取数据集并上传至OBS中。

ModelArts佳实践 2 自动学习

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 11

Page 16: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

表 2-1 数据源的具体字段及意义

字段名 含义 类型 描述

attr_1 年龄 Int 表示客户的年龄。

attr_2 职业 String 表示客户所从事的职业。

attr_3 婚姻情况 String 表示客户是否结婚或已离异。

attr_4 教育情况 String 表示客户受教育的程度。

attr_5 房产情况 String 表示客户名下是否有房产。

attr_6 贷款情况 String 表示客户名下是否有贷款。

attr_7 存款情况 String 表示客户名下是否有存款。

表 2-2 数据集样本数据

attr_1 attr_2 attr_3 attr_4 attr_5 attr_6 attr_7

31 blue-collar

married secondary

yes no no

41 management

married tertiary yes yes no

38 technician

single secondary

yes no no

39 technician

single secondary

yes no yes

39 blue-collar

married secondary

yes no no

39 services single unknown yes no no

1. 从gitee下载ModelArts-Lab工程,并在“ModelArts-Lab”工程中的“\ModelArts-Lab-master\official_examples\Using_ModelArts_to_Create_a_Bank_Marketing_Application\data”目录下获取训练数据文件“train.csv”。

2. 将“train.csv”文件上传至OBS,例如“test-modelarts/bank-marketing”。OBS上传文件的操作指导,请参见上传文件。

创建预测分析项目

1. 在ModelArts管理控制台,在左侧导航栏中选择“自动学习”。

2. 在“自动学习”页面,单击“预测分析”区域的“创建项目”。

3. 进入“创建预测分析项目”页面,然后设置项目“名称”,并选择“训练数据”所在的OBS路径,本示例中,数据集路径为“test-modelarts/bank-marketing/

ModelArts佳实践 2 自动学习

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 12

Page 17: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

train.csv”。 后,单击“创建项目”完成操作。系统自动跳转至“自动学习 >数据标注”页面,如图2-10所示。

图 2-10 创建预测分析项目

训练模型

1. 在“自动学习 > 数据标注”页面中,预览数据并选择训练目标。此处训练目标是客户是否会办理存款(即“attr_7”),该列目标结果是“离散值”。训练目标选择完成后,单击“训练”。

图 2-11 选择训练目标

2. 在弹出的“训练设置”对话框中,选择训练使用的“计算规格”,单击“下一步”进入配置页,确认规格后单击“提交”开始模型训练。

训练时间相对较长,建议您耐心等待。如果关闭或退出此页面,系统仍然在执行训练操作。

图 2-12 训练设置

3. 在模型训练页面中,左侧的训练作业状态变为“已完成”时,表示训练作业已结束,且右侧“训练详情”将展现此训练作业相关的详细信息。

ModelArts佳实践 2 自动学习

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 13

Page 18: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 2-13 训练结束

部署模型

1. 在“模型训练”页面,在“版本管理”区域,单击“部署”,系统开始部署服务并自动跳转至“部署上线”页面。

2. 在“版本管理”区域,当状态变为“运行中”时,表示服务已部署完成。您可以在预测区域,测试服务。

测试代码如下所示,如图2-14所示预测结果为“"predict": "no"”,表示此用户会不办理存款。{ "data": { "count": 1, "req_data": [ { "attr_1": "58", "attr_2": "retired", "attr_3": "married", "attr_4": "primary", "attr_5": "yes", "attr_6": "no"

} ] }}

图 2-14 测试模型

ModelArts佳实践 2 自动学习

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 14

Page 19: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

3 预置算法

3.1 使用 AI Gallery 的预置算法训练模型ModelArts在AI Gallery中提供了适用于“物体检测”、“图像分类”和“文本分类”等场景的预置算法,官方提供的算法列表及其详细描述,请参见《AI Gallery用户指南》。

如下操作步骤,以“ResNet_v1_50”为例,指导如何从AI Gallery订阅算法,然后使用算法创建训练模型,将所得的模型部署为在线服务。其他算法操作步骤类似,因此不再赘述,可参考“ResNet_v1_50”算法操作。

1. 数据准备

2. 订阅算法

3. 使用订阅算法创建训练作业

4. 导入模型

5. 部署为在线服务(CPU)

数据准备

1. 获取样例数据集,“Flowers-Data-Set”数据集中包含了花卉图片及其标注信息。由于数据集中数据较多,推荐使用OBS Browser+工具上传文件。

2. 登录ModelArts管理控制台,在左侧菜单栏中选择“数据管理 > 数据集”。

3. 在数据集管理页面,单击“创建数据集”,创建一个“图像分类”类型的数据集。

其中,“数据集输入位置”,选择步骤1中数据存储的OBS路径。“数据集输出位置”,请务必选择一个空目录存储,且此目录不能是“数据集输入位置”对应目录的子目录。

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 15

Page 20: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 3-1 创建数据集

4. 参数填写完成后,单击右下角的“创建”,完成数据集的创建。此时页面将自动跳转至数据集列表中。

5. 在数据集列表页面,单击数据集名称,进入数据集概览页,然后单击右上角的“开始标注”,进入数据集详情页。

6. 在数据集详情页面中,等待数据同步至ModelArts中。由于数据集已完成标注,无需重新标注,只需等待数据同步即可。由于数据集中数据较多,数据同步需要花费2分钟左右,请耐心等待。

当“已标注”页签下呈现所有上传数据时,表示数据已完成同步。

7. 单击左上角“返回数据集概览”,然后在数据集概览页中,单击右上角的“发布”。

8. 在弹出的对话框中,填写“版本名称”,可使用默认值。“训练验证比例”建议设置为“0.8”。然后单击“确定”完成发布。

验证集不参与训练,用于训练过程中评估模型的好坏,验证集比例太大,会导致训练集变少,影响训练效果。验证集太少,可能导致验证的精度不准确。针对此示例,推荐使用0.8比例进行切分。

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 16

Page 21: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 3-2 发布数据集版本

9. 在数据集列表页面,等待数据集发布完成。发布过程中的数据集,其名称前面有个运行标记。当数据集发布结束后,其操作列的发布按钮将呈现为蓝色可点击状态。

请耐心等待,必须等数据集发布成功后,才可以执行下一步训练模型的操作。

订阅算法

目前“ResNet_v1_50”算法发布在AI Gallery中。您可以前往AI Gallery,订阅此模型,然后同步至ModelArts中。

1. 在ModelArts管理控制台中,在左侧菜单栏中选择“AI Gallery”,进入AIGallery。

2. 在AI Gallery中,在搜索框中输入“ResNet_v1_50”,查找对应的算法。请选择支持CPU、GPU训练的算法。

3. 单击算法名称进入算法详情页,单击右侧的“订阅”,根据界面提示完成算法订阅。

此算法由ModelArts官方提供,目前免费开放。订阅算法完成后,页面的“订阅”按钮显示为“已订阅”。

4. 单击商品详情页的“前往控制台”,此时弹出“选择云服务区域”对话框,选择ModelArts对应的区域,然后再单击“确定”,

页面将自动跳转至ModelArts的“算法管理>市场订阅”中同步对应的算法。

图 3-3 前往控制台

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 17

Page 22: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 3-4 选择云服务区域

5. 在ModelArts管理控制台的算法管理页面,算法将自动同步至ModelArts中。

未同步的算法,无法直接用于创建训练作业,因此从AI Gallery订阅完成后,需在ModelArts管理控制台执行同步操作。同步成功后,下方界面中的“创建训练作业”按钮可用,且状态变更为“就绪”。

图 3-5 同步算法

使用订阅算法创建训练作业

算法订阅成功后,算法将呈现在“算法管理>市场订阅”中,您可以使用订阅的“ResNet_v1_50”算法创建训练作业,获得模型。

1. 进入“算法管理>市场订阅”页面,选择订阅的“ResNet_v1_50”算法,单击左侧的小三角展开算法,在版本列表中,单击“创建训练作业”。

图 3-6 创建训练作业

2. 在创建训练作业页面,参考如下说明填写关键参数。

– “算法来源”:系统默认选择订阅的算法,请勿随意修改。

– “数据来源”:选择数据集,然后从下拉框中选择数据准备中创建好的数据集。数据集一定要选择切分训练集比例的版本,否则将会导致训练失败。

– “训练输出”:选择一个OBS空目录存储训练输出的模型。

– “调优参数”:建议采用默认值。如需进行调优,可参考运行参数说明。

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 18

Page 23: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

– “资源池”:建议选择GPU规格的资源池,训练效率会更高一些。

图 3-7 训练作业参数

图 3-8 资源池设置

3. 参数填写完成后,单击“下一步”,根据界面提示完成训练作业创建。

4. 进入“训练管理>训练作业”页面,等待训练作业完成。

训练作业运行需要几分钟时间,请耐心等待。根据经验,选择样例数据集,使用GPU资源运行,预计5分钟左右可完成。

当训练作业的状态变更为“运行成功”时,表示已运行结束。您可以单击训练作业名称,进入详情页面,了解训练作业的“配置信息”、“日志”、“资源占用情况”和“评估结果”等信息。您也可以在配置的“训练输出位置”对应的OBS目录下获得训练生成的模型。

导入模型

1. 在ModelArts管理控制台,选择“模型管理 > 模型”。

2. 在模型列表页面,单击“导入”。进入导入模型页面,参考如下说明填写关键参数。

“元模型来源”:选择“从训练中选择”。然后在“选择训练作业”右侧下拉框中选择上一步创建的训练作业。

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 19

Page 24: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 3-9 从训练中选择模型

3. 模型导入参数填写完成后,单击“立即创建”。页面自动跳转至模型列表页面,等待模型导入结果。

当模型的状态变为“正常”时,表示模型导入成功。

图 3-10 模型导入成功

部署为在线服务(CPU)

模型导入成功后,可将此模型部署为在线服务,在部署时可使用CPU资源。

说明

本文仅描述了部署为在线服务的操作指导,针对批量服务的部署,其操作步骤类似,不再赘述。详细批量服务的部署指导,可参见ModelArts用户指南。

1. 在模型列表中,单击操作列的“部署 > 在线服务”。

图 3-11 部署模型

2. 在部署页面,参考如下说明填写关键参数。

“资源池”:选择“公共资源池”。

“选择模型及配置”:“模型”及“版本”会自动选择前面导入的模型。“计算节点规格”,在下拉框中选择CPU或GPU,本示例选择CPU资源进行部署。计算节点个数,需设置为“1”,目前仅支持单机部署,只能设置为“1”,不可修改。

其他参数可使用默认值。

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 20

Page 25: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

说明

如果需要使用GPU资源部署上线,需要进入模型所在位置,即使用订阅算法创建训练作业步骤生成的“训练输出”路径,进入“model”目录,打开并编辑“config.json”文件,将“runtime”的配置修改为ModelArts支持的GPU规格,例如"runtime": "tf1.13-python3.6-gpu"。修改完成后,重新执行导入模型和部署为在线服务的操作。

图 3-12 部署模型

3. 参数设置完成后,单击“下一步”,根据界面提示,完成在线服务的部署。

您可以进入“在线服务列表”页面,等待服务部署结束,当服务状态变为运行中时,表示服务部署成功。

图 3-13 运行中的服务

4. 在线服务部署完成后,您可以单击服务名称进入服务详情页。

– 访问服务:了解调用指南,获取API接口地址,可通过postman或使用curl命令发送请求,访问在线服务。

– 预测:单击“预测”页签,上传一个测试图片,进行预测。

更多操作,可参见ModelArts用户指南。

图 3-14 调用指南

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 21

Page 26: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 3-15 预测

3.2 使用时序预测算法实现访问流量预测本章节介绍使用AI Gallery中预置的时序预测算法实现访问流量预测。

场景介绍

针对有一定AI基础的AI初学者,ModelArts基于业界的主流引擎提供了预置算法,无需关注模型开发过程,直接使用预置算法对已有数据进行训练,并快速部署为服务。时序预测可针对时间序列数据进行预测。

本章节提供了一个访问流量预测的样例,帮助您快速熟悉使用ModelArts AI Gallery算法训练的过程。此样例针对问流量数据cdn.csv,利用lstm预测得到接下来一个时间段内的结果。

数据准备

1. 进入数据集介绍,单击“下载”,将“cdn.csv”数据集下载至目标位置OBS目录。

2. 设置“目标区域”和“目标位置”,然后单击“下一步”。

– “目标区域”:请设置为ModelArts的所在区域。ModelArts支持在“华北-北京一”、“华北-北京四”、“华东-上海一”使用,此处选择的区域与您想要使用的ModelArts所在区域填写一致。

– “目标位置”:将数据集从AI Gallery下载至您的OBS桶中。例如,将数据集存储至“test-modelarts/dataset”OBS路径下。

3. 数据开始下载后,可以单击右上角“个人中心>数据集”,查看数据集下载进度。当此数据集的“状态”为“推送成功”时,此样例数据集已同步至你指定的目标位置下。

进入 AI Gallery 订阅算法

ModelArts预置的时序预测算法发布在AI Gallery中。您可以前往AI Gallery,订阅此模型,然后同步至ModelArts中。

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 22

Page 27: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

1. 进入ModelArts的AI Gallery,在搜索框中输入“时序预测”,查找对应的算法。

2. 单击算法名称进入算法详情页,单击右侧的“订阅”,根据界面提示完成算法订阅。

此算法由ModelArts官方提供,目前免费开放。订阅算法完成后,页面的“订阅”按钮显示为“已订阅”。

3. 单击商品详情页的“前往控制台”,此时弹出“选择云服务区域”对话框,选择对应的区域,然后再单击“确定”,

页面将自动跳转至ModelArts的“算法管理>市场订阅”中同步对应的算法。

图 3-16 前往控制台

图 3-17 选择云服务区域

4. 在ModelArts管理控制台的算法管理页面,算法将自动同步至ModelArts中。

未同步的算法,无法直接用于创建训练作业,因此从AI Gallery订阅完成后,需在ModelArts管理控制台执行同步操作。同步成功后,下方界面中的“创建训练作业”按钮可用,且状态变更为“就绪”。

图 3-18 同步算法

使用订阅算法创建训练作业

算法订阅成功后,算法将呈现在“算法管理>市场订阅”中,您可以使用订阅的“时序预测算法”算法创建训练作业,获得模型。

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 23

Page 28: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

1. 进入“算法管理>市场订阅”页面,选择订阅的“时序预测算法”算法,单击左侧的小三角展开算法,在版本列表中,单击“创建训练作业”。

图 3-19 创建训练作业

2. 在创建训练作业页面,参考如下说明填写关键参数。

– “算法来源”:系统默认选择步骤1订阅的算法,请勿随意修改。

– “训练输入”:数据来源选择“cdn.csv”数据文件存储的OBS目录。注意此处选择目录,而不是此文件。

– “训练输出”:选择一个OBS空目录存储训练输出的模型。

– “调优参数”:此算法提供的参数均提供了默认值。针对本示例,建议“epoch”迭代轮数修改为“20”,其他参数采用默认值,如需修改,建议仔细阅读算法介绍,并根据参数解释进行修改。

“model”支持多种类型的模型,其中arima、holt_winters仅支持单维的时序预测,rnn、lstm、gru、lstnet和attetion支持多维度的时序预测。本示例使用lstm模型。

– “规格”:建议选择免费规格的GPU进行训练。如果需要选择CPU,建议将上述“调优参数”中,“gpu”的值设置为“0”。

图 3-20 训练作业参数

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 24

Page 29: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 3-21 调优参数配置

图 3-22 资源配置

3. 参数填写完成后,单击“下一步”,根据界面提示完成训练作业创建。

4. 进入“训练管理>训练作业”页面,等待训练作业完成。

训练作业运行需要几分钟时间,请耐心等待。根据经验,使用GPU资源时此样例在2分钟左右完成训练。

当训练作业的状态变更为“运行成功”时,表示已运行结束。您可以单击训练作业名称,进入详情页面,了解训练作业的“配置信息”、“日志”、“资源占用

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 25

Page 30: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

情况”等信息。您也可以在配置的“训练输出位置”对应的OBS目录下获得训练生成的模型以及预测结果“forecast.csv”。

创建可视化作业

针对训练输出的预测结果,可通过可视化作业查看,更加直观的查看预测结果。您也可以前往训练输出目录,获取预测结果,进行查看。

1. 在“训练管理 > 训练作业”页面中,选择“可视化作业”页签,单击“创建”。

2. 在“创建可视化作业”中,填写相关参数,其中“训练输出位置”选择步骤2中“训练输出”对应的OBS目录,然后“下一步”,并根据界面提示完成可视化作业创建。

图 3-23 可视化作业参数配置

3. 等待可视化作业创建成功,当作业状态为“运行中”时,可单击作业名称进入TensorBoard界面查看预测结果,其结果展示如图3-24所示。

图 3-24 tensorboard 可视化

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 26

Page 31: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

清除资源

为避免产生不必要额费用,通过此示例学习时序预测算法的使用后,您可以清除相关资源,避免造成资源浪费。

● 删除可视化作业:在“训练管理>训练作业”页面,进入“可视化作业”页签,单击操作列的“更多>删除”。

● 删除训练作业:在“训练作业”页面,单击操作列的“删除”。

● 删除数据:前往OBS,删除上传的数据,然后删除文件夹及OBS桶。

3.3 使用强化学习内置环境本章节介绍使用AI Gallery中预置的强化学习算法训练内置环境CartPole示例。

环境介绍

CartPole,车杆游戏,游戏画面如图3-25所示。游戏中,黑色的方块是一个小车,小车在一维无阻力轨道上运动。小车上连接一根活动杆,杆会左右摇摆。为保证游戏持续进行,小车需要左右移动保持杆子竖直。当小车的移动位置超出游戏界面所示范围或者杆子倾斜角度大于15°,游戏结束。游戏全过程可以理解为AI智能体与环境之间的互动,可以将复杂的因素抽象成以下三个变量。

1. 可采取的动作:左移、右移。

2. 获得奖励规则:左移或右移小车之后游戏没有结束,reward值会+1。

3. 目的:使用强化学习训练一个智能体,玩CartPole游戏,尽可能多获得奖励。

图 3-25 CartPole 游戏画面

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 27

Page 32: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

进入 AI Gallery 订阅强化学习算法

ModelArts预置的强化学习算法(名为“强化学习预置算法”)发布在AI Gallery中。您可以前往AI Gallery,订阅此模型,然后同步至ModelArts中。

1. 在ModelArts管理控制台中,在左侧菜单栏中选择“AI Gallery”,进入AIGallery。

2. 在AI Gallery中,在搜索框中输入“强化学习预置算法”,查找对应的算法。

3. 单击算法名称进入算法详情页,单击右侧的“订阅”,根据界面提示完成算法订阅。

此算法由ModelArts官方提供,目前免费开放。订阅算法完成后,页面的“订阅”按钮显示为“已订阅”。

4. 单击商品详情页的“前往控制台”,此时弹出“选择云服务区域”对话框,选择对应的区域,然后再单击“确定”,

页面将自动跳转至ModelArts的“算法管理>市场订阅”中同步对应的算法。

图 3-26 前往控制台

图 3-27 选择云服务区域

5. 在ModelArts管理控制台的算法管理页面,算法将自动同步至ModelArts中。

未同步的算法,无法直接用于创建训练作业,因此从AI Gallery订阅完成后,需在ModelArts管理控制台执行同步操作。同步成功后,下方界面中的“创建训练作业”按钮可用,且状态变更为“就绪”。

图 3-28 同步算法

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 28

Page 33: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

使用订阅算法创建训练作业

算法订阅成功后,算法将呈现在“算法管理>市场订阅”中,您可以使用订阅的“强化学习预置算法”算法创建训练作业,获得模型。

1. 进入“算法管理>市场订阅”页面,选择订阅的“强化学习预置算法”算法,单击左侧的小三角展开算法,在版本列表中,单击“创建训练作业”。

图 3-29 创建训练作业

2. 在创建训练作业页面,参考如下说明填写关键参数。

– “算法来源”:系统默认选择步骤1订阅的算法,请勿随意修改。

– “训练输入”:由于本场景选择内置环境,无需数据输入。此处请选择一个OBS空目录。

– “训练输出”:选择一个OBS空目录存储训练输出的模型。

– “调优参数”:系统默认的环境ID为“CartPole-v0”,即我们想要训练的环境,无需修改。由于本示例使用的是内置环境,“use_preset_env”参数需设置为“True”。其他参数在本示例中建议采用默认值。

– “资源池”:建议选择CPU规格的资源池,例如“modelarts.vm.train.cpu.8u”规格。

图 3-30 训练作业参数

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 29

Page 34: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 3-31 调优参数配置

3. 参数填写完成后,单击“下一步”,根据界面提示完成训练作业创建。

4. 进入“训练管理>训练作业”页面,等待训练作业完成。

训练作业运行需要几分钟时间,请耐心等待。根据经验,此样例在5分钟左右完成训练。

当训练作业的状态变更为“运行成功”时,表示已运行结束。您可以单击训练作业名称,进入详情页面,了解训练作业的“配置信息”、“日志”、“资源占用情况”等信息。您也可以在配置的“训练输出位置”对应的OBS目录下获得训练生成的模型。

导入模型1. 在ModelArts管理控制台,选择“模型管理 > 模型”。

2. 在模型列表页面,单击“导入”。进入导入模型页面,参考如下说明填写关键参数。

“元模型来源”:选择“从训练中选择”。然后在“选择训练作业”右侧下拉框中选择上一步创建的训练作业。

图 3-32 从训练中选择模型

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 30

Page 35: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

3. 模型导入参数填写完成后,单击“立即创建”。页面自动跳转至模型列表页面,等待模型导入结果。

当模型的状态变为“正常”时,表示模型导入成功。

图 3-33 模型导入成功

部署为在线服务

模型导入成功后,可将此模型部署为在线服务,部署完成后即可在ModelArts管理控制台进行预测。

1. 在模型列表中,单击操作列的“部署 > 在线服务”。

图 3-34 部署模型

2. 在部署页面,参考如下说明填写关键参数。

“资源池”:选择“公共资源池”。

“选择模型及配置”:“模型”及“版本”会自动选择前面导入的模型。“计算节点规格”,在下拉框中选择CPU或GPU,本示例选择CPU资源进行部署。计算节点个数,需设置为“1”,目前仅支持单机部署,只能设置为“1”,不可修改。

其他参数可使用默认值。

图 3-35 部署模型参数

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 31

Page 36: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

3. 参数设置完成后,单击“下一步”,根据界面提示,完成在线服务的部署。

您可以进入“在线服务列表”页面,等待服务部署结束,当服务状态变为“运行中”时,表示服务部署成功。

4. 在线服务部署完成后,您可以单击服务名称进入服务详情页。

– 访问服务:了解“调用指南”,获取“API接口地址”,了解“输入参数”和“输出参数”,可通过postman或使用curl命令发送请求,访问在线服务。

图 3-36 调用指南

– 预测:单击“预测”页签,输入相应的参数或代码,单击“预测”即可看到运行结果,具体格式及要求参考算法说明文档。给出一组可用于推理预测的标准示例数据及格式,如下所示:{"seq_lens": [0],"is_training": "False","observations": [[0.02160617659181513,0.022702596137138,-0.026817784180154104,0.04523499832683836]]}

说明

在线部署推理仅为单步预测,如果想实现完整的游戏推理,需要使用训练保存的模型或调用在线服务API的方式,编写相应的推理程序。

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 32

Page 37: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 3-37 预测结果

3.4 花卉识别(使用训练管理的预置算法实现图像分类)针对有一定AI基础的AI初学者,ModelArts基于业界的主流引擎提供了预置算法,无需关注模型开发过程,直接使用预置算法对已有数据进行训练,并快速部署为服务。预置算法可用于物体类别和位置、图像分类等场景。

本章节提供了一个花卉图像分类应用的样例,帮助您快速熟悉使用ModelArts预置算法构建模型的过程。此样例针对预置的花卉图像数据集,对已有图像数据进行标注,然后使用预置的“ResNet_v1_50”算法对数据进行训练,得到一个可用的模型, 后,将此模型部署为在线服务。部署完成后,用户可通过在线服务识别输入图片的花卉种类。

开始使用样例前,请仔细阅读准备工作罗列的要求,提前完成准备工作。使用预置算法完成模型构建的步骤如下所示:

● 步骤1:准备数据

● 步骤2:训练模型

● 步骤3:(可选)创建可视化作业,查看模型训练过程

● 步骤4:导入模型

● 步骤5:部署上线

● 步骤6:测试服务

● 步骤7:清除相应资源,避免产生费用

准备工作● 已注册华为云帐号,且在使用ModelArts前检查帐号状态,帐号不能处于欠费或冻

结状态。

● 当前帐号已完成访问授权的配置。如未完成,请参考使用委托授权。针对之前使用访问密钥授权的用户,建议清空授权,然后使用委托进行授权。

● 已在OBS服务中创建桶和文件夹,用于存放样例数据集以及模型。如下示例中,请创建命名为“test-modelarts”的桶,并创建如表3-1所示的文件夹。

创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。确保您使用的OBS目录与ModelArts在同一区域。

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 33

Page 38: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

表 3-1 文件夹列表

文件夹名称 用途

“dataset-flowers” 用于存储数据集。

“model-test” 用于存储训练输出的模型和预测文件。

“train-log” 用于存储训练作业的日志。

步骤 1:准备数据

ModelArts在公共OBS桶中提供了花卉的示例数据集,命名为“Flowers-Data-Set”,因此,本文的操作示例使用此数据集进行模型构建。您需要执行如下操作,将数据集上传至您的OBS目录下,即准备工作中您创建的OBS目录“test-modelarts/dataset-flowers”。

说明

● 由于“Flowers-Data-Set”数据集已完成数据标注,数据集中文件格式为“.txt”是对应图片的标注文件,因此在此操作步骤中忽略了数据标注操作。

● 如果您想使用自己的数据集,可跳过此步骤,直接将数据上传至OBS文件夹中,并在步骤2:训练模型操作中直接选择此目录即可。如果您使用的数据集未进行标注,在创建训练作业前请在“数据管理>数据集”页面创建数据集并进行人工标注。

1. 单击数据集下载链接,将“Flowers-Data-Set”数据集下载至本地。

2. 在本地,将“Flowers-Data-Set.zip”压缩包解压。例如,解压至本地“Flowers-Data-Set”文件夹下。

3. 参考上传文件,使用批量上传方式将“Flowers-Data-Set”文件夹下的所有文件上传至“test-modelarts/dataset-flowers”OBS路径下。

步骤 2:训练模型

数据准备完成后,您可以创建一个训练作业,选用预置算法“ResNet_v1_50”,并终生成一个可用的模型。

“ResNet_v1_50”算法基于“TensorFlow, TF-1.8.0-python2.7”引擎,其用途为图像分类。如果您想获取更多预置算法的介绍,您可以在“训练作业”页面中,单击“预置算法”页签,了解ModelArts提供的算法信息,如用途、引擎类型、精度等。

1. 在ModelArts管理控制台,在左侧导航栏中选择“训练管理>训练作业”,进入“训练作业”管理页面。

2. 单击“创建”,进入“创建训练作业”页面。

3. 在“创建训练作业”页面,填写相关信息,参数填写指导请参见如下步骤。

a. 在基本信息区域,“计费模式”和“版本”为系统自动生成,不需修改。请根据界面提示填写“名称”和“描述”。

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 34

Page 39: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 3-38 填写名称和描述

b. 在参数配置区域,选择“算法来源”,设置“数据来源”、“训练输出位置”、“运行参数”和“作业日志路径”。

▪ “算法来源”:单击“选择”,从“预置算法”列表中,选择“ResNet_v1_50”算法。

▪ “数据来源”:由于导入的数据集已完成标注,因此直接从数据存储位置导入即可。单击“数据存储位置”,然后单击文本框右侧的“选择”,选择数据集所在的OBS路径,如“/test-modelarts/dataset-flowers/”。

▪ “训练输出位置”:从已有的OBS桶中选择模型和预测文件存储路径。使用准备工作中已创建好的“model-test”文件夹。如果没有可用文件夹,您可以单击“选择”,在弹出对话框中新建文件夹。

▪ “运行参数”:选择“ResNet_v1_50”算法后,默认包含“max_epoches”参数,默认值为“100”。针对此示例,建议将“max_epoches”参数值修改为“10”,1个epoch代表整个数据集训练一遍,此运行参数表示训练10个epoch,“max_epoches”值越大训练时间越长。

▪ “作业日志路径”:从已有的OBS桶中选择日志存储路径。使用准备工作中已创建好的“train-log”文件夹。如果没有可用文件夹,您可以单击“选择”,在弹出对话框中新建文件夹。

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 35

Page 40: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 3-39 参数配置

c. 在资源设置区域,选择“公共资源池”,同时设置“规格”和“计算节点个数”。

如果选择使用免费规格,请仔细阅读提示信息,然后勾选“我已阅读并同意以上内容”。

图 3-40 设置使用的资源

d. 单击“下一步”完成信息填写。

4. 在“规格确认”页面,确认训练作业的参数信息,确认无误后单击“提交”。

5. 在“训练作业”管理页面,可以查看新建训练作业的状态。训练作业的创建和运行需要一些时间,预计十几分钟,当状态变更为“运行成功”时,表示训练作业创建完成。

您可以单击训练作业的名称,可进入此作业详情页面,了解训练作业的“配置信息”、“日志”和“资源占用情况”等信息。在“训练输出位置”所在的OBS路径中,即“/test-modelarts/model-test/”路径,可以获取到生成的模型文件。

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 36

Page 41: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 3-41 训练作业详情

步骤 3:(可选)创建可视化作业,查看模型训练过程

目前ModelArts提供的可视化作业默认为TensorBoard类型的作业。TensorBoard是一个可视化工具,能够有效地展示TensorFlow或MXNet在运行过程中的计算图、各种指标随着时间的变化趋势以及训练中使用到的数据信息。可视化作业当前只支持基于TensorFlow和MXNet引擎的训练作业。

如果训练详情页的详细信息已足够支撑您判断模型好坏并构建模型,您可以选择跳过此步骤,直接执行步骤4:导入模型的操作。

1. 在ModelArts管理控制台,在左侧导航栏中选择“训练管理 > 训练作业”,然后单击“可视化作业”页签进入“可视化作业”管理页面。

2. 在“可视化作业”管理页面,单击“创建”。

3. 在“创建可视化作业”页面,设置相关参数,然后单击“下一步”。

可视化作业的类型默认为“可视化作业”,且不可更改。设置可视化作业的“名称”,以及“训练输出位置”。“训练输出位置”需要设置为训练作业中的“训练输出位置”,上述步骤中“训练输出位置”为“/test-modelarts/model-test/”。“自动停止”启用,并设置为“1小时后”停止,避免产生不必要的费用。

图 3-42 设置可视化作业参数信息

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 37

Page 42: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

4. 在“规格确认”页面,信息确认完毕后,单击“提交”。

5. 进入“可视化作业”管理页面,等待一段时间,当可视化作业的状态为“运行中”时,表示已创建成功。

针对运行中的可视化作业,您可以单击可视化作业的名称跳转到其可视化界面。您可以通过此界面的信息,了解到此模型的具体训练过程。如果此模型训练过程和参数满足要求,您可以开始执行步骤4:导入模型操作。

图 3-43 可视化界面

步骤 4:导入模型

训练完成的模型还是存储在OBS路径中,您可以将此模型导入到ModelArts中进行管理和部署。

1. 在ModelArts管理控制台中,单击左侧导航栏中的“模型管理>模型”,进入“模型”页面。

2. 在“模型”页面,单击“导入”。

3. 在“导入模型”页面,设置相关参数,然后单击“立即创建”。

设置模型的“名称”和“版本”,然后在“元模型来源”参数中,选择“从训练中选择”,此时系统会自动选择您创建的训练作业,您可以从下拉框中可以选择系统中可用的训练作业。由于本示例数据较简单,其他参数采用默认值。

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 38

Page 43: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 3-44 导入模型

4. 模型导入完成后,系统将自动跳转至模型列表页面。您可以在模型列表页面查看已导入的模型及其版本。

图 3-45 模型列表

步骤 5:部署上线

模型导入完成后,当状态显示为“正常”时,可以将模型部署上线,可部署为“在线服务”、“批量服务”或“边缘服务”。如下操作步骤以部署为在线服务为例。

1. 在“模型管理 > 模型”页面,单击模型名称左侧的小三角,打开此模型下的所有版本。在对应版本所在行,单击操作列的“部署”,然后在下拉框中选择“在线服务”,进入“部署”页面。

2. 在“部署”页面中,设置相关参数,然后单击“下一步”。

设置在线服务的“名称”,将“是否自动停止”功能启用。在“选择模型及配置”区域中,系统将自动选择步骤4:导入模型中的模型及其版本,在“计算节点规格”右侧下拉框中选择使用的资源,本示例选用“CPU:2核 8GiB”资源部署在线服务。其他参数使用默认值。

“数据采集”和“难例筛选”功能,建议使用默认值,保持关闭。

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 39

Page 44: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 3-46 部署为在线服务

3. 在“规格确认”页面,确认信息完毕后,单击“提交”。

4. 在“部署上线 > 在线服务”页面,您可以查看在线服务的相关信息。由于模型部署上线需要花费一些时间,请耐心等待几分钟。当在线服务的状态为“运行中”时,表示在线服务已部署完成。

步骤 6:测试服务

在线服务部署成功后,您可以进入在线服务,发起预测请求进行测试。

1. 在“在线服务”管理页面,单击在线服务名称,进入在线服务详情页面。

2. 在线服务详情页面中,单击“预测”页签,进入预测页面。

3. 在“选择预测图片文件”右侧,单击“上传”按钮,上传一张带花的图片,然后单击“预测”。

预测完成后,预测结果显示区域将展示预测结果,根据预测结果得分,可识别出此图片的花为“daisy”。

说明

由于此处是测试服务,为保证测试效果,建议选择图片时,不要使用示例数据集中已有的图片。

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 40

Page 45: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 3-47 预测结果

步骤 7:清除相应资源,避免产生费用

为避免产生不必要的费用,在完成试用后,建议您删除相关资源,如在线服务、可视化作业、训练作业、数据及其OBS目录。

● 删除在线服务:在“在线服务”页面,单击操作列的“更多>删除”。

● 删除可视化作业:在“训练作业>可视化作业”页面,单击操作列的“删除”。

● 删除训练作业:在“训练作业”页面,单击操作列的“删除”。

● 删除数据:前往OBS,删除上传的数据,然后删除文件夹及OBS桶。

ModelArts佳实践 3 预置算法

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 41

Page 46: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

4 数据管理

4.1 数据管理(物体检测类型)在AI模型开发过程中,数据科学家需要花费较多时间在数据准备环境。包括数据预处理、数据标注等工作,当数据量庞大、种类较多时,数据准备工作繁琐,且耗时长。

ModelArts提供的数据管理功能,不仅提供了基础的数据标注、版本管理能力,同时还提供了数据处理(数据选择、数据清洗等)、自动分组、智能标注、特征分析等功能,帮助用户提升数据准备效率。

本案例介绍如何针对样例数据集,进行数据预处理、自动分组、智能标注、特征分析等操作,完成数据集准备。在实际业务开发过程中,可以根据业务需求选择数据管理的一种或多种功能完成数据准备。ModelArts数据管理的功能介绍请参见数据管理简介。

准备工作

在使用 ModelArts进行开发前,需先完成如下准备工作,如果已完成,跳过此步骤。

1. 注册华为云帐号。

2. 完成实名认证。

3. 登录ModelArts管理控制台,左上角选择使用区域(例如,华北-北京四),使用委托完成访问授权。

4. 在左上角服务列表中,选择对象存储服务,进入OBS管理控制台。创建1个OBS桶用于存储数据。

创建桶时,“区域”选择“华北-北京四”,“数据冗余存储策略”选择“单AZ存储”,其他参数使用默认值。

操作流程概览

完成了基础环境准备后,就可以前往ModelArts管理控制台,开始进行AI数据开发,此次操作主要分为以下几个流程:

1. 从AI Gallery下载数据集

2. 数据处理

3. 自动分组

ModelArts佳实践 4 数据管理

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 42

Page 47: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

4. 智能标注

5. 特征分析

从 AI Gallery 下载数据集

本示例使用AI市场已有的数据集进行操作,供学习具体功能操作使用,如下操作介绍如何从AI Gallery下载数据集,此操作将在ModelArts自动创建一个数据集。

说明

针对用户的真实业务数据,建议按如下操作方式完成数据集的创建。首先,创建1个OBS桶及文件夹,然后使用OBS Browser+工具,将业务数据上传至对应的文件夹。然后前往ModelArts管理控制台,创建对应类型的数据集,选择数据所在OBS目录作为此数据集的输入目录。

AI Gallery提供的animal数据集介绍

● 用于物体检测,包含830张未标注样本。

● 数据集一共包含4种类别:熊猫、马、鹿、猴子。

参考如下操作,将AI Gallery的数据集下载至当前帐号的数据管理中。

1. 单击animal数据集,打开AI Gallery的数据集详情页面。

2. 单击右上角“下载”。

3. 在弹出的对话框中,填写如下参数,将此数据集下载至数据管理中。

“下载方式”:ModelArts数据集

“目标区域”:华北-北京四

“目标位置”:请选择前期准备工作中创建的OBS桶,可以在弹窗中通过“创建文件夹”,创建命名为animal的文件夹用于存储数据。

“名称”:定义ModelArts中呈现的数据集名称。您可以自行定义,本示例使用dataset-animal名称。

图 4-1 下载数据集

ModelArts佳实践 4 数据管理

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 43

Page 48: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

4. 单击“确定”开始下载。页面自动进入下载列表,您可以通过进度列查看详细下载进度。

此页面需要自己手动刷新页面查看 新下载进度,由于数据集较大,下载预计要花费3~5分钟左右。

5. 前往ModelArts管理控制台,在左侧菜单栏中选择“数据管理>数据集”,在数据集列表中查看数据集状态。

从AI Gallery下载数据集后,将在ModelArts数据管理页面创建命名为“dataset-animal”的数据集。您可以进入数据集列表,查看到下载任务创建的数据集,单击名称左侧的小三角,展开数据集详情,可查看数据集的导入状态。当状态变为“导入完成”时,表示数据集已准备就绪。

图 4-2 查看导入状态

数据处理

在AI开发过程中,采集的数据可能存在大量重复数据,重复数据对模型精度提升并没有太大作用,反而需要花费很多时间对其进行标注。此时,可使用数据选择进行数据预处理,对采集到的数据去重,根据相似度删除一些重复度比较高的数据,从而减少数据的标注量 。

如果业务数据不存在重复数据或相似度高的数据,可跳过此步骤。面向图像分类和物体检测类型,ModelArts提供了数据清洗、数据增强等更多数据预处理的算法,请根据实际业务诉求进行选择详情请参见数据处理简介。

1. 发布数据集版本。

在执行数据选择处理前,我们需要先发布一个数据集版本,作为数据校验算法的输入。

a. 进入“数据管理>数据集”页面,选择从AI Gallery下载的数据集,单击右侧操作列的“发布”。

b. 在弹出的“发布新版本”对话框中,填写如下参数,然后单击“确定”发布数据集版本。

“版本名称”:系统默认以V001开始,您也可以自行定义版本名称。

其他参数建议使用默认值。

ModelArts佳实践 4 数据管理

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 44

Page 49: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 4-3 发布数据集版本

2. 创建数据处理任务。在此任务中,选择“数据选择”算法。

a. 在左侧菜单栏中,选择“数据管理>数据处理”,单击“创建”。

b. 在“创建数据处理”页面,填写如下参数,然后单击创建,完成数据处理任务的创建。

▪ “名称”:自定义方便辨识的任务名称。

▪ “场景类别”:物体检测

▪ “数据处理类型”:数据选择

▪ “输入”:数据集,选择刚才创建的数据集及其数据集版本、

▪ “输出”:选择刚才创建的数据集作为目标数据集,并指定一个新的数据集版本名称,数据处理结果会保存为该数据集的一个新版本。

图 4-4 创建数据处理任务

数据处理任务创建完成后,任务将自动启动,且界面自动跳转至数据处理任务列表页面。当数据处理任务状态变为“完成”时,表示任务执行完成。

ModelArts佳实践 4 数据管理

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 45

Page 50: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

3. 查看数据选择结果。即删除相似图像后的结果。

数据选择任务完成后,单击任务名称进入详情页面。在详情页面中,选择“结果展示”页签,可查看全部数据、保留数据以及删除的数据。在“删除”页签下,即根据算法规则,删除的相似度较高的图像。

图 4-5 查看数据选择结果

4. 将数据选择后的版本设置为数据集当前版本。

数据处理任务执行后,其处理结果对应的数据集版本不会作为当前版本。为方便后续数据标注、特征分析等操作,需要将数据选择后的数据集版本,设置为数据集的当前版本。

a. 进入“数据管理>数据集”页面,单击进行处理的数据集名称(dataset-animal),进入数据集概览页。

b. 选择“版本管理”页签,选中数据处理后的版本(即步骤2.b中输出参数对应的版本),然后单击“设置为当前版本”。

图 4-6 设置为当前版本

等待数据集版本切换完成后,单击右上角的“开始标注”,进去数据集详情页,可以看到当前数据集中保留下来的数据,相似程度都比较低。

自动分组

自动分组可以理解为数据标注的预处理,先使用聚类算法对未标注图片进行聚类,再根据聚类结果进行处理,可以分组打标或者清洗图片。

1. 启动自动分组任务,并等待任务完成。

ModelArts佳实践 4 数据管理

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 46

Page 51: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

a. 在数据集详情页面,选择“全部”页签,单击“自动分组>启动任务”。

图 4-7 启动自动分组任务

b. 在弹出的“自动分组”窗口中,设置如下参数,然后单击“确定”,启动任务。

▪ “分组数”:4。由于此数据集中的类别是4种,因此在分组任务中直接定义为4。针对用户的数据,可大致浏览下数据集,对数据集已有类别进行统计,分组数设置为数据集中的类别数。

▪ “结果处理方式”:更新属性到当前样本中。

▪ “属性名称”:自定义方便辨识的名称。

图 4-8 自动分组任务设置

自动分组任务执行过程中,右上角将提示任务进展,您可以可以选择“自动分组>任务历史”,查看任务进展。任务执行预计需要几分钟时间,请耐心等待。当任务状态变更为“成功”时,表示任务运行结束。

ModelArts佳实践 4 数据管理

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 47

Page 52: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 4-9 任务进展

2. 数据筛选查看。

当自动分组任务完成后,您可以通过数据筛选功能,查看分组后,不同类别的详细数据。

“全部”页签下,单击“筛选条件”右侧的“展开”,在“样本属性”右侧,选择自动分组定义的属性名称,然后选择不同的类别。自动分组任务定义的是4种分类,此时可通过0、1、2、3进行筛选查看4种不同类别下的数据。

图 4-10 筛选数据

例如选择“0”,下方数据详情页展示同一类别的数据。自动将数据进行分组,可以在筛选结果中,即同一类别数据下,进入标注页面进行某一标签的标注,提升标注效率。针对图像分类任务,则可批量选中图像,进行批量标注,标注效率提升明显。

图 4-11 展示同一类别数据

ModelArts佳实践 4 数据管理

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 48

Page 53: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

智能标注

除了人工标注外,ModelArts还提供了智能标注功能,帮助您快速完成剩余的数据标注,为您节省70%以上的标注时间。

1. 人工标注部分数据。

在启动智能标注前,需人工完成少量数据标注,每个标签至少15张图片。

a. 定义标签。在“数据集概览”页面,单击右上角的“修改”,在弹出窗口中定义本数据集将使用的标签名称。例如Panda、Horse、Monkey、Deer。

图 4-12 定义标签

b. 单击“开始标注”,进入详情页面进行标注。可通过自动分组先对数据进行分组,筛选出某一种类别的数据,单击图片进入并完成数据标注。每一种类别,建议至少完成15张图片的标注。

图 4-13 标注部分数据

2. 启动智能标注。

a. 在数据集详情页面,单击右上角“启动智能标注”。

ModelArts佳实践 4 数据管理

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 49

Page 54: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

b. 在“启动智能标注”窗口中,填写如下参数,然后单击“提交”。

▪ “智能标注类型”:主动学习

▪ “算法类型”:快速型

其他参数值请采用默认值。

图 4-14 启动智能标注

智能标注任务启动后,可以在“待确认”页签下查看智能标注任务进度。智能标注任务耗时较长,600多张图片,预计需等待二十几分钟,数据越多,任务运行时长越长,请耐心等待。

当任务完成后,即可在“待确认”页签下查看自动标注好的数据。

图 4-15 查看智能标注任务进度

c. 确认智能标注结果。

ModelArts佳实践 4 数据管理

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 50

Page 55: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

在智能标注任务完成后,在“待确认”页签下,单击具体图片进入标注详情页面,可以查看或修改智能标注的结果。

如果智能标注的数据无误,可单击右侧的“确认标注”,如果标注信息有误,可直接删除错误标注框,然后重新标注,以纠正标注信息。针对物体检测任务,需一张一张确认。确保所有图片已完成确认,然后执行下一步操作。

图 4-16 确认结果

特征分析

标注完成后,可以基于图片或目标框对图片的各项特征,如模糊度、亮度进行分析,帮助用户更好的分析数据集的数据质量和标注质量,判断数据集是否满足自己的算法和模型要求。

1. 创建特征分析任务。

a. 在执行特征分析前,需先发布一个数据集版本。在智能标注并确认完的数据,单击右上角“返回数据集概览”,然后单击“发布”,发布一个新版本。

b. 版本发布完成后,进入数据集概览页。选择“数据特征”页签,单击“特征分析”,在弹窗中选择刚才发布的数据集版本,并单击“确定”,启动特征分析任务。

图 4-17 启动特征分析

c. 查看任务进度。

任务执行过程中,可以单击“任务历史”,查看任务进度。当任务状态变为“成功”时,表示任务执行完成。

ModelArts佳实践 4 数据管理

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 51

Page 56: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 4-18 查看任务进度

2. 查看特征分析结果。

特征分析任务执行完成后,可以在“数据特征”页签下,选择“数据集版本”、“类型”和“数据特征指标”,页面将自动呈现您选择对应版本及其指标数据,您可以根据呈现的图表了解数据分布情况,帮助您更好的理解您的数据。

– “版本选择”:根据实际情况选择已执行过特征任务的版本,可以选多个进行对比,也可以只选择一个。

– “类型”:根据需要分析的类型选择。支持“all”、“train”、“eval”和“inference”。分别表示所有、训练、评估和推理类型。

– “数据特征指标”:选择您需要展示的指标。详细指标解释,可参见特征分析指标列表。

图 4-19 查看特征分析结果

在特征分析结果中,例如图片亮度指标,数据分布中,分布不均 ,缺少某一种亮度的图片,而此指标对模型训练非常关键。此时可选择增加对应亮度的图片,让数据更均衡,为后续模型构建做准备。

总结

在完成特征分析后,如无需进行数据调整,则可直接使用此数据集及其版本用于后续的模型构建。即已完成AI开发过程中的数据准备。

ModelArts佳实践 4 数据管理

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 52

Page 57: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

5 常用框架

5.1 使用 MXNet 实现手写数字识别ModelArts为AI工程师提供了一站式AI开发全流程管理能力,AI工程师可以从数据准备、模型开发、模型训练、模型部署,一站式完成整个AI过程。兼容业界主流引擎,兼容用户习惯,同时,提供了自研的MoXing深度学习框架,提升算法开发效率和训练速度。

本章节提供了使用MXNet实现手写数字图像识别应用的示例,帮助您快速梳理ModelArts的AI开发全流程。

MNIST是一个手写体数字识别数据集,常被用作深度学习的入门样例。本示例将针对MNIST数据集,使用MXNet原生接口编写的模型训练脚本(ModelArts默认提供),在ModelArts中完成模型训练,并将此模型部署为在线服务。部署完成后,用户可通过在线服务识别输入图片中的数字。

开始使用样例前,请仔细阅读准备工作罗列的要求,提前完成准备工作。本示例模型构建的步骤如下所示:

● 步骤1:准备数据

● 步骤2:训练模型

● 步骤3:编写推理代码和配置文件,并上传至模型所在路径

● 步骤4:导入模型

● 步骤5:部署上线

● 步骤6:测试服务

● 步骤7:清除相应资源,避免产生费用

准备工作● 已注册华为云帐号,且在使用ModelArts前检查帐号状态,帐号不能处于欠费或冻

结状态。

● 当前帐号已完成访问授权的配置。如未完成,请参考使用委托授权。针对之前使用访问密钥授权的用户,建议清空授权,然后使用委托进行授权。

● 已在OBS服务中创建桶和文件夹,用于存放样例数据集以及模型。如下示例中,请创建命名为“test-modelarts”的桶,并创建如表5-1所示的文件夹。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 53

Page 58: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。请确保您使用的OBS与ModelArts在同一区域。

表 5-1 文件夹列表

文件夹名称 用途

“dataset-mnist” 用于存储数据集。

“MXNet-mnist/code/”

用于存储训练脚本。

“MXNet-mnist/output/”

用于存储训练输出的模型和预测文件。

“MXNet-mnist/log/”

用于存储训练作业的日志。

● 针对此示例,ModelArts提供了部署上线需使用的训练脚本、推理代码和配置文件。请获取示例文件并上传OBS指定路径,详细请参见表5-2。

a. 获取示例文件。

在gitee的ModelArts-Lab工程中,单击“克隆/下载”,然后单击“下载ZIP”,下载工程。

下载完成后,解压缩“ModelArts-Lab-master.zip”文件,示例文件存储路径为:“\ModelArts-Lab-master\official_examples\Using_MXNet_to_Create_a_MNIST_Dataset_Recognition_Application\codes”

b. 将示例文件上传至对应OBS路径。上传文件至OBS的操作指导请参见上传文件。

表 5-2 上传示例文件至 OBS

文件名称 描述 上传至如下OBS路径中

“train_mnist.py” 训练脚本。 “test-modelarts/MXNet-mnist/code/”

“customize_service.py”

推理代码。 “test-modelarts/MXNet-mnist/output/model”说明

请在训练作业完成后,再执行上传操作。详细操作指导请参见步骤3:编写推理代码和配置文件,并上传至模型所在路径。

“config.json” 配置文件。

步骤 1:准备数据

ModelArts在公共OBS桶中提供了MNIST数据集,命名为“Mnist-Data-Set”,因此,本文的操作示例使用此数据集进行模型构建。您需要执行如下操作,将数据集上传至您的OBS目录下,即准备工作中您创建的OBS目录“test-modelarts/dataset-mnist”。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 54

Page 59: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

1. 单击数据集下载链接,将“Mnist-Data-Set”数据集下载至本地。

2. 在本地,将“Mnist-Data-Set.zip”压缩包解压。例如,解压至本地“Mnist-Data-Set”文件夹下。

3. 参考上传文件,使用批量上传方式将“Mnist-Data-Set”文件夹下的所有文件上传至“test-modelarts/dataset-mnist”OBS路径下。

“Mnist-Data-Set”数据集包含的内容如下所示,其中“.gz”为对应的压缩包。

– “t10k-images-idx3-ubyte”:验证集,共包含10000个样本。

– “t10k-images-idx3-ubyte.gz”:验证集的压缩包文件。

– “t10k-labels-idx1-ubyte”:验证集标签,共包含10000个样本的类别标签。

– “t10k-labels-idx1-ubyte.gz”:验证集标签的压缩包文件。

– “train-images-idx3-ubyte”:训练集,共包含60000个样本。

– “train-images-idx3-ubyte.gz”:训练集的压缩包文件。

– “train-labels-idx1-ubyte”:训练集标签,共包含60000个样本的类别标签。

– “train-labels-idx1-ubyte.gz”:训练集标签的压缩包文件。

步骤 2:训练模型

数据准备完成后,您可以创建一个训练作业,选用MXNet引擎,基于已上传的“train_mnist.py”训练脚本,并 终生成一个可用的模型。本示例已提供编码完成的脚本(基于MXNet引擎的原生接口),如果使用自行编写的代码,请使用ModelArts支持的引擎类型及其对应版本的接口,并满足其要求。

1. 在ModelArts管理控制台,在左侧导航栏中选择“训练管理 > 训练作业”,进入“训练作业”管理页面。

2. 单击“创建”,进入“创建训练作业”页面。

3. 在“创建训练作业”页面,填写相关信息,参数填写指导请参见如下步骤。

a. 在基本信息区域,“计费模式”和“版本”为系统自动生成,不需修改。请根据界面提示填写“名称”和“描述”。

图 5-1 名称和描述

b. 在参数配置区域,选择“数据来源”,设置“算法来源”、“运行参数”、“训练输出位置”和“作业日志路径”。

▪ “算法来源”:选择常用框架,在“AI引擎”右侧下拉框中选择“MXNet”,并选择“MXNet-1.2.1-python2.7”版本。选择“代码目录”及“启动文件”。此示例中,“代码目录”的OBS路径为“test-modelarts/MXNet-mnist/code/”,“启动文件”的OBS路径为“test-

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 55

Page 60: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

modelarts/MXNet-mnist/code/train_mnist.py”。训练脚本“train_mnist.py”上传说明请参见准备工作。

▪ “数据来源”:请选择“数据存储位置”页签,然后指定MNIST数据集存储的OBS路径。

▪ “训练输出位置”:训练作业生成的模型和预测文件的存储路径。使用准备工作中已创建好的“mnist-model”文件夹。如果没有可用文件夹,您可以单击“选择”,在弹出对话框中新建文件夹。

▪ “运行参数”:单击“增加运行参数”,增加“max_epoches=10”参数。针对“max_epoches”参数,1个epoch代表整个数据集训练一遍,此运行参数表示训练10个epoch,数值可更改,不填写时使用默认值(默认值为100),“max_epoches”值越大训练时间越长。

▪ “作业日志路径”:从已有的OBS桶中选择日志存储路径。使用准备工作中已创建好的“train-log”文件夹。如果没有可用文件夹,您可以单击“选择”,在弹出对话框中新建文件夹。

图 5-2 作业参数配置

c. 在资源设置区域,选择“公共资源池”,选择资源“类型”、“规格”以及“计算节点个数”。

说明

由于MNIST数据集数据较多,为提升训练效率,操作示例选择GPU训练。但是,GPU的费用高于CPU,请根据实际情况选择可用的资源池。

如果选择免费规格,请仔细阅读提示信息。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 56

Page 61: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 5-3 设置资源

d. 单击“下一步”完成信息填写。

4. 在“规格确认”页面,确认训练作业的参数信息,确认无误后单击“提交”。

5. 在“训练作业”管理页面,可以查看新建训练作业的状态。训练作业的创建和运行需要一些时间,预计十几分钟,当状态变更为“运行成功”时,表示训练作业已完成。

您可以单击训练作业的名称,可进入此作业详情页面,了解训练作业的“配置信息”、“日志”和“资源占用情况”等信息。在“训练输出位置”所在的OBS路径中,即“/test-modelarts/mnist-model/”路径,可以获取到生成的模型文件。

图 5-4 训练作业详情页面

步骤 3:编写推理代码和配置文件,并上传至模型所在路径

参考准备工作中的指导,获取推理代码“customize_service.py”和配置文件“config.json”。此推理代码和配置文件是ModelArts提供的示例。

在步骤2:训练模型中,训练作业生成的模型存储在“test-modelarts/mnist-model”路径下,且系统将自动生成“model”文件夹,模型相关的文件存储在此目录下。将获取的“customize_service.py”和“config.json”文件,上传至“model”文件夹下。

说明

如果训练作业运行多次,将“训练输出位置”生成不同的版本,即“mnist-model”目录下将生成多种版本的目录,如“V0001”、“V0002”,请基于训练作业的版本,将文件上传至对应版本下的“model”文件夹内。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 57

Page 62: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

前往OBS管理控制台,找到“test-modelarts”桶,然后进入“test-modelarts/mnist-model/model”路径,执行“上传对象”的操作。OBS的上传操作指导,请参见上传文件。

图 5-5 上传推理代码和配置文件

步骤 4:导入模型

训练完成的模型还是存储在OBS路径中,您可以将此模型导入到ModelArts中进行管理和部署。

1. 在ModelArts管理控制台中,单击左侧导航栏中的“模型管理>模型”,进入“模型”页面。

2. 在“模型”页面,单击“导入”。

3. 在“导入模型”页面,设置相关参数,然后单击“立即创建”。

– 设置模型的“名称”和“版本”。

– “元模型来源”:单击“从对象存储服务(OBS)中选择”页签,在“选择元模型”参数中,设置此模型所在的OBS路径,如“test-modelarts/MXNet-mnist/output/”,“AI引擎”会根据选择路径下的模型文件自动选择,当前示例使用的是“MXNet”引擎。

说明

选择模型所在路径时,请务必选择“model”文件夹的父目录,如果选择到“model”文件夹,将导致系统无法自动识别模型及配置文件,无法导入模型。

– “推理代码”:系统将根据选择的原模型信息,自动生成对应推理代码路径及文件名称。

图 5-6 导入模型页面

4. 模型导入完成后,系统将自动跳转至模型列表页面。您可以在模型列表页面查看已导入的模型及其版本。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 58

Page 63: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

步骤 5:部署上线

模型导入完成后,且模型状态为“正常”时,可以将模型部署上线,可部署为“在线服务”、“批量服务”或“边缘服务”。如下操作步骤以部署为在线服务为例。

1. 在“模型”页面,单击模型名称左侧的小三角,打开此模型下的所有版本。在对应版本所在行,单击操作列的“部署”,然后在下拉框中选择“在线服务”,进入“部署”页面。

2. 在“部署”页面中,设置相关参数,然后单击“下一步”。

设置在线服务的“名称”。在“选择模型及配置”区域中,系统将自动选择步骤步骤4:导入模型中的模型及其版本,在“计算节点规格”右侧下拉框中选择使用的资源,本示例选用“CPU:2核 8GiB”资源部署在线服务。

环境变量:在本示例中,由于推理代码和配置文件需要补充三个信息,请参考如下指导补充环境变量。

– “input_data_name”:参数值必须是images。针对自己开发训练脚本的场景,此参数是必须设置的。您可以在导入模型时设置参数,也可以写到推理代码中。

– “input_data_shape”:代表NCHW。本示例的数值为“0,1,28,28”,表示设置了输入图片的规则,其中,输入预测图片大小必须是“28px*28px”。

– “output_data_shape”:模型输出的类别数。本示例指定范围为“0,10”,表示输出结果会显示“0~9”中10个类别的数字,以及属于每一个类别的概率。此范围必须与训练代码中的类别数一致。

图 5-7 部署在线服务

3. 在“规格确认”页面,确认信息完毕后,单击“提交”。

4. 在“部署上线>在线服务”页面,您可以查看在线服务的相关信息。由于模型部署上线需要花费一些时间,请耐心等待几分钟。当在线服务的状态为“运行中”时,表示在线服务已部署完成。

步骤 6:测试服务

在线服务部署成功后,您可以进入在线服务,发起预测请求进行测试。

1. 在“在线服务”管理页面,单击在线服务名称,进入在线服务详情页面。

2. 在线服务详情页面中,单击“预测”页签,进入预测页面。

3. 在“选择预测图片文件”右侧,单击“上传”按钮,上传一张黑底白字的图片,然后单击“预测”。

预测完成后,预测结果显示区域将展示预测结果,根据预测结果内容,可识别出此图片的数字是“8”的概率为“1”。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 59

Page 64: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

说明

● 由于推理代码和配置文件中已指定图片要求,用于预测的图片,大小必须为“28px*28px”,且图片必须是黑底白字。

● 建议不要使用数据集中自带的图片,可以使用Windows自带的画图工具绘制一张。

● 本示例代码仅输出了Top5置信度的类别。

图 5-8 预测成功结果

步骤 7:清除相应资源,避免产生费用

为避免产生不必要的费用,在完成试用后,建议您删除相关资源,如在线服务、训练作业、数据及其OBS目录。

● 删除在线服务:在“在线服务”页面,单击操作列的“更多>删除”。

● 删除训练作业:在“训练作业”页面,单击操作列的“删除”。

● 删除数据:前往OBS,删除上传的数据,然后删除文件夹及OBS桶。

● 删除训练脚本和模型等文件:进入OBS管理控制台,删除相关文件夹及数据,然后再删除“test-modelarts”的桶。

5.2 使用 TensorFlow 实现手写数字识别本文介绍在华为云ModelArts平台如何使用TensorFlow实现MNIST数据集的手写数字图像识别应用。

开始使用如下样例前,请务必按准备工作指导完成必要操作。使用TensorFlow实现手写数字图像识别样例的操作流程如下所示。

1. 准备数据:获取MNIST数据集,并上传至OBS。

2. 训练模型:使用TensorFlow框架编写模型训练脚本,并新建训练作业进行模型训练。

3. 部署模型:训练结束后,将模型导入ModelArts,并将模型部署为在线服务。

4. 预测结果:发起预测请求获取预测结果。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 60

Page 65: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

准备工作● 已注册华为云帐号,且在使用ModelArts前检查帐号状态,帐号不能处于欠费或冻

结状态。

● 当前帐号已完成访问授权的配置。如未完成,请参考使用委托授权。针对之前使用访问密钥授权的用户,建议清空授权,然后使用委托进行授权。

● 已在OBS服务中创建桶和文件夹,用于存放样例数据集以及模型。如下示例中,请创建命名为“test-modelarts”的桶,并创建如表5-3所示的文件夹。

创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。请确保您使用的OBS与ModelArts在同一区域。

表 5-3 文件夹列表

文件夹名称 用途

“dataset-mnist” 用于存储数据集。

“mnist-tensorflow-code”

用于存储训练脚本。

“mnist-model” 用于存储训练输出的模型和预测文件。

● 针对此示例,ModelArts提供了部署上线需使用的训练脚本、推理代码和配置文

件。请获取示例文件并上传OBS指定路径,详细请参见表5-4。

a. 在gitee的ModelArts-Lab工程中,单击“克隆/下载”,然后单击“下载ZIP”,下载工程。

b. 下载完成后,解压缩“ModelArts-Lab-master.zip”文件,然后在“\ModelArts-Lab-master\official_examples\Using_TensorFlow_to_Create_a_MNIST_Dataset_Recognition_Application\codes”目录中获取到训练脚本“train_mnist_tf.py”、推理代码“customize_service.py”和配置文件“config.json”,并上传至对应OBS路径。上传文件至OBS的操作指导请参见上传文件。

表 5-4 上传示例文件至 OBS

文件名称 描述 上传至如下OBS路径中

“train_mnist_tf.py”

训练脚本。 “test-modelarts/mnist-tensorflow-code”

“customize_service.py”

推理代码。 “test-modelarts/mnist-model/model”说明

● 请在训练作业完成后,再执行上传操作。

● 如果训练作业运行多次,将生成不同的版本,“mnist-model”目录下将生成多种版本的目录,如“V0001”、“V0002”,请基于训练作业的版本,将文件上传至对应版本下的“model”文件夹内。

“config.json” 配置文件。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 61

Page 66: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

准备数据

ModelArts在公共OBS桶中提供了MNIST数据集,命名为“Mnist-Data-Set”,因此,本文的操作示例使用此数据集进行模型构建。您需要执行如下操作,将数据集上传至您的OBS目录下,即准备工作中您创建的OBS目录“test-modelarts/dataset-mnist”。

1. 单击数据集下载链接,将“Mnist-Data-Set”数据集下载至本地。

2. 在本地,将“Mnist-Data-Set.zip”压缩包解压。例如,解压至本地“Mnist-Data-Set”文件夹下。

3. 参考上传文件,使用批量上传方式将“Mnist-Data-Set”文件夹下的所有文件上传至“test-modelarts/dataset-mnist”OBS路径下。

“Mnist-Data-Set”数据集包含的内容如下所示,其中“.gz”为对应的压缩包。

– “t10k-images-idx3-ubyte”:验证集,共包含10000个样本。

– “t10k-images-idx3-ubyte.gz”:验证集的压缩包文件。

– “t10k-labels-idx1-ubyte”:验证集标签,共包含10000个样本的类别标签。

– “t10k-labels-idx1-ubyte.gz”:验证集标签的压缩包文件。

– “train-images-idx3-ubyte”:训练集,共包含60000个样本。

– “train-images-idx3-ubyte.gz”:训练集的压缩包文件。

– “train-labels-idx1-ubyte”:训练集标签,共包含60000个样本的类别标签。

– “train-labels-idx1-ubyte.gz”:训练集标签的压缩包文件。

训练模型

数据准备完成后,您需要使用TensorFlow编写训练脚本代码,ModelArts提供了一个编写好的代码示例“train_mnist_tf.py”,如下操作使用此示例训练模型。

1. 参考准备工作的操作指导,将“train_mnist_tf.py”文件上传至OBS,例如“test-modelarts/mnist-tensorflow-code”。

2. 在ModelArts管理控制台,进入“训练管理 > 训练作业”页面,单击左上角的“创建”。

3. 在“创建训练作业”页面,参考图5-9和图5-10填写相关信息,然后单击“下一步”。

图 5-9 创建训练作业-填写基本信息

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 62

Page 67: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 5-10 创建训练作业-填写详细参数

4. 在“规格确认”页面,确认训练作业的参数信息,确认无误后单击“提交”。

5. 在训练作业管理页面,当训练作业变为“运行成功”时,即完成了模型训练过程。如有问题,可单击作业名称,进入作业详情界面查看训练作业日志信息。

说明

训练作业需要花费一些时间,预计十几分钟。当训练时间超过一定时间(如1个小时),请及时手动停止,释放资源。否则会导致欠费,尤其对于使用GPU训练的模型项目。

6. (可选)在模型训练的过程中或者完成后,可以通过创建可视化作业查看一些参数的统计信息。详细操作指导请参见创建可视化作业。

其中,“训练输出位置”请选择步骤训练作业中“训练输出位置”参数中的路径,如“/test-modelarts/mnist-model/”。根据界面提示完成可视化作业创建。

部署模型

模型训练完成后,可以创建预测作业,将模型部署为在线预测服务。在部署模型之前,获取推理代码“customize_service.py”和配置文件“config.json”并上传至OBS中。此推理代码和配置文件为ModelArts为操作样例提供的示例。您也可以基于模型包规范,开发自己所需的推理代码及配置文件。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 63

Page 68: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

1. 在部署模型之前,请参见准备工作,将推理代码和配置文件上传至对应OBS路径下。本示例中模型输出位置的OBS路径为“test-modelarts/mnist-model/model”。

2. 在ModelArts管理控制台,单击左侧导航栏中的“模型管理>模型”,进入“模型”页面,单击“导入”。

3. 在“导入模型”页面,参考图5-11填写相关参数,然后单击“立即创建”。

在“元模型来源”中,选择“从对象存储服务(OBS)中选择”页签。然后在“选择元模型”右侧文本框选择训练作业中“训练输出位置”指定的路径。

图 5-11 导入模型

在“模型列表”页面,当模型状态变为“正常”时,表示模型已导入成功。

4. 单击模型名称左侧的小三角,打开此模型下的所有版本。在对应版本所在行,单击操作列“部署>在线服务”,将模型部署为在线服务。

在“部署”页面,参考图5-12填写参数,然后根据界面提示完成在线服务创建。

图 5-12 部署模型

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 64

Page 69: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

预测结果

完成模型部署后,等待服务部署完成,当服务状态显示为“运行中”,表示服务已部署成功。

1. 在“在线服务”页面,单击在线服务名称,进入服务详情页面。

2. 单击“预测”页签,在“选择预测图片文件”右侧,单击“上传”按钮选择一张黑底白字的图片,然后单击“预测”。

预测完成后,预测结果显示区域将展示预测结果,根据预测结果内容,可识别出此图片的数字是“1”。

说明

● 由于推理代码和配置文件中已指定图片要求,用于预测的图片,大小必须为“28px*28px”,且图片必须是黑底白字。

● 建议不要使用数据集中自带的图片,可以使用Windows自带的画图工具绘制一张。

图 5-13 预测结果展示

3. 如果不再需要使用此模型及在线服务,建议清除相关资源,避免产生不必要的费用。

– 在“在线服务”页面,“停止”或“删除”刚创建的在线服务。

– 在“模型管理”页面,“删除”刚导入的模型。

– 在“训练作业”页面,“删除”运行结束的训练作业。

– 进入OBS,删除本示例使用的OBS桶及文件夹,以及文件夹的文件。

5.3 使用 Caffe 实现手写数字识别本章节介绍在ModelArts平台如何使用Caffe实现MNIST数据集的手写数字图像识别应用。

使用Caffe实现手写数字图像识别样例的操作流程如下所示。

1. 准备数据:获取MNIST数据集,并上传至OBS。

2. 编写模型:编写训练脚本,并编写prototxt文件定义网络结构和配置网络训练时各种参数,然后上传至OBS桶中。

3. 训练模型:使用ModelArts服务,新建训练作业进行模型训练。

4. 部署模型:训练结束后,将模型导入ModelArts,并将模型部署为在线服务。

5. 预测结果:发起预测请求获取预测结果。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 65

Page 70: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

准备数据

ModelArts在公共OBS桶中提供了MNIST数据集,命名为“Mnist-Data-Set”,因此,本文的操作示例使用此数据集进行模型构建。您需要执行如下操作,将数据集上传至您的OBS目录下,即准备工作中您创建的OBS目录“test-modelarts/dataset-mnist”。

1. 单击数据集下载链接,将“Mnist-Data-Set”数据集下载至本地。

2. 在本地,将“Mnist-Data-Set.zip”压缩包解压。例如,解压至本地“Mnist-Data-Set”文件夹下。

3. 参考上传文件,使用批量上传方式将“Mnist-Data-Set”文件夹下的所有文件上传至“test-modelarts/dataset-mnist”OBS路径下。

“Mnist-Data-Set”数据集包含的内容如下所示,其中“.gz”为对应的压缩包。

– “t10k-images-idx3-ubyte”:验证集,共包含10000个样本。

– “t10k-images-idx3-ubyte.gz”:验证集的压缩包文件。

– “t10k-labels-idx1-ubyte”:验证集标签,共包含10000个样本的类别标签。

– “t10k-labels-idx1-ubyte.gz”:验证集标签的压缩包文件。

– “train-images-idx3-ubyte”:训练集,共包含60000个样本。

– “train-images-idx3-ubyte.gz”:训练集的压缩包文件。

– “train-labels-idx1-ubyte”:训练集标签,共包含60000个样本的类别标签。

– “train-labels-idx1-ubyte.gz”:训练集标签的压缩包文件。

编写模型

数据完成准备后,您需要基于Caffe接口编写模型及其相关的配置文件。在本示例中,ModelArts提供了已编写好的训练脚本和相关配置文件。

1. 从gitee下载ModelArts-Lab工程,解压缩文件,并在“ModelArts-Lab”工程的“ModelArts-Lab-master\official_examples\Using_Caffe_to_Create_a_MNIST_Dataset_Recognition_Application\codes”目录下获取“train.py”和“src”文件夹。其中,“src”文件夹包含文件及其介绍请参见表5-5。

表 5-5 示例代码文件

文件 描述

“train.py” 训练脚本。

“src/lenet_solver.prototxt”

配置训练时参数的prototxt文件。

“src/lenet_train_test.prototxt”

训练时的网络结构文件。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 66

Page 71: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

文件 描述

“src/lenet_deploy.prototxt”

推理模型。

“src/customize_service.py”

推理脚本。

“src/config.json”

推理使用的配置文件。

2. 将获取的文件上传至OBS中。例如“/test-modelarts/caffe/codes/”,结构如下

所示。

说明

由于配置文件和训练脚本已编写了绝对路径,建议您直接上传的OBS文件夹必须以“codes”命名。

test-modelarts |--caffe |--codes |--train.py |--src |--lenet_solver.prototxt |--lenet_train_test.prototxt |--lenet_deploy.prototxt |--customize_service.py |--config.json

训练模型

后,利用已经上传的数据集和训练程序脚本完成模型训练,训练结束后,将在指定目录生成模型。

1. 在ModelArts管理控制台,进入“训练管理 > 训练作业”页面,单击左上角的“创建”。

2. 在“创建训练作业”页面,参考图5-14和图5-15填写相关信息,然后单击“下一步”。

“算法来源”:选择的代码目录必须包含表5-5所示文件,且必须使用命名为“codes”文件目录。

“数据来源”:选择数据存储位置,然后选择数据集存储的OBS路径。

“运行参数”:“data_path_suffix”用于指定代码目录的 后一级目录名称,本示例为“data_path_suffix=codes”。如果此处不设置codes目录,训练作业将执行失败。

“资源池”:由于训练时间较长,建议选择GPU资源池。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 67

Page 72: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 5-14 创建训练作业-基本信息

图 5-15 创建训练作业-详细参数

3. 在“规格确认”页面,确认训练作业的参数信息,确认无误后单击“提交”。

4. 在训练作业管理页面,当训练作业变为“运行成功”时,即完成了模型训练过程。如有问题,可单击作业名称,进入作业详情界面查看训练作业日志信息。

系统将生成的模型存储在此训练输出位置下的model文件夹中,您可以在前往OBS查看生成的模型文件。本示例中,生成的模型存储在“/test-modelarts/caffe/mnist-model/model”目录下。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 68

Page 73: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

说明

训练作业需要花费一些时间,预计十几分钟。当训练时间超过一定时间(如1个小时),请及时手动停止,释放资源。否则会导致欠费,尤其对于使用GPU训练的模型项目。

部署模型

模型训练完成后,可以将模型部署为在线预测服务。在部署模型之前,确保准备数据中的推理代码和配置文件已按要求上传。您也可以基于模型包规范,开发自己所需的推理代码及配置文件。

1. 在ModelArts管理控制台,单击左侧导航栏中的“模型管理>模型”,进入“模型”页面,单击“导入”。

2. 在“导入模型”页面,参考图5-16填写相关参数,然后单击“立即创建”。

在“元模型来源”中,选择“从对象存储服务(OBS)中选择”页签。然后在“选择元模型”右侧文本框选择训练作业中“训练输出位置”指定的路径。

图 5-16 导入模型

在“模型列表”页面,当模型状态变为“正常”时,表示模型已导入成功。

3. 单击模型名称左侧的小三角,打开此模型下的所有版本。在对应版本所在行,单击操作列“部署>在线服务”,将模型部署为在线服务。

在“部署”页面,参考图5-17填写参数,然后根据界面提示完成在线服务创建。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 69

Page 74: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 5-17 部署模型

预测结果

完成模型部署后,等待服务部署完成,当服务状态显示为“运行中”,表示服务已部署成功。

1. 在“在线服务”页面,单击在线服务名称,进入服务详情页面。

2. 单击“预测”页签,在“选择预测图片文件”右侧,单击“上传”按钮选择一张黑底白字的图片,然后单击“预测”。

预测完成后,预测结果显示区域将展示预测结果,根据预测结果内容,可识别出此图片的数字是“1”。

说明

● 由于推理代码和配置文件中已指定图片要求,用于预测的图片,大小必须为“28px*28px”,且图片必须是黑底白字。

● 建议不要使用数据集中自带的图片,可以使用Windows自带的画图工具绘制一张。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 70

Page 75: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 5-18 预测结果展示

3. 如果不再需要使用此模型及在线服务,建议清除相关资源,避免产生不必要的费用。

– 在“在线服务”页面,“停止”或“删除”刚创建的在线服务。

– 在“模型管理”页面,“删除”刚导入的模型。

– 在“训练作业”页面,“删除”运行结束的训练作业。

– 进入OBS,删除本示例使用的OBS桶及文件夹,以及文件夹的文件。

5.4 使用 Spark MLlib 实现精准推荐消费无处不在,但每一次消费行为带给人们的感受却或好或坏。在时间成本高昂的背景下,消费者不希望花太多时间就能找到自己喜欢的事物。而快速、准确的消费品推荐,可显著降低消费者寻找的时间成本,不仅提升用户消费感受,也能提高商家的销售量。

您可以使用ModelArts平台上的Spark MLlib算法,提供精准营销的方向和辅助决策,提升消费品转化率和商家利润,改善消费者的消费体验。

开始使用如下样例前,请务必按准备工作指导完成必要操作。精准推荐样例的操作流程如下所示。

1. 准备数据:下载数据集、示例代码,然后上传至OBS桶中。

2. 训练模型:编写基于Spark MLlib中ALS算法的模型训练脚本,新建训练作业进行模型训练。

3. 部署模型:得到训练好的模型文件后,新建预测作业将模型部署为在线预测服务。

4. 预测结果:发起预测请求获取预测结果。

准备数据

ModelArts提供了用于训练的数据集和示例代码,执行如下步骤,下载数据集和示例代码,并上传至OBS中。

1. 在gitee的ModelArts-Lab工程中,单击“克隆/下载”,然后单击“下载ZIP”,下载工程。

2. 下载完成后,将“ModelArts-Lab-master.zip”文件解压缩,然后在“ModelArts-Lab-master\official_examples

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 71

Page 76: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

\Using_Spark_MLlib_to_Create_a_Precise_Recommendation_Application”目录中获取到训练数据集“ratings.csv”和示例代码“trainmodelsp.py” “customize_service.py”。

表 5-6 获取的文件说明

文件名称 说明

“ratings.csv” 训练数据集。数据集的详情如表5-7和表5-8所示。

“trainmodelsp.py” 训练脚本。示例代码是使用ALS算法编写的Python训练脚本。

“customize_service.py”

用户自定义的预测脚本,需与训练脚本“trainmodelsp.py”上传至相同OBS目录下。训练过程中,将被自动拷贝至相应的模型目录下。

表 5-7 数据源的具体字段及意义

字段名 含义 类型 描述

attr_1 用户ID Int 消费者标识。

attr_2 商品ID Int 消费品标识。

attr_3 评分 Real 消费者对消费品的评分(1-5)。

表 5-8 数据集样本数据

attr_1 attr_2 attr_3

1 146 5

1 1198 4

1 611 4

2 914 3

2 146 4

3. 进入OBS管理控制台,新建桶和文件夹,分别用于存储训练数据集和示例代码。

例如新建“test-modelarts”桶,并在此桶下新建“sparkml/data”和“sparkml/code”文件夹。

“sparkml/data”用于存放训练数据集“ratings.csv”,“sparkml/code”用于存放示例代码“trainmodelsp.py”和“customize_service.py”。

4. 将步骤2中获取的文件,上传至对应OBS路径下,即“sparkml/data”和“sparkml/code”文件夹。OBS上传文件的操作指导,请参见上传文件。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 72

Page 77: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

训练模型

1. 在ModelArts管理控制台,进入“训练管理 > 训练作业”页面,单击左上角的“创建”。

2. 如图5-19和图5-20所示,参考图中示例,填写训练作业相关参数,然后单击“下一步”。

其中,“数据来源”和“算法来源”即准备数据上传的OBS路径及文件。“训练输出位置”,建议新建一个OBS文件夹,用于存储训练输出的模型及其预测文件,例如“sparkml/output”。

图 5-19 创建训练作业-基本信息

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 73

Page 78: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 5-20 创建训练作业-参数设置

3. 在规格确认页面,确认信息无误后,单击“提交”。

4. 在“训练管理 > 训练作业”管理页面,当训练作业变为“运行成功”时,即完成了模型训练过程。如有问题,可单击作业名称,进入作业详情界面查看训练作业日志信息。

说明

训练作业需要花费一些时间,预计十几分钟。当训练时间超过一定时间(如1个小时),请及时手动停止,释放资源。否则会导致欠费,尤其对于使用GPU训练的模型项目。

部署模型

待训练作业运行完成后,可以将训练好的模型发布成预测服务。

1. 在“模型”页面,单击左上角“导入”,进入“导入模型”页面。

2. 如图5-21所示,参考图片示例填写参数,然后单击“立即创建”。

其中,“选择元模型”的路径为训练作业中“训练输出位置”指定的路径。同时,系统将从选择的路径下自动匹配到训练作业生成的推理代码。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 74

Page 79: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 5-21 导入模型

3. 在模型列表中,当创建的模型处于“正常”状态时,表示模型导入成功。单击模型名称左侧的小三角,打开此模型下的所有版本。在对应版本所在行,您可以在操作列单击“部署>在线服务”,将模型部署为在线服务。

4. 在“部署”页面,请参考图5-22中的示例填写参数,然后单击“下一步”。

图 5-22 部署

5. 在“规格确认”页面,确认信息无误后的,单击“提交”。

6. 在线服务创建完成后,系统自动跳转至“部署上线>在线服务”页面。服务部署需要一定时间,耐心等待即可。当服务状态变为“运行中”时,表示服务部署成功。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 75

Page 80: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

预测结果

待部署模型运行完成后,可以验证发布的预测服务是否正常。

1. 在“部署上线>在线服务”页面,单击服务名称进入详情页面。

2. 在“预测”页签,参考图 测试服务所示样例,输入预测代码,然后单击“预测”。在右侧“返回结果”中,查看预测结果。

预测请求代码如下所示。{"data": {"req_data": [{"input_1": 2,"input_2": 21}]}}

图 5-23 测试服务

3. 在“调用指南”页签,可以获取调用API接口,并使用Postman工具进行测试。

图 5-24 调用指南

5.5 使用 MXNet 实现 Caltech 图像识别本示例介绍在ModelArts平台如何使用深度学习框架MXNet训练Caltech数据集,并把得到的模型发布成一个可用的推理服务。

首先,参考准备工作完成前期准备,然后,参考如下基本流程使用MXNet完成Caltech图像识别应用。

1. 准备数据:获取Caltech101数据集,并上传至OBS。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 76

Page 81: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

2. 训练模型:使用MXNet原生接口编写模型训练脚本,新建训练作业进行模型训练。

3. 部署模型:得到训练好的模型文件后,新建预测作业将模型部署为在线预测服务。

4. 预测结果:发起预测请求获取预测结果。

如果您了解MXNet引擎,且想基于此示例进行更多操作,请参见进阶使用说明了解更多。

准备工作● 在OBS管理控制台,新建桶和文件夹,用于存储数据和示例代码文件。本示例使

用的桶和文件夹如表5-9所示。

表 5-9 需要新建的桶和文件夹

OBS桶 文件夹 用途

test-modelarts

Caltech 用于存储Caltech数据集。

codes 用于存储示例代码。

caltech-log 用于存储生成的模型文件。

● 从gitee下载ModelArts-Lab工程,并在“ModelArts-Lab”工程中获取codes文件夹中的示例代码,并上传至OBS中。详细文件及对应OBS路径请参见表5-10。

表 5-10 获取示例文件并上传 OBS

获取的文件 存储的OBS路径

● “train_caltech.py”

● “libimageaugdefault.so”

● “symbol”目录及其下所有文件

“test-modelarts/codes”

● “customize_service.py”

● “config.json”

“test-modelarts/caltech-log/model”说明

● 请在训练作业完成后,再执行上传操作。

● 如果训练作业运行多次,将生成不同的版本,“caltech-log”目录下将生成多种版本的目录,如“V0001”、“V0002”,请基于训练作业的版本,将文件上传至对应版本下的“model”文件夹内。

准备数据

Caltech101数据集是加利福尼亚理工学院提供的101类(加一个背景类)开源图像数据集,每一类大约有40~800张左右的图片,每张图片是接近300×200大小不等的。关于该数据集详细请参见Caltech 101。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 77

Page 82: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

ModelArts已将Caltech101数据集存储到OBS公共桶中,且命名为“Caltech101-data-set”。您可以通过如下步骤获取数据集,并上传至OBS桶对应的文件夹下。例如本示例中的路径为“test-modelarts/Caltech/data”。

1. 单击数据集下载链接,将“Caltech101-data-set”数据集下载至本地。

2. 在本地,将“Caltech101-data-set.zip”压缩包解压。例如,解压至本地“Caltech101-data-set”文件夹下。

3. 参考上传文件,使用批量上传方式将“Caltech101-data-set”文件夹下的所有文件上传至“test-modelarts/Caltech/data”OBS路径下。

为了方便进行预处理操作,已经制作好了MXNet使用的“rec”文件。需要说明的是,在深度学习领域,训练之前一般会把数据集按“6:2:2”的比例分成训练集、验证集和测试集。训练集就是训练时使用的数据集,验证集是在训练过程中评估模型好坏的数据集,测试集是在训练完成以后评估模型的数据集。由于本示例不需要评估模型 终的结果如何,所以没有使用测试集,直接按“8:2”分成了训练集和验证集。“train”是训练集,“val”是验证集。数据集中的“lst”文件和“idx”文件,“lst”文件里是图片路径的列表,即“train”和“val”数据集里各有哪些图片。“idx”文件可以帮忙做shuffle的文件,但是开发者在训练模型时不需要此文件,整个示例操作过程中不需关注。

训练模型

数据准备完成后,您需要使用MXNet接口编写训练脚本代码。ModelArts提供了一个编写好的代码示例,train_caltech.py,如下操作使用此示例训练模型。

本示例使用深度卷积神经网络resnet进行了训练,resnet的卷积层个数可选为“18”、“34”、“50”。在可选的“18”、“34”、“50”情况下,模型层数越大,代表模型越深,训练所需的时间越长,模型准确率能更好。resnet是常用的图像分类卷积神经网络之一。

1. 请参见准备工作,将“codes”目录下训练作业所需文件上传至OBS,例如“test-modelarts/Caltech/code”。

说明

● codes目录下训练模型所需文件为:“train_caltech.py”、“libimageaugdefault.so”和“symbol”目录下所有文件。

● OBS中用于存储训练脚本的文件夹必须命名为“codes”。否则训练作业将执行失败。

2. 在ModelArts管理控制台,进入“训练管理 > 训练作业”页面,单击左上角的“创建”。

3. 在“创建训练作业”页面,参考图5-25和图5-26填写相关信息,然后单击“下一步”。

“算法来源”:设置为“train_caltech.py”示例脚本所在路径。

“数据来源”:设置为Caltech101示例数据存储的路径。

“运行参数”:增加“max_epoches=10”参数。针对“max_epoches”参数,1个epoch代表整个数据集训练一遍,此运行参数表示训练10个epoch,数值可更改,不填写时使用默认值(默认值为100),“max_epoches”值越大训练时间越长。更多运行参数的指导请参见表5-11。

说明

● AI引擎请务必选择“MXNet”,“MXNet-1.2.1-python3.6”。由于示例代码已编写其使用引擎版本,如果使用“MXNet-1.2.1-python2.7”,训练作业将运行失败。

● 由于此训练作业数据量较大,运行时间较长,建议选择GPU资源。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 78

Page 83: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 5-25 创建训练作业-填写基本信息

图 5-26 创建训练作业-详细参数

图 5-27 创建训练作业-资源规格

4. 在“规格确认”页面,确认训练作业的参数信息,确认无误后单击“提交”。

5. 在训练作业管理页面,当训练作业变为“运行成功”时,即完成了模型训练过程。如有问题,可单击作业名称,进入作业详情界面查看训练作业日志信息。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 79

Page 84: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

说明

训练作业需要花费一些时间,预计十几分钟。当训练时间超过一定时间(如1个小时),请及时手动停止,释放资源。否则会导致欠费,尤其对于使用GPU训练的模型项目。

6. (可选)在模型训练的过程中或者完成后,可以通过创建可视化作业查看一些参数的统计信息。详细操作指导请参见创建可视化作业。

其中,“训练输出位置”请选择步骤训练作业中“训练输出位置”参数中的路径。根据界面提示完成可视化作业创建。

表 5-11 运行参数说明

参数 说明

num_epochs 训练需要迭代的次数,默认为“30”。

batch_size 训练的每次更新包含的样本数量大小, 默认为“128”。

lr 学习率,默认为“0.1”。

lr_step 学习率减小的epoch,默认为“16,24,27”。也就是说学习率会在第16个epoch结束时减小为原来的0.1倍,为0.01,第24、27epoch同理。

num_layers resnet模型的卷积层数,可供选择的有“18”、“34”、“50”,默认为“34”

disp_batches 每隔多少步输出一次,默认为“20”。

部署模型

模型训练完成后,可以创建预测作业,将模型部署为在线预测服务。在部署模型之前,获取推理代码“customize_service.py”和配置文件“config.json”并上传至OBS中。此推理代码和配置文件为ModelArts为操作样例提供的示例。您也可以基于模型包规范,开发自己所需的推理代码及配置文件。

1. 在部署模型之前,请参见准备工作,将推理代码和配置文件上传至对应OBS路径下。本示例使用的OBS路径为“/test-modelarts/Caltech/output/”。

2. 在ModelArts管理控制台,单击左侧导航栏中的“模型管理>模型”,进入“模型”页面,单击“导入”。

3. 在“导入”页面,参考图5-28填写相关参数,然后单击“立即创建”。

在“元模型来源”中,选择“从对象存储服务(OBS)中选择”页签。然后在“选择元模型”右侧文本框选择训练作业中“训练输出位置”指定的路径。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 80

Page 85: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 5-28 导入训练模型

在“模型”页面,当模型状态变为“正常”时,表示模型已导入成功。

4. 单击模型名称左侧的小三角,打开此模型下的所有版本。在对应版本所在行,单击操作列“部署>在线服务”,将模型部署为在线服务。

在“部署”页面,系统自动选择上一步骤导入的模型,然后根据界面提示完成在线服务创建。

图 5-29 部署模型为在线服务

预测结果

完成模型部署后,等待服务部署完成,当服务状态显示为“运行中”,表示服务已部署成功。

1. 在“在线服务”页面,单击在线服务名称,进入服务详情页面。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 81

Page 86: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

2. 单击“预测”页签,然后单击“上传”选择本地用于预测的图片,然后单击“预测”。

“predicted_label”:表示模型 终认为这张图片的归类,这里我们可以看到输出的是“laptop”也就是笔记本电脑,表示模型预测正确。

“scores”:置信度,也就是模型认为这张图片属于某一类的概率。会输出概率高的前五项,是在网络的 后一层加入了softmax层转化来的。

图 5-30 图片预测

3. 如果不在需要使用此模型及在线服务,建议清除相关资源,避免产生不必要的费用。

– 在“在线服务”页面,“停止”或“删除”刚创建的在线服务。

– 进入OBS,删除本示例使用的OBS桶及文件夹,以及文件夹的文件。

– 删除数据:前往OBS,删除上传的数据,然后删除文件夹及OBS桶。

进阶使用说明

● 优化模型

当然,并不是所有的图片都能够预测正确,比如本实验如果使用的全都是默认的参数去进行训练,在验证集上差不多只有78%左右的准确率。如果对结果不满意,或者想自己尝试让深度学习的模型效果更加好,可以调节下列参数“num_epochs”、“batch_size”、“lr”、“lr_step”、“num_layers”,详细参数说明请参见表5-11。在训练日志中,每个epoch结束都会输出模型当前在验证集上的表现,如图5-31所示,可以通过这些变化来观察改动了上述参数后对训练模型有什么样的影响。

图 5-31 训练输出日志

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 82

Page 87: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

表 5-12 指标值解释

指标值 说明

Validation-accuracy 预测的置信度 高的类别是正确的比例,即上述推理测试时输出predicted_label正确占总预测结果的比例,结果越高,模型越好。在深度学习领域一般称为top-1

Validation-cross-entropy

交叉熵,用来评判对每一类预测准确率的损失值,越小越好

Validation-top_k_accuracy_5

预测的置信度 高的前5类中如果有正确的那一类,就认为这次预测是正确的。在深度学习领域一般称为top-5,同样,结果越高,模型越好。

数值的改变并不能提供一个直观的模型效果提升,建议使用更多测试图片,图片在现有的模型上有的能预测正确,有的不能。例如,如图5-32所示图片,这张图片概率排在第二的是预测正确的,也就是top5是正确的。经过调参,可以让这张图片预测的结果变成正确的,同样,也可能将原来那些预测不正确的图片预测正确,这就是对模型的能力有一定提升。当然,如果会使用MXNet,完全可以自己修改代码或者制作自己的rec文件来进行训练,ModelArts同样提供开发环境可以让使用者直接在云上修改代码,详情操作请参见•使用开发环境修改模型。

图 5-32 预测错误的图片

● 使用开发环境修改模型

如下操作只针对想使用开发环境在云上修改代码或者修改文件的使用者。

a. 在ModelArts管理控制台,在左侧导航栏中选择“开发环境>Notebook”,在“Notebook”页面,单击“创建”,创建一个新的Notebook。

b. 在创建Notebook页面,根据界面提示填写参数,详细指导请参见创建Notebook实例。。

c. 当Notebook状态变为运行中时,单击操作列打开,进入Jupyter页面。在Jupyter界面可以直接打开相应文件进行更改然后保存,也可以在右上角的“New”中创建Python环境运行代码做调试,或者新建“Terminal”(linux云上开发环境)去调试代码。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 83

Page 88: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

说明

如果不需要使用Notebook时,请及时在“Notebook”页面停止服务,避免造成欠费。

5.6 使用 Spark MLlib 实现车辆满意度测评使用KNN分类算法进行车辆满意度测评,选用经典的Car Evaluation数据集,通过对六个特征值进行测评,得到用户对车辆的满意程度。

KNN Classification(K 近邻分类)算法用于产生二分类或多分类模型。基本思想是,如果一个样本在特征空间k个 邻近样本中,大多数属于某一个类别,则该样本也属于这个类别。该算法对噪声具有较好的鲁棒性,并且可以较好的避免样本数量不平衡的问题。其中k是用户指定的整数值,该参数的选取高度依赖输入数据,通常较大的k会抑制噪声的影响,但同时也会使得分类边界变得模糊。该算法适合数据记录数小于100万,维度小于100维的分类场景。在二分类问题中,选取k为奇数有助于避免两个分类平票的情形。

本示例介绍如何使用Spark MLlib引擎的KNN分类算法实现车辆满意度测评应用。车辆满意度测评样例的操作流程如下所示。

1. 准备数据:下载数据集、示例代码,然后上传至OBS桶中。

2. 训练模型:编写基于Spark MLlib中ALS算法的模型训练脚本,新建训练作业进行模型训练。

3. 部署模型:得到训练好的模型文件后,新建预测作业将模型部署为在线预测服务。

4. 预测结果:发起预测请求获取预测结果。

准备数据

ModelArts提供了用于训练的数据集和示例代码,执行如下步骤,下载数据集和示例代码,并上传至OBS中。

1. 在gitee的ModelArts-Lab工程中,单击“克隆/下载”,然后单击“下载ZIP”,下载工程。

2. 下载完成后,解压缩“ModelArts-Lab-master.zip”文件,然后在“\ModelArts-Lab-master\official_examples\Using_Spark_MLlib_to_Create_a_Car_Evaluation_Application”目录中获取到训练数据集和示例代码。

表 5-13 文件说明

文件名称 说明

“car.csv” 训练数据集。数据集的详情如表5-14所示。

“car_meta.desc”

元数据文件。

“knn_classification.py”

使用ALS算法编写的训练脚本。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 84

Page 89: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

文件名称 说明

“customize_service.py”

用户自定义的预测脚本,需与训练脚本“knn_classification.py”存储在相同OBS目录下。训练过程中,将被自动拷贝至相应的模型目录下。

表 5-14 部分样本数据

buying_price

maint_price

doors persons lug_boot

safety acceptability

vhigh vhigh 2 2 small low unacc

vhigh vhigh 2 2 small med unacc

vhigh vhigh 2 2 small high unacc

vhigh vhigh 2 2 med low unacc

3. 进入OBS管理控制台,新建桶和文件夹,分别用于存储训练数据集和示例代码。

例如新建“test-modelarts2”桶,并在此桶下新建“sparkml/car/data”和“sparkml/car/code”文件夹。

4. 将步骤2中获取的文件,上传至对应OBS路径下,即“sparkml/car/data”和“sparkml/car/code”文件夹。OBS上传文件的操作指导,请参见上传文件。

训练模型

1. 在ModelArts管理控制台,进入“训练管理 > 训练作业”页面,单击左上角的“创建”。

2. 如图2 创建训练作业-基本信息和图3 创建训练作业-详细参数 所示,参考图中示例,填写训练作业相关参数,然后单击“下一步”。

其中,“数据来源”和“算法来源”即准备数据上传的OBS路径及文件。“训练输出位置”,建议新建一个OBS文件夹,用于存储训练输出的模型及其预测文件,例如“test-modelarts/car/output”。

图 5-33 创建训练作业-基本信息

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 85

Page 90: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 5-34 创建训练作业-详细参数

3. 在规格确认页面,确认信息无误后,单击“提交”。

4. 在“训练作业”管理页面,当训练作业变为“运行成功”时,即完成了模型训练过程。如有问题,可单击作业名称,进入作业详情界面查看训练作业日志信息。

说明

训练作业需要花费一些时间,预计十几分钟。当训练时间超过一定时间(如1个小时),请及时手动停止,释放资源。否则会导致欠费,尤其对于使用GPU训练的模型项目。

部署模型

待训练作业运行完成后,可以将训练好的模型发布成预测服务。

1. 在“模型”页面,单击左上角“导入”,进入“导入模型”页面。

2. 如图5-35所示,参考图片示例填写参数,然后单击“立即创建”。

其中,“选择原模型”的路径为训练作业中“训练输出位置”指定的路径。同时,系统将从选择的路径下自动匹配到“AI引擎”和“推理代码”。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 86

Page 91: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 5-35 导入模型

3. 在模型列表中,当创建的模型处于“正常”状态时,表示模型导入成功。您可以在操作列单击“部署>在线服务”,将模型部署为在线服务。

4. 在“部署”页面,请参考图5-36中的示例填写参数,然后单击“下一步”。

图 5-36 部署服务

5. 在“规格确认”页面,确认信息无误后的,单击“提交”。

6. 在线服务创建完成后,系统自动跳转至“部署上线>在线服务”页面。服务部署需要一定时间,耐心等待即可。当服务状态变为“运行中”时,表示服务部署成功。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 87

Page 92: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

预测结果

待部署模型运行完成后,可以验证发布的预测服务是否正常。

1. 在“部署上线>在线服务”页面,单击服务名称进入详情页面

2. 在“预测”页签,参考图6 测试服务所示样例,输入预测代码,然后单击“预测”。在右侧“返回结果”中,查看预测结果。

预测请求示例代码如下所示。{ "data": { "req_data": [ { "buying_price": "high", "maint_price": "high", "doors": "2", "persons": "2", "lug_boot": "small", "safety": "low", "acceptability": "acc" }, { "buying_price": "high", "maint_price": "high", "doors": "2", "persons": "2", "lug_boot": "small", "safety": "low", "acceptability": "acc" } ] }}

图 5-37 测试服务

3. 在“调用指南”页签,可以获取调用API接口,并使用Postman工具进行测试。

5.7 使用 Spark MLlib 实现鸢尾花卉分类预测IRIS也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据集,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。

本示例介绍如何使用Spark MLlib引擎实现鸢尾花卉分类预测的应用。鸢尾花卉分类预测样例的操作流程如下所示。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 88

Page 93: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

1. 准备数据:下载数据集、示例代码,然后上传至OBS桶中。

2. 训练模型:编写基于Spark MLlib中ALS算法的模型训练脚本,新建训练作业进行模型训练。

3. 部署模型:得到训练好的模型文件后,新建预测作业将模型部署为在线预测服务。

4. 预测结果:发起预测请求获取预测结果。

准备数据

ModelArts提供了用于训练的数据集和示例代码,执行如下步骤,下载数据集和示例代码,并上传至OBS中。

1. 在gitee的ModelArts-Lab工程中,单击“克隆/下载”,然后单击“下载ZIP”,下载工程。

2. 下载完成后,解压缩“ModelArts-Lab-master.zip”文件,然后在“\ModelArts-Lab-master\official_examples\Using_Spark_MLlib_to_Create_a_Flower_Classification_Application”目录中获取到训练数据集“iris.csv” 和示例代码“trainmodelsp.py” 。

表 5-15 文件说明

文件名称 说明

“iris.csv” 训练数据集。数据集的详情如表2 数据源的具体字段及意义 和 表3 数据集样本数据 所示。

“trainmodelsp.py” 训练脚本。示例代码是使用ALS算法编写的训练脚本。

表 5-16 数据源的具体字段及意义

字段名 含义 类型

sepal-length 花萼长度 number

sepal-width 花萼宽度 number

petal-length 花瓣长度 number

petal-width 花瓣宽度 number

class 类型 string

表 5-17 数据集样本数据

5.1 3.5 1.4 0.2 Iris-setosa

4.9 3.0 1.4 0.2 Iris-setosa

4.7 3.2 1.3 0.2 Iris-setosa

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 89

Page 94: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

4.6 3.1 1.5 0.2 Iris-setosa

5.0 3.6 1.4 0.2 Iris-setosa

3. 进入OBS管理控制台,新建桶和文件夹,分别用于存储训练数据集和示例代码。

例如新建“test-modelarts”桶,并在此桶下新建“iris/data”和“iris/code”文件夹。

4. 将步骤2中获取的文件,上传至对应OBS路径下,即“iris/data”和“iris/code”文件夹。OBS上传文件的操作指导,请参见上传文件。

训练模型

1. 在ModelArts管理控制台,进入“训练管理 > 训练作业”页面,单击左上角的“创建”。

2. 如图2 创建训练作业-基本信息 和图5-39所示,参考图中示例,填写训练作业相关参数,然后单击“下一步”。

其中,“数据来源”和“算法来源”即准备数据上传的OBS路径及文件。“训练输出位置”,建议新建一个OBS文件夹,用于存储训练输出的模型及其预测文件,例如“iris/output”。

图 5-38 创建训练作业-基本信息

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 90

Page 95: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 5-39 创建训练作业-详细参数配置

3. 在规格确认页面,确认信息无误后,单击“提交”。

4. 在“训练作业”管理页面,当训练作业变为“运行成功”时,即完成了模型训练过程。如有问题,可单击作业名称,进入作业详情界面查看训练作业日志信息。

说明

训练作业需要花费一些时间,预计十几分钟。当训练时间超过一定时间(如1个小时),请及时手动停止,释放资源。否则会导致欠费,尤其对于使用GPU训练的模型项目。

部署模型

待训练作业运行完成后,可以将训练好的模型发布成预测服务。

1. 在“模型”页面,单击左上角“导入”,进入“导入模型”页面。

2. 如 图4 导入模型所示,参考图片示例填写参数,然后单击“立即创建”。

其中,“选择元模型”的路径为训练作业中“训练输出位置”指定的路径。此时,系统将从选择的路径下自动匹配到“AI引擎”和“推理代码”。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 91

Page 96: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 5-40 导入模型

3. 在模型列表中,当创建的模型处于“正常”状态时,表示模型导入成功。您可以在操作列单击“部署>在线服务”,将模型部署为在线服务。

4. 在“部署”页面,请参考图5 部署中的示例填写参数,然后单击“下一步”。

图 5-41 部署

5. 在“规格确认”页面,确认信息无误后的,单击“提交”。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 92

Page 97: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

6. 在线服务创建完成后,系统自动跳转至“部署上线>在线服务”页面。服务部署需要一定时间,耐心等待即可。当服务状态变为“运行中”时,表示服务部署成功。

预测结果

待部署模型运行完成后,可以验证发布的预测服务是否正常。

1. 在“部署上线>在线服务”页面,单击服务名称进入详情页面

2. 在“预测”页签,参考图6 测试服务所示样例,输入预测代码,然后单击“预测”。在右侧“返回结果”中,查看预测结果。

预测请求示例代码如下所示。{ "data": { "req_data": [ { "sepal-length": 5.1, "sepal-width": 3.5, "petal-length": 1.4, "petal-width": 0.2 } ] }}

图 5-42 测试服务

3. 在“调用指南”页签,可以获取调用API接口,并使用Postman工具进行测试。

ModelArts佳实践 5 常用框架

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 93

Page 98: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

6 Notebook

6.1 使用 Notebook 实现手写数字识别ModelArts为AI工程师提供了Notebook功能,工程师可在Notebook中一站式完成数据准备、模型训练、预测等操作。

本章节提供了使用MoXing实现手写数字图像识别应用的示例,帮助您快速梳理ModelArts的Notebook开发流程。

MNIST是一个手写体数字识别数据集,常被用作深度学习的入门样例。本示例将针对MNIST数据集,使用MoXing接口编写的模型训练和预测代码(ModelArts默认提供),您可以使用此示例,在Notebook中一站式完成模型训练,并上传图片进行预测。

开始使用样例前,请仔细阅读准备工作罗列的要求,提前完成准备工作。使用Notebook完成模型构建的步骤如下所示:

● 步骤1:准备数据

● 步骤2:使用Notebook训练模型并预测

● 步骤3:删除相关资源,避免计费

准备工作● 已注册华为云帐号,且在使用ModelArts前检查帐号状态,帐号不能处于欠费或冻

结状态。

● 当前帐号已完成访问授权的配置。如未完成,请参考使用委托授权。针对之前使用访问密钥授权的用户,建议清空授权,然后使用委托进行授权。

● 已在OBS服务中创建桶和文件夹,用于存放样例数据集以及模型。如下示例中,请创建命名为“test-modelarts”的桶,并创建如表6-1所示的文件夹。

创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。请确保您使用的OBS与ModelArts在同一区域。

ModelArts佳实践 6 Notebook

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 94

Page 99: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

表 6-1 文件夹列表

文件夹名称 用途

“dataset-mnist” 用于存储数据集。

“mnist-MoXing-code”

用于存储编写好的模型代码“mnist_example.ipynb”。

“train-log” 用于存储图片,此图片用于预测。

● 针对此示例,ModelArts提供了一个编写好的模型代码“mnist_example.ipynb”。您需要从Github中提前获取文件,待模型训练结束后,需要将此文件上传至对应位置。

a. 在gitee的ModelArts-Lab工程中,单击“克隆/下载”,然后单击“下载ZIP”,下载工程。

b. 下载完成后,解压缩“ModelArts-Lab-master.zip”文件,然后在“\ModelArts-Lab-master\official_examples\Using_Notebook_to_Create_a_MNIST_Dataset_Recognition_Application\code”目录中获取到示例代码文件“mnist_example.ipynb”。

c. 参考上传文件至OBS的操作指导,将“mnist_example.ipynb”文件上传至“test-modelarts”桶的“mnist-MoXing-code”文件夹中。

● 准备一张黑底白字的图片,且尺寸为“28px*28px”,图片中手写一个数字。例如准备一张命名为“7.jpg”图片,图片中有一个手写数字7。将准备好的图片上传至“test-modelarts”桶的“train-log”文件夹中,用于预测。

步骤 1:准备数据

ModelArts在公共OBS桶中提供了MNIST数据集,命名为“Mnist-Data-Set”,因此,本文的操作示例使用此数据集进行模型构建。您需要执行如下操作,将数据集上传至您的OBS目录下,即准备工作中您创建的OBS目录“test-modelarts/dataset-mnist”。

1. 单击数据集下载链接,将“Mnist-Data-Set”数据集下载至本地。

2. 在本地,将“Mnist-Data-Set.zip”压缩包解压。例如,解压至本地“Mnist-Data-Set”文件夹下。

3. 参考上传文件,使用批量上传方式将“Mnist-Data-Set”文件夹下的所有文件上传至“test-modelarts/dataset-mnist”OBS路径下。

“Mnist-Data-Set”数据集包含的内容如下所示,其中“.gz”为对应的压缩包。

– “t10k-images-idx3-ubyte”:验证集,共包含10000个样本。

– “t10k-images-idx3-ubyte.gz”:验证集的压缩包文件。

– “t10k-labels-idx1-ubyte”:验证集标签,共包含10000个样本的类别标签。

– “t10k-labels-idx1-ubyte.gz”:验证集标签的压缩包文件。

– “train-images-idx3-ubyte”:训练集,共包含60000个样本。

– “train-images-idx3-ubyte.gz”:训练集的压缩包文件。

– “train-labels-idx1-ubyte”:训练集标签,共包含60000个样本的类别标签。

ModelArts佳实践 6 Notebook

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 95

Page 100: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

– “train-labels-idx1-ubyte.gz”:训练集标签的压缩包文件。

步骤 2:使用 Notebook 训练模型并预测

数据准备完成后,您需要使用Notebook编写代码构建模型。ModelArts提供了一个基于MoXing实现手写数字图像训练、预测的示例代码“mnist_example.ipynb”。

1. 参考准备工作的操作指导,获取“mnist_example.ipynb”文件,并上传至OBS,例如“test-modelarts/mnist-MoXing-code”。

2. 在ModelArts管理控制台,进入“开发环境>Notebook”页面,单击左上角的“创建”。

3. 在“创建Notebook”页面,参考表6-2填写相关信息,然后单击“下一步”。

表 6-2 本示例的参数填写说明

参数 说明

名称 用户可自定义Notebook实例名称。

自动停止 为避免资源浪费,启用自动停止功能,并选择1小时后自动停止。

工作环境 选择“Multi-Engine 1.0 (python3 推荐)”。

资源池 选“公共资源池”。

类型 选择“GPU”。

规格 选择“GPU: 1*v100NV32 CPU: 8 核 64GiB”,您也可以选择“免费规格”,如果使用“免费规格”,可能会由于使用人数较多导致排队等待。

存储配置 选择“对象存储服务”,并在“存储位置”选择示例文件存储的OBS路径,例如“test-modelarts/mnist-MoXing-code”。

4. 在“规格确认”页面,确认信息无误后,单击“提交”。

5. 在“Notebook”管理页面,当新建的Notebook状态变为“运行中”时,表示Notebook已创建完成。单击操作列的“打开”,进入“Jupyter”页面。

6. 在“Jupyter”页面的“Files”页签下,您可以看到步骤1上传的示例代码文件。单击文件名称,进入Notebook详情页。

在详情页根据页面提示,选择和代码环境相匹配的Kernel环境并单击“SetKernel”,本示例使用的Kernel为“TensorFlow-1.8”。如果界面无此提示,可不进行Kernel环境设置,直接执行下一步。

图 6-1 设置 Kernel 环境

ModelArts佳实践 6 Notebook

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 96

Page 101: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

7. 在Notebook详情页,示例代码文件已提供了详细的描述,包含“数据准备”、“训练模型”和“预测”。

a. 数据准备:步骤1:准备数据已完成数据准备,数据集所在路径为“test-modelarts/dataset-mnist/”。示例代码提供了数据集的介绍说明。

b. 训练模型

在训练模型区域,将“data_url”修改为步骤1:准备数据中数据集所在OBS路径,您可以从OBS管理控制台拷贝OBS路径,并将OBS路径修改为“obs://”格式。例如:data_url = 'obs://test-modelarts/dataset-mnist/'

代码修改完成后,从第一个Cell开始,单击 运行代码,将训练模型区域下的所有Cell运行一遍。在训练模型区域 后,将显示运行日志,当日志出现如下类似信息时,表示模型训练成功。如下日志信息表示模型训练成功,且模型文件已成功生成。INFO:tensorflow:No assets to write.

INFO:tensorflow:Restoring parameters from ./cache/log/model.ckpt-1000

INFO:tensorflow:SavedModel written to: b'./cache/log/model/saved_model.pb'

An exception has occurred, use %tb to see the full traceback.

c. 预测

模型训练完成后,可上传一张图片,并使用生成的模型预测。参考准备工作操作指导示例,已将用于预测的“7.jpg”图片上传至“test-modelarts/train-log”路径中。

在Notebook中,将预测区域的“src_path”修改为图片实际存放的OBS路径和名称。此处请使用“obs://”格式的OBS路径。src_path = 'obs://test-modelarts/train-log/7.jpg'

代码修改完成后,从第一个Cell开始,单击 运行代码,将预测区域下的所有Cell运行一遍。在预测区域 后,将显示运行日志,当日志出现如下类似信息时,显示图片预测结果,例如本示例中图片的手写数字为“7”。请对比图片中的数字和预测结果,判断预测结果是否正确。INFO:tensorflow:Running local_init_op. INFO:tensorflow:Done running local_init_op. INFO:tensorflow:Done running local_init_op. The result: [7] INFO:tensorflow:[1 examples] INFO:tensorflow: [1 examples] An exception has occurred, use %tb to see the full traceback.

步骤 3:删除相关资源,避免计费

为避免产生不必要的费用,在完成试用后,建议您删除相关资源,本示例包含数据和Notebook。

● 删除Notebook:在“开发环境>Notebook”页面,单击操作列的“删除”。

● 删除数据:前往OBS,删除上传的数据,然后删除文件夹及OBS桶。

6.2 使用 Pytorch 实现物体检测(Faster R-CNN)在本示例中,介绍一种two-stage算法(Faster R-CNN),将目标区域检测和类别识别分为两个任务进行物体检测。本示例采用PyTorch引擎进行模型构建。

ModelArts佳实践 6 Notebook

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 97

Page 102: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

如果您已熟练使用Notebook和Github,可以从Github下载样例文件(Faster-R-CNN.ipynb),然后上传至ModelArts Notebook中直接使用。

创建并打开 Notebook1. 在ModelArts管理控制台,进入“开发环境>Notebook”页面,单击左上角的“创

建”。

2. 在“创建Notebook”页面,参考表6-3填写相关信息,然后单击“下一步”。

表 6-3 本示例的参数填写说明

参数 说明

名称 用户可自定义Notebook实例名称。

自动停止 为避免资源浪费,启用自动停止功能,并选择1小时后自动停止。

工作环境 选择“Multi-Engine 1.0 (python3 推荐)”。

资源池 选“公共资源池”。

类型 选择“GPU”。

规格 选择“GPU: 1*v100NV32 CPU: 8 核 64GiB”,您也可以选择“免费规格”,如果使用“免费规格”,可能会由于使用人数较多导致排队等待。

存储类型 选择“云硬盘(EVS)”,使用默认的5GB磁盘规格即可。

3. 根据界面提示完成Notebook实例创建,单击“返回Notebook列表”。

4. 在“Notebook列表”中,等待Notebook实例创建完成,当状态变为“运行中”时,表示Notebook实例已创建成功。

5. 单击操作列的“打开”,进入Notebook开发环境。

6. 在Jupyter页面,单击“New>PyTorch-1.0.0”,新建一个Pytorch工作环境。

7. 单击左上方的文件名“Untitled”,并输入一个与本示例相关的名称,例如“Faster R-CNN”。

8. 执行如下代码测试开发环境是否可用。在单元格中输入,然后单击“Run”,运行后回显信息如图6-2所示,表示开发环境可正常使用。print("hello,ModelArts!")

图 6-2 测试开发环境

ModelArts佳实践 6 Notebook

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 98

Page 103: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

数据准备

首先,执行如下代码将需要的代码和数据下载到Notebook。

本示例使用PASCAL VOC 2007数据集训练模型,共20个类别的物体。

import osfrom modelarts.session import Sessionsess = Session()

if sess.region_name == 'cn-north-1': bucket_path="modelarts-labs/notebook/DL_object_detection_faster/fasterrcnn.tar.gz"elif sess.region_name == 'cn-north-4': bucket_path="modelarts-labs-bj4/notebook/DL_object_detection_faster/fasterrcnn.tar.gz"else: print("请更换地区到北京一或北京四")

if not os.path.exists('./experiments'): sess.download_data(bucket_path=bucket_path, path="./fasterrcnn.tar.gz")

if os.path.exists('./fasterrcnn.tar.gz'): # 解压压缩包 os.system("tar -xf ./fasterrcnn.tar.gz")

# 清理压缩包 os.system("rm -r ./fasterrcnn.tar.gz")

当回显信息出现如下类似信息时,表示数据已导入成功。

Successfully download file modelarts-labs-bj4/notebook/DL_object_detection_faster/fasterrcnn.tar.gz from OBS to local ./fasterrcnn.tar.gz

安装依赖并引用

执行如下命令,等待运行结束。

!pip install pycocotools==2.0.0!pip install torchvision==0.4.0!pip install protobuf==3.9.0

当出现“Successfully installed...”类似信息时,表示上述命令安装成功。分两个Cell,执行如下示例代码,引用依赖。

import tools._init_paths

%matplotlib inlinefrom __future__ import absolute_importfrom __future__ import divisionfrom __future__ import print_function

import tensorboardX as tbfrom datasets.factory import get_imdbfrom model.train_val import get_training_roidb, train_netfrom model.config import cfg, cfg_from_file, cfg_from_list, get_output_dir, get_output_tb_dirimport roi_data_layer.roidb as rdl_roidbfrom roi_data_layer.layer import RoIDataLayerimport utils.timer

import pickle

import torchimport torch.optim as optimfrom nets.vgg16 import vgg16

import numpy as npimport osimport sys

ModelArts佳实践 6 Notebook

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 99

Page 104: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

import globimport time

神经网络搭建

1. 模型训练超参设置

为了减少训练时间,我们在预训练模型的基础上进行训练。这里,我们使用VGG16作为FasterRCNN的主干网络。imdb_name = "voc_2007_trainval"imdbval_name = "voc_2007_test"

# 使用的预训练模型位置weight = "./data/imagenet_weights/vgg16.pth"# 训练迭代次数max_iters = 100# cfg模型文件位置cfg_file = './experiments/cfgs/vgg16.yml'set_cfgs = None

if cfg_file is not None: cfg_from_file(cfg_file)if set_cfgs is not None: cfg_from_list(set_cfgs)

print('Using config:')print(cfg)

2. 定义读取数据集函数

数据集的标注格式是PASCAL VOC格式。def combined_roidb(imdb_names):

def get_roidb(imdb_name): # 加载数据集 imdb = get_imdb(imdb_name) print('Loaded dataset `{:s}` for training'.format(imdb.name)) # 使用ground truth作为数据集策略 imdb.set_proposal_method(cfg.TRAIN.PROPOSAL_METHOD) print('Set proposal method: {:s}'.format(cfg.TRAIN.PROPOSAL_METHOD)) roidb = get_training_roidb(imdb) return roidb

roidbs = [get_roidb(s) for s in imdb_names.split('+')] roidb = roidbs[0] if len(roidbs) > 1: for r in roidbs[1:]: roidb.extend(r) tmp = get_imdb(imdb_names.split('+')[1]) imdb = datasets.imdb.imdb(imdb_names, tmp.classes) else: imdb = get_imdb(imdb_names) return imdb, roidb

3. 设置模型训练参数np.random.seed(cfg.RNG_SEED)

# 加载训练数据集imdb, roidb = combined_roidb(imdb_name)print('{:d} roidb entries'.format(len(roidb)))

# 设置输出路径output_dir = get_output_dir(imdb,None)print('Output will be saved to `{:s}`'.format(output_dir))

# 设置日志保存路径tb_dir = get_output_tb_dir(imdb, None)print('TensorFlow summaries will be saved to `{:s}`'.format(tb_dir))

ModelArts佳实践 6 Notebook

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 100

Page 105: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

# 加载验证数据集orgflip = cfg.TRAIN.USE_FLIPPEDcfg.TRAIN.USE_FLIPPED = False_, valroidb = combined_roidb(imdbval_name)print('{:d} validation roidb entries'.format(len(valroidb)))cfg.TRAIN.USE_FLIPPED = orgflip

# 创建backbone网络# 在案例中使用的是VGG16模型,可以尝试其他不同的模型结构,例如Resnet等net = vgg16()

运行上述代码后,界面将呈现回显信息,当出现“done”信息时,表示运行结束,请执行下一段。

分3个Cell执行如下3段代码。from model.train_val import filter_roidb, SolverWrapper# 对ROI进行筛选,将无效的ROI数据筛选掉roidb = filter_roidb(roidb)valroidb = filter_roidb(valroidb)

sw = SolverWrapper( net, imdb, roidb, valroidb, output_dir, tb_dir, pretrained_model=weight)

print('Solving...')# 显示所有模型属性sw.__dict__.keys()# sw.net为主干网络print(sw.net)

4. 定义神经网络结构

使用PyTorch搭建神经网络。

部分实现细节可以去相应的文件夹查看源码。# 构建网络结构,模型加入ROI数据层sw.data_layer = RoIDataLayer(sw.roidb, sw.imdb.num_classes)sw.data_layer_val = RoIDataLayer(sw.valroidb, sw.imdb.num_classes, random=True)

# 构建网络结构,在VGG16基础上加入ROI和Classifier部分lr, train_op = sw.construct_graph()

# 加载之前的snapshotlsf, nfiles, sfiles = sw.find_previous()

# snapshot 为训练提供了断点训练,如果有snapshot将加载进来,继续训练if lsf == 0: lr, last_snapshot_iter, stepsizes, np_paths, ss_paths = sw.initialize()else: lr, last_snapshot_iter, stepsizes, np_paths, ss_paths = sw.restore(str(sfiles[-1]), str(nfiles[-1]))iter = last_snapshot_iter + 1last_summary_time = time.time()# 在之前的训练基础上继续进行训练stepsizes.append(max_iters)stepsizes.reverse()next_stepsize = stepsizes.pop()# 将net切换成训练模式print("网络结构:")sw.net.train()sw.net.to(sw.net._device)

5. 开始训练while iter < max_iters + 1: if iter == next_stepsize + 1: # 加入snapshot节点

ModelArts佳实践 6 Notebook

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 101

Page 106: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

sw.snapshot(iter) lr *= cfg.TRAIN.GAMMA scale_lr(sw.optimizer, cfg.TRAIN.GAMMA) next_stepsize = stepsizes.pop()

utils.timer.timer.tic() # 数据通过ROI数据层,进行前向计算 blobs = sw.data_layer.forward()

now = time.time() if iter == 1 or now - last_summary_time > cfg.TRAIN.SUMMARY_INTERVAL: # 计算loss函数 # 根据loss函数对模型进行训练 rpn_loss_cls, rpn_loss_box, loss_cls, loss_box, total_loss, summary = \ sw.net.train_step_with_summary(blobs, sw.optimizer) for _sum in summary: sw.writer.add_summary(_sum, float(iter)) # 进行数据层验证计算 blobs_val = sw.data_layer_val.forward() summary_val = sw.net.get_summary(blobs_val) for _sum in summary_val: sw.valwriter.add_summary(_sum, float(iter)) last_summary_time = now else: rpn_loss_cls, rpn_loss_box, loss_cls, loss_box, total_loss = \ sw.net.train_step(blobs, sw.optimizer) utils.timer.timer.toc()

if iter % (cfg.TRAIN.DISPLAY) == 0: print('iter: %d / %d, total loss: %.6f\n >>> rpn_loss_cls: %.6f\n ' '>>> rpn_loss_box: %.6f\n >>> loss_cls: %.6f\n >>> loss_box: %.6f\n >>> lr: %f' % \ (iter, max_iters, total_loss, rpn_loss_cls, rpn_loss_box, loss_cls, loss_box, lr)) print('speed: {:.3f}s / iter'.format( utils.timer.timer.average_time()))

# 进行snapshot存储 if iter % cfg.TRAIN.SNAPSHOT_ITERS == 0: last_snapshot_iter = iter ss_path, np_path = sw.snapshot(iter) np_paths.append(np_path) ss_paths.append(ss_path)

# 删掉多余的snapshot if len(np_paths) > cfg.TRAIN.SNAPSHOT_KEPT: sw.remove_snapshot(np_paths, ss_paths)

iter += 1

if last_snapshot_iter != iter - 1: sw.snapshot(iter - 1)

sw.writer.close()sw.valwriter.close()

测试部分

在这部分中,我们利用训练得到的模型进行推理测试。

%matplotlib inlinefrom __future__ import absolute_importfrom __future__ import divisionfrom __future__ import print_function# 将路径转入libimport tools._init_paths

from model.config import cfgfrom model.test import im_detectfrom torchvision.ops import nms

ModelArts佳实践 6 Notebook

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 102

Page 107: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

from utils.timer import Timerimport matplotlib.pyplot as pltimport numpy as npimport os, cv2import argparse

from nets.vgg16 import vgg16from nets.resnet_v1 import resnetv1from model.bbox_transform import clip_boxes, bbox_transform_inv

import torch

参数定义

# PASCAL VOC类别设置CLASSES = ('__background__', 'aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'diningtable', 'dog', 'horse', 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train', 'tvmonitor')# 网络模型文件名定义NETS = {'vgg16': ('vgg16_faster_rcnn_iter_%d.pth',),'res101': ('res101_faster_rcnn_iter_%d.pth',)}# 数据集文件名定义DATASETS= {'pascal_voc': ('voc_2007_trainval',),'pascal_voc_0712': ('voc_2007_trainval+voc_2012_trainval',)}

结果绘制

将预测的标签和边界框绘制在原图上。

def vis_detections(im, class_dets, thresh=0.5): """Draw detected bounding boxes.""" im = im[:, :, (2, 1, 0)] fig, ax = plt.subplots(figsize=(12, 12)) ax.imshow(im, aspect='equal') for class_name in class_dets: dets = class_dets[class_name] inds = np.where(dets[:, -1] >= thresh)[0] if len(inds) == 0: continue

for i in inds: bbox = dets[i, :4] score = dets[i, -1]

ax.add_patch( plt.Rectangle((bbox[0], bbox[1]), bbox[2] - bbox[0], bbox[3] - bbox[1], fill=False, edgecolor='red', linewidth=3.5) ) ax.text(bbox[0], bbox[1] - 2, '{:s} {:.3f}'.format(class_name, score), bbox=dict(facecolor='blue', alpha=0.5), fontsize=14, color='white')

plt.axis('off') plt.tight_layout() plt.draw()

准备测试图片

我们将测试图片传到test文件夹下,我们准备了两张图片进行测试,大家也可以通过notebook的upload按钮上传自己的测试数据。注意,测试数据需要是图片,并且放在test文件夹下。

test_file = "./test"

模型推理

ModelArts佳实践 6 Notebook

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 103

Page 108: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

这里我们加载一个预先训练好的模型,也可以选择案例中训练的模型。

import cv2from utils.timer import Timerfrom model.test import im_detectfrom torchvision.ops import nms

cfg.TEST.HAS_RPN = True # Use RPN for proposals

# 模型存储位置# 这里我们加载一个已经训练110000迭代之后的模型,可以选择自己的训练模型位置saved_model = "./models/vgg16-voc0712/vgg16_faster_rcnn_iter_110000.pth"print('trying to load weights from ', saved_model)

# 加载backbonenet = vgg16()# 构建网络net.create_architecture(21, tag='default', anchor_scales=[8, 16, 32])# 加载权重文件net.load_state_dict(torch.load(saved_model, map_location=lambda storage, loc: storage))

net.eval()# 选择推理设备net.to(net._device)

print('Loaded network {:s}'.format(saved_model))

for file in os.listdir(test_file): if file.startswith("._") == False: file_path = os.path.join(test_file, file) print(file_path) # 打开测试图片文件 im = cv2.imread(file_path)

# 定义计时器 timer = Timer() timer.tic() # 检测得到图片ROI scores, boxes = im_detect(net, im)

print(scores.shape, boxes.shape) timer.toc() print('Detection took {:.3f}s for {:d} object proposals'.format(timer.total_time(), boxes.shape[0]))

# 定义阈值 CONF_THRESH = 0.7 NMS_THRESH = 0.3

cls_dets = {}

# NMS 非极大值抑制操作,过滤边界框 for cls_ind, cls in enumerate(CLASSES[1:]): cls_ind += 1 # 跳过 background cls_boxes = boxes[:, 4*cls_ind:4*(cls_ind + 1)] cls_scores = scores[:, cls_ind] dets = np.hstack((cls_boxes, cls_scores[:, np.newaxis])).astype(np.float32) keep = nms(torch.from_numpy(cls_boxes), torch.from_numpy(cls_scores), NMS_THRESH) dets = dets[keep.numpy(), :]

if len(dets) > 0: if cls in cls_dets: cls_dets[cls] = np.vstack([cls_dets[cls], dets]) else: cls_dets[cls] = dets vis_detections(im, cls_dets, thresh=CONF_THRESH)

plt.show()

运行结束后,测试图片的预测效果如下图所示。

ModelArts佳实践 6 Notebook

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 104

Page 109: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

trying to load weights from ./models/vgg16-voc0712/vgg16_faster_rcnn_iter_110000.pthLoaded network ./models/vgg16-voc0712/vgg16_faster_rcnn_iter_110000.pth./test/test_image_1.jpg(300, 21) (300, 84)Detection took 0.055s for 300 object proposals

./test/test_image_0.jpg(300, 21) (300, 84)Detection took 0.058s for 300 object proposals

ModelArts佳实践 6 Notebook

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 105

Page 110: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

ModelArts佳实践 6 Notebook

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 106

Page 111: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

7 PyCharm ToolKit

7.1 使用 PyCharm ToolKit 工具快速实现模型训练和部署本章节提供了使用MXNet实现手写数字图像识别应用的示例,帮助您使用ModelArts提供的PyCharm ToolKit工具,在本地快速完成模型的训练和部署。更多关于PyCharmToolKit工具的描述,请参见《工具指南》。

MNIST是一个手写体数字识别数据集,常被用作深度学习的入门样例。本示例将针对MNIST数据集,使用MXNet原生接口编写的模型训练脚本(ModelArts默认提供),在ModelArts PyCharm ToolKit中完成模型训练,并将此模型部署为在线服务。部署完成后,用户可通过在线服务识别输入图片中的数字。

开始使用样例前,请仔细阅读准备工作罗列的要求,提前完成准备工作。本示例模型构建的步骤如下所示:

准备工作● 本地已安装PyCharm 2019.2或以上版本,推荐Windows版本,Community或

Professional均可,请单击PyCharm工具下载地址获取工具并在本地完成安装。

● 已注册华为云帐号,且在使用ModelArts前检查帐号状态,帐号不能处于欠费或冻结状态。

● 在ModelArts管理控制台中,当前帐号已完成访问授权的配置。如果已完成,此操作可跳过。

如未完成,请参考使用委托授权。针对之前使用访问密钥授权的用户,建议清空授权,然后使用委托进行授权。

● 已在OBS服务中创建桶和文件夹,用于存放样例数据集以及模型。如下示例中,请创建命名为“test-modelarts”的桶,并创建如表7-1所示的文件夹。

创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。确保您使用的OBS目录与ModelArts在同一区域。

表 7-1 文件夹列表

文件夹名称 用途

“dataset-mnist” 用于存储数据集。

ModelArts佳实践 7 PyCharm ToolKit

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 107

Page 112: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

文件夹名称 用途

“mnist-output” 用于存储训练输出的模型和日志文件。

步骤 1:安装 PyCharm ToolKit,并添加访问密钥

1. 获取PyCharm ToolKit工具安装包,单击ToolKit工具的下载地址,获得工具包。

2. 打开本地PyCharm工具。

3. 在PyCharm工具中,选择菜单栏的“File > Settings”,弹出“Settings”对话框。

4. 在“Settings”对话框中,首先单击左侧导航栏中的“Plugins”,然后单击右侧的设置图标,选择“Install Plugin from Disk”,弹出文件选择对话框。

图 7-1 选择从本地安装插件

5. 在弹出的对话框中,从本地目录选择ToolKit的工具包,然后单击“OK”。

ModelArts佳实践 7 PyCharm ToolKit

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 108

Page 113: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 7-2 选择插件文件

6. 单击“Restart IDE”重启PyCharm。在弹出的确认对话框中,单击“Restart”开始重启。

图 7-3 重启 PyCharm

7. 重启成功后,当PyCharm工具栏出现“ModelArts”页签,表示ToolKit工具已安装完成。

ModelArts佳实践 7 PyCharm ToolKit

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 109

Page 114: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 7-4 安装成功

8. 获取访问密钥,并在PyCharm中添加密钥。

– 获取此帐号的访问密钥(“AK/SK”),详细操作请参见获取访问密钥。

– PyCharm ToolKit安装后,在ToolKit工具中添加访问密钥,详细操作请参见使用访问秘钥登录。

图 7-5 填写区域和访问密钥

9. 查看认证结果。

在Event Log区域中,当提示如下类似信息时,表示访问密钥添加成功。16:01 Validate Credential Success: The HUAWEI CLOUD credential is valid.

步骤 2:准备数据

ModelArts在公共OBS桶中提供了MNIST数据集,命名为“Mnist-Data-Set”,因此,本文的操作示例使用此数据集进行模型构建。您需要执行如下操作,将数据集上传至您的OBS目录下,即准备工作中您创建的OBS目录“test-modelarts/dataset-mnist”。

1. 单击数据集下载链接,将“Mnist-Data-Set”数据集下载至本地。

2. 在本地,将“Mnist-Data-Set.zip”压缩包解压。例如,解压至本地“Mnist-Data-Set”文件夹下。

3. 参考上传文件,使用批量上传方式将“Mnist-Data-Set”文件夹下的所有文件上传至“test-modelarts/dataset-mnist”OBS路径下。

“Mnist-Data-Set”数据集包含的内容如下所示,其中“.gz”为对应的压缩包。

– “t10k-images-idx3-ubyte”:验证集,共包含10000个样本。

– “t10k-images-idx3-ubyte.gz”:验证集的压缩包文件。

– “t10k-labels-idx1-ubyte”:验证集标签,共包含10000个样本的类别标签。

ModelArts佳实践 7 PyCharm ToolKit

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 110

Page 115: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

– “t10k-labels-idx1-ubyte.gz”:验证集标签的压缩包文件。

– “train-images-idx3-ubyte”:训练集,共包含60000个样本。

– “train-images-idx3-ubyte.gz”:训练集的压缩包文件。

– “train-labels-idx1-ubyte”:训练集标签,共包含60000个样本的类别标签。

– “train-labels-idx1-ubyte.gz”:训练集标签的压缩包文件。

步骤 3:编写训练代码

ModelArts提供了本示例需要使用的训练代码,请获取并在PyCharm工程中打开。

1. 在gitee的ModelArts-Lab工程中,单击“克隆/下载”,然后单击“下载ZIP”,下载工程。

2. 下载完成后,解压缩“ModelArts-Lab-master.zip”文件,然后在“\ModelArts-Lab-master\official_examples\Using_MXNet_to_Create_a_MNIST_Dataset_Recognition_Application\codes”目录中获取到训练代码文件“train_mnist.py”。

3. 打开PyCharm工具,单击“File > New Project”创建新工程, 在工程目录下创建“src”文件夹,并将训练代码文件“train_mnist.py”拷贝到“src”文件夹下。

图 7-6 将训练代码拷贝至 src 目录

步骤 4:训练模型

数据和代码准备完成后,您可以创建一个训练作业,选用MXNet引擎,基于本地的train_mnist.py训练脚本,并 终生成一个可用的模型。本示例已提供编码完成的脚本(基于MXNet引擎的原生接口),如果使用自行编写的代码,请使用ModelArts支持的引擎类型及其对应版本的接口,并满足其要求。

1. 在PyCharm工具栏中,选择“ModelArts > Edit Training Job Configuration”。

2. 在弹出的对话框中,按照如下示例配置训练参数。

– “Job Name”:自动生成,首次提交训练作业时,该名称也可以自己指定。

– “AI Engine”:选择“MXNet”,版本为“MXNet-1.2.1-python3.6”。

– “Algorithm Source”:选择“Frequently-used”,代表常用框架。

– “Specifications”:选择GPU规格。

– “OBS Path”:填写准备工作中创建的输出路径,用于存储训练输出模型和日志文件。

– “Data Path in OBS”:填写步骤2:准备数据中数据上传的OBS目录。此处需完整OBS路径,需包含OBS桶名称。

ModelArts佳实践 7 PyCharm ToolKit

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 111

Page 116: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

此示例填写的值如图所示,请务必修改为您自己的OBS桶及路径。

– “Boot File Path”:选择本地的训练脚本“train_mnist.py”。

– “Code Directory”:选择启动脚本所在“src”目录。

– “Running Parameters”:是训练脚本所需要的输入参数,本样例中没有参数,无需填写。

填写完成后,单击“Apply and Run”提交训练作业到云上ModelArts。

说明

由于MNIST数据集数据较多,为提升训练效率,操作示例选择GPU训练。但是,GPU的费用高于CPU,请根据实际情况选择可用的资源池。

图 7-7 配置训练作业

3. 训练作业提交后,可在下方查看训练日志。当训练日志中出现“Current trainingjob status: Successful”类似信息时,表示训练作业运行成功。

图 7-8 查看训练日志

其中, “ModelArts Event Log”栏为工具打印的日志,“ModelArts TrainingLog”为训练脚本代码打印的日志。

从日志可以看到,工具会先将本地工程的代码自动上传至云上OBS,然后自动提交一个训练作业。作业提交成功后,工具会实时从云上的训练环境获取日志并展示在“ModelArts Training Log”窗口,直至作业运行结束。

ModelArts佳实践 7 PyCharm ToolKit

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 112

Page 117: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

4. 在PyCharm的左边菜单栏,单击“ModelArts Explorer”,选择刚才提交的作业,双击版本号“V0001”,可以查看作业详情。

图 7-9 选择对应的训练作业及版本

ModelArts佳实践 7 PyCharm ToolKit

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 113

Page 118: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 7-10 训练作业详情

步骤 5:编写推理代码和配置文件,并上传至模型所在路径

ModelArts提供了本示例需要使用的推理代码“customize_service.py”和配置文件“config.json”,文件路径和下载的git工程中的训练代码在同一目录。此推理代码和配置文件是ModelArts提供的示例。

在步骤4:训练模型中,训练作业生成的模型存储在“test-modelarts/mnist-output/MA-mnist-11-30-16/output/V0001”路径下(其中MA-mnist-11-30-16是JobName,如果配置时填写了自定义Job Name,则路径中就是自定义的Job Name),且系统将自动生成“model”文件夹,模型相关的文件存储在此目录下。将获取的“customize_service.py”和“config.json”文件,上传至OBS的“model”文件夹下。

说明

如果训练作业运行多次,将在“训练输出位置”生成不同的版本,即“mnist-output”目录下将生成多种版本的目录,如“V0001”、“V0002”,请基于训练作业的版本,将文件上传至对应版本下的“model”文件夹内。

前往OBS管理控制台,找到“test-modelarts”桶,然后进入“test-modelarts/mnist-output/MA-mnist-11-30-16/output/V001/model”路径,执行“上传对象”的操作。OBS的上传操作指导,请参见上传文件。

步骤 6:部署在线服务

训练完成的模型还是存储在OBS路径中,您可以将此模型导入到ModelArts中并部署为在线服务。

1. 在训练作业版本号上单击鼠标右键,选择“Deploy to Service”。

ModelArts佳实践 7 PyCharm ToolKit

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 114

Page 119: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 7-11 部署为在线服务

2. 在弹出的对话框中,按照如下说明填写部署为在线服务的参数。

– “Service Name”:自动生成,也可以自定义。

– “Auto Stop”:勾选Auto Stop,表示启动自动停止功能,服务会在指定时间后自动停止。

– “Model Path”:自动填写,无需自己配置。与您选择的训练作业及其版本一致。

– “Environment Variables”:填写运行参数,设置为“input_data_name=images;input_data_shape=0,1,28,28;output_data_shape=0,10”。

▪ “input_data_name”:参数值必须是images。针对自己开发训练脚本的场景,此参数是必须设置的。您可以在导入模型时设置参数,也可以写到推理代码中。

▪ “input_data_shape”:代表NCHW。本示例的数值为“0,1,28,28”,表示设置了输入图片的规则,其中,输入预测图片大小必须是“28px*28px”。

▪ “output_data_shape”:置信度。本示例指定范围为“0~10”。表示输出结果会显示“0~9”中10个类别,属于每一个类别的概率。

信息填写完成后,单击“OK”,开始服务部署。

ModelArts佳实践 7 PyCharm ToolKit

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 115

Page 120: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 7-12 部署为在线服务

可以在 下方的日志栏查看服务部署进度。

图 7-13 查看部署进度

模型部署上线需要花费一些时间,请耐心等待几分钟。当出现类似“Servicestatus is running”信息时,表示服务部署成功。服务部署成功后,将展示在线服务的链接,单击链接可以进入华为云ModelArts在线服务的界面。

说明

首次进入需要输入华为云帐号密码登录。

ModelArts佳实践 7 PyCharm ToolKit

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 116

Page 121: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 7-14 完成部署

步骤 7:测试服务

在线服务部署成功后,您可以进入在线服务,发起预测请求进行测试。

1. 部署成功后,单击提供的链接进入在线服务。

2. 在线服务详情页面中,单击“预测”页签,进入预测页面。

3. 在“选择预测图片文件”右侧,单击“上传”按钮,上传一张黑底白字的图片,然后单击“预测”。

预测完成后,预测结果显示区域将展示预测结果,根据预测结果内容,可识别出此图片的数字是“8”的概率为“1”。

说明

● 由于推理代码和配置文件中已指定图片要求,用于预测的图片,大小必须为“28px*28px”,且图片必须是黑底白字。

● 建议不要使用数据中自带的图片,可以使用Windows自带的画图工具绘制一张。

图 7-15 预测结果

步骤 8:清除相应资源,避免产生费用

为避免产生不必要的费用,在完成试用后,建议您删除相关资源,如在线服务、训练作业及其OBS目录。

● 进入ModelArts管理控制台,删除在线服务:在“在线服务”页面,单击操作列的“更多>删除”。

● 进入ModelArts管理控制台,删除训练作业:在“训练作业”页面,单击操作列的“删除”。

ModelArts佳实践 7 PyCharm ToolKit

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 117

Page 122: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

● 进入OBS管理控制台,删除数据准备阶段创建的OBS桶。先逐个删除桶内文件夹和文件,再执行删除桶的操作。

ModelArts佳实践 7 PyCharm ToolKit

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 118

Page 123: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

8 ModelArts+HiLens

8.1 手势判断技能开发ModelArts是面向AI开发者的一站式开发平台,您可以使用ModelArts开发一个用于华为HiLens平台的算法模型,然后基于您自定义的算法模型和逻辑代码新建技能。

本章节提供了一个手势判断技能的样例,介绍从模型训练到查看技能效果,新建一个全新技能的全流程,帮助您快速熟悉华为HiLens技能开发的使用过程。

开始使用样例前,请仔细阅读准备工作罗列的要求,提前完成准备工作。具体技能开发的步骤如下所示:

● 步骤1:准备数据

● 步骤2:创建数据集

● 步骤3:订阅算法

● 步骤4:使用订阅算法创建训练作业

● 步骤5:转换模型

● 步骤6:导入模型至华为HiLens

● 步骤7:新建技能

● 步骤8:(可选)发布技能

● 步骤9:安装技能

● 步骤10:启动技能

准备工作● 已注册华为云帐号,且在使用华为HiLens前检查帐号状态,帐号不能处于欠费或

冻结状态。

● 已购买HiLens Kit设备,并准备好网线,电脑,路由器,HDMI线,显示屏。

● 成功注册设备HiLens Kit设备至华为HiLens控制台,详情请参见注册HiLens Kit。

● 登录OBS服务,创建桶和文件夹,用于存放样例的训练数据。创建名称为“hilens-gesture”OBS桶,区域选择“华北-北京四”,创建如下文件夹:

– “gesture-data”:用于存放训练模型的数据。

ModelArts佳实践 8 ModelArts+HiLens

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 119

Page 124: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

– “gesture-data-output”:用于存放模型输出数据。

– “gesture-data-record”:用于存放日志。

– “gesture-convert-output”:用于存放转换模型后的输出文件。

创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。为保证模型数据能正常访问,请务必保证创建的OBS桶与华为HiLens在同一区域。

占用OBS资源的操作均会收取一定费用,收费规则请参见对象存储服务 OBS。

步骤 1:准备数据

华为HiLens在公共OBS桶中提供了手势判断技能的用于模型训练的示例数据,命名为“gesture_recognition_data”,因此本文的操作示例使用此示例模型进行技能开发。您需要执行如下操作,将模型文件上传至您的OBS目录下,即准备工作中您创建的OBS目录“hilens-gesture/gesture-recognition”。

步骤1 单击示例数据下载链接,将手势判断案例示例数据“gesture_recognition_data”下载至本地。

步骤2 在本地,将“gesture_recognition_data”压缩包解压。例如解压至本地“gesture_recognition_data”文件夹下,包括1个子文件夹“gesture-data”和1个“.py”文件。

步骤3 参考上传文件,利用OBS Browser+工具将“gesture_recognition_data/gesture-data”文件夹下的所有数据上传至“hilens-gesture/gesture-data”OBS路径下,OBSBrowser+使用方法请参见OBS Browser+工具指南。

----结束

步骤 2:创建数据集

步骤1 登录ModelArts管理控制台,根据要求完成全局配置,在左侧菜单栏中选择“数据管理>数据集”。

步骤2 在数据集管理页面,单击“创建数据集”。在“创建数据集”页面,“数据集输入位置”选择步骤1:准备数据中上传的数据存储目录(OBS路径),需选择到具体图片存储的父目录。“数据集输出位置”,请指定一个空目录,且此目录不能是数据来源目录下的子目录。“标注类型”选择“图像分类”。

ModelArts佳实践 8 ModelArts+HiLens

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 120

Page 125: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 8-1 创建数据集

步骤3 参数填写完成后,单击“创建”,完成数据集创建。

进入数据集管理页面,等待数据同步完毕,您可以单击数据集名称进入概览页面,了解进度。由于提供的样例数据集已完成数据标注,当数据集概览页面显示图片已标注,表示数据已同步完成。

图 8-2 标注进展

步骤4 发布数据集。在数据集管理页面,单击“发布”,在弹出窗口中,根据界面提示进行配置。由于本示例使用的算法,必须使用切分的数据集进行训练,因此训练验证比例的参数必须设置,建议设置为“0.8”或“0.9”,表示训练集和验证集的比例为“8:2”或“9:1”。

步骤5 单击“确定”完成发布数据集。

ModelArts佳实践 8 ModelArts+HiLens

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 121

Page 126: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 8-3 发布数据集

----结束

步骤 3:订阅算法

ModelArts官方提供了一个“ResNet_v1_50”,算法用途为图像分类,您可以使用此算法训练,得到所需的模型。目前“resnet_v1_50”算法发布在AI Gallery中。您可以前往AI Gallery,订阅此算法,然后同步至ModelArts中。

步骤1 登录ModelArts管理控制台,在左侧菜单栏中选择“AI Gallery”。进入新版AIGallery。

步骤2 在AI Gallery中,在搜索框中输入“ResNet_v1_50”,查找对应的算法。

ModelArts AI Gallery有三个“ResNet_v1_50”,请选择仅支持Ascend 310推理的算法进行应用。即图标中无“Ascend 910/Ascend 310”标识的算法。

图 8-4 选择“ResNet_v1_50”算法

ModelArts佳实践 8 ModelArts+HiLens

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 122

Page 127: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

步骤3 单击算法名称进入算法详情页,单击右侧的“订阅”,根据界面提示完成算法订阅。

此算法由ModelArts官方提供,目前免费开放。订阅算法完成后,页面的“订阅”按钮显示为“已订阅”。

步骤4 单击商品详情页的“前往控制台”,此时弹出“选择云服务区域”对话框,选择ModelArts对应的区域,然后再单击“确定”。

页面将自动跳转至ModelArts的“算法管理>市场订阅”中同步对应的算法。

图 8-5 前往控制台

图 8-6 选择云服务区域

步骤5 在ModelArts管理控制台的算法管理页面,算法将自动同步至ModelArts中。

未同步的算法,无法直接用于创建训练作业,因此从AI Gallery订阅完成后,需在ModelArts管理控制台执行同步操作。同步成功后,下方界面中的“创建训练作业”按钮可用,且状态变更为“就绪”。

图 8-7 同步算法

----结束

ModelArts佳实践 8 ModelArts+HiLens

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 123

Page 128: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

步骤 4:使用订阅算法创建训练作业

步骤1 进入ModelArts管理控制台,单击左侧导航栏“训练管理>训练作业”,进入“训练作业”页面。

步骤2 单击“创建”,进入“创建训练作业”页面。

步骤3 在“创建训练作业”页面,填写训练作业相关参数,然后单击“下一步”。

1. 在基本信息区域,“计费模式”和“版本”为系统自动生成,不需修改。请根据界面提示填写“名称”和“描述”。

图 8-8 训练作业基本信息

2. 设置“算法来源”为订阅的“ResNet_v1_50”算法。在“算法来源”,选择“算法管理”,单击“算法名称”右侧的“选择”,在弹出框中,选择“市场订阅”的算法,如图8-10所示。

图 8-9 算法来源设置为算法管理

图 8-10 选择市场订阅的算法

3. 按表8-1设置“训练输入”、“训练输出”、“调优参数”。

ModelArts佳实践 8 ModelArts+HiLens

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 124

Page 129: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

表 8-1 训练作业参数

参数 推荐填写

“训练输入” 选择“数据集”,选择步骤2:创建数据集中创建并发布的数据集及其版本。

“训练输出” 选择准备工作中新建的“hilens-gesture/gesture-data-output”文件夹。建议设置为一个OBS空目录,且此目录不能是数据来源目录下的子目录。

“调优参数” 本示例可使用官方提供的默认参数值。如果您需要调整,建议参考算法说明进行调整。

“作业日志路径” 选择准备工作中新建的“gesture-data-record”文件夹用于存放日志。

图 8-11 训练作业详细参数

4. 在资源设置区域,选择“公共资源池”,并选择一个“规格”,建议选择一个GPU规格,运行效果更佳,“计算节点个数”设置为“1”。

ModelArts佳实践 8 ModelArts+HiLens

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 125

Page 130: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 8-12 选择资源

5. 完成信息填写,单击“下一步”。

步骤4 在“规格确认”页面,确认填写信息无误后,单击“提交”。

步骤5 在“训练作业”管理页面,可以查看新建训练作业的状态。训练作业的创建和运行需要一些时间,预计十几分钟,当状态变更为“运行成功”时,表示训练作业创建完成。

您可以单击训练作业的名称,可进入此作业详情页面,了解训练作业的“配置信息”、“日志”、和“资源占用情况”等信息。在“训练输出位置”所在的OBS路径中,可以获取到生成的模型文件。

----结束

步骤 5:转换模型

步骤1 在ModelArts管理控制台中,选择左侧导航栏的“模型管理>压缩/转换”,进入模型转换列表页面。

步骤2 单击左上角的“创建任务”,进入任务创建任务页面。

步骤3 在“创建任务”页面,按表8-2填写相关信息,如图8-13所示。

表 8-2 创建任务参数

参数 推荐填写

“名称” 输入“gesture-recognition”。

“描述” 输入判断手势技能的简短描述,如:将判断手势技能模型转换为“.om”格式。

“输入框架” 选择“TensorFlow”。

“转换输入目录” 选择转换输入目录为“hilens-gesture/gesture-data-output/frozen_graph”。

“输出框架” 选择“MindSpore”。

ModelArts佳实践 8 ModelArts+HiLens

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 126

Page 131: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

参数 推荐填写

“转换输出目录” 选择转换输出目录为“hilens-gesture/gesture-convert-output”。

“转换模板” 选择“TF-FrozenGraph-To-Ascend-HiLens”。

“高级选项” “输入张量形状”设置为“images:1,224,224,3”,其他选项均为默认值。

图 8-13 创建模型压缩/转换任务

步骤4 任务信息填写完成后,单击右下角“立即创建”。

创建完成后,系统自动跳转至“模型压缩/转换列表”中。刚创建的转换任务将呈现在界面中,其“任务状态”为“初始化”。任务执行过程预计需要几分钟到十几分钟不等,请耐心等待,当“任务状态”变为“成功”时,表示任务运行完成并且模型转换成功。

如果“任务状态”变为“失败”,建议单击任务名称进入详情页面,查看日志信息,根据日志信息调整任务的相关参数并创建新的转换任务。

----结束

步骤 6:导入模型至华为 HiLens

步骤1 登录华为HiLens管理控制台,在左侧导航栏中选择“技能开发>模型管理”,进入“模型管理”页面。

步骤2 在“模型管理”页面,单击右上角的“导入(转换)模型”。

步骤3 在“导入模型”页面,然后参考表8-3填写参数,信息确认无误后单击“确定”完成导入,如图8-14所示。

ModelArts佳实践 8 ModelArts+HiLens

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 127

Page 132: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

表 8-3 导入模型参数

参数 推荐填写

“名称” 输入“gesture-recognition”。

“版本” 输入“1.0.0”。

“描述” 输入导入模型的描述。

“模型来源” 单击“从ModelArts导入”,在右侧下拉框中选择“OM(从转换任务中获取)”,然后在下方转换任务列表中勾选之前在步骤5:转换模型转换的模型“gesture-recognition”。

图 8-14 导入模型

模型导入后,将进入“模型管理”页面,您导入的模型可从列表中查看模型状态,导入成功后模型“状态”为“导入成功”。

----结束

步骤 7:新建技能

步骤1 在华为HiLens管理控制台的左侧导航栏中选择“技能开发>技能管理”,进入技能列表。

步骤2 在“技能管理”页面,单击右上角“新建技能”,进入“创建技能”页面。

步骤3 在“创建技能”页面,在“技能模板”中选择“使用空模板”后,填写基本信息和技能内容。

基本信息

按表8-4填写技能的基本信息,如图8-15所示。

表 8-4 技能基本信息参数

参数 推荐填写

“技能模板” 选择“使用空模板”。

“技能名称” 输入“Gesture_Recognition”。

“技能版本” 输入“1.0.0”。

ModelArts佳实践 8 ModelArts+HiLens

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 128

Page 133: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

参数 推荐填写

“适用芯片” 默认为“Ascend310”。

“检验值” 根据步骤1:准备数据所下载的“手势判断案例”文件夹中的“main.py”文件中init函数参数的值的代码,这里检验值应输入“gesture”。此处的检验值和init函数参数值应保持一致。

“应用场景” 选择“其他”,文本框中输入“手势判断”。

“技能图标” 上传技能图标。

“技能图片” 用来向用户介绍技能的使用或技能的效果,可不上传。

“OS平台” 选择“Linux”系统。

“描述” 输入技能的描述。

图 8-15 填写基本信息

技能内容

根据您的模型和逻辑代码情况,按表8-5填写技能内容,详细参数说明请参见技能内容。

ModelArts佳实践 8 ModelArts+HiLens

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 129

Page 134: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

表 8-5 技能内容参数

参数 推荐填写

“技能格式” 选择“技能包”格式。

“运行时语言” 选择“Python3.7”。

“代码执行文件” 默认输入“index.py”。

“模型” 单击加号,您可以在弹出框中,选择导入的模型“gesture-recognition”。

“代码上传方式” 选择“在线编辑”,在代码编辑框中直接编辑代码,可直接复制步骤1:准备数据所下载的“手势判断案例”文件夹中的“.py”文件中的代码内容,请核对代码中模型名称,保持代码中的模型名称与步骤5:转换模型的模型名称一致。此样例中模型名称应是“gesture-recognition.om”,如下所示。model = hilens.Model(hilens.get_model_dir() + "gesture-recognition.om")

图 8-16 技能内容

基本信息和技能内容填写完成后,您可以在界面右侧查看其配置参数值,如果某个字段填写错误,在右侧会显示一个小红叉。

步骤4 确认信息无误后,单击“确定”完成技能创建。

ModelArts佳实践 8 ModelArts+HiLens

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 130

Page 135: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 8-17 确认信息并完成新建技能

----结束

创建完成后,您的技能将进入“技能开发>技能管理”页面,且状态为“未发布”,您可以执行发布操作,将技能发布至技能市场;您也可以安装技能至设备,并查看设备使用技能效果。

ModelArts佳实践 8 ModelArts+HiLens

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 131

Page 136: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

步骤 8:(可选)发布技能

步骤1 在华为HiLens管理控制台,单击左侧导航栏“技能开发>技能管理”,进入“技能管理”页面。

步骤2 选择需要发布的技能,单击右边的“发布”。

步骤3 在弹出的“发布技能到技能市场”对话框中,按图8-18设置相关信息,单击“确定”。

图 8-18 发布技能

表 8-6 发布技能参数说明

参数字段 说明

发布服务 技能发布的服务位置。本样例选择“HiLens技能市场”。

计费策略 技能发布在技能市场的计费策略。可选择“免费”和“收费”。

计费模式 技能发布后的计费模式。

● 若选择“免费”计费策略,仅可选择“一次性”计费模式。

● 若选择“收费”计费策略,可选择“包年/包月”和“一次性”两种计费模式。

计量单位 每份License可用在设备上的规格。有“路数”和“并发量”两种计量方式。若以“路数”规格,一份License可安装在设备上使用一路视频。

规格限制 技能在同一设备上 多可以处理视频的路数,或 大并发量。

ModelArts佳实践 8 ModelArts+HiLens

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 132

Page 137: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

参数字段 说明

隐私声明 技能涉及到的用户隐私声明。

提交之后,将发送至华为HiLens后台,由工作人员进行审核,3个工作日之内完成审核,请您耐心等待。当审核通过后,状态将变更为“审核通过,已发布”。

----结束

步骤 9:安装技能

步骤1 在“技能开发>技能管理”页面,选择已开发的的技能,单击右侧操作列“安装”。

步骤2 勾选已注册且状态在线的设备,单击“安装”,安装成功后单击“确定”,完成安装技能操作,如图8-19所示。

安装过程中,华为HiLens管理控制台会将技能包下发到设备。下发技能包需要一段时间,可以从进度条中看到技能安装进度,下发完成后“进度”栏会提示“安装成功”。

图 8-19 安装成功

安装成功后,您可以启动技能查看技能输出数据。

----结束

步骤 10:启动技能

步骤1 使用HDMI视频线缆连接HiLens Kit视频输出端口和显示器。

步骤2 单击左侧导航栏“设备管理>设备列表”,进入“设备列表”页面。

步骤3 单击已注册设备的“技能管理”,查看技能状态已安装的手势判断技能状态为“停止”,单击操作列的“启动”,并单击“确定”,确定启动技能运行在端侧设备上。

等待一会,当状态变为“运行中”,则技能成功运行在端侧设备上。

安装技能的状态说明如图8-20所示。

图 8-20 查看技能状态

ModelArts佳实践 8 ModelArts+HiLens

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 133

Page 138: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

表 8-7 安装技能状态

状态名 状态说明

停止 停止状态,技能停止运行在端侧设备上。

运行中 运行状态,技能成功安装在端侧设备。

技能处于“运行中”状态时,您可以通过显示器查看技能输出的视频数据,此样例所开发的手势判断技能可识别一般的手势,技能输出的视频中会用方框标记出手势,并标记出手势含义。

----结束

ModelArts佳实践 8 ModelArts+HiLens

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 134

Page 139: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

9 Ascend 应用教程

9.1 应用场景介绍Ascend 310和Ascend 910芯片是一款华为自研的云端AI芯片。Ascend 310主打极致高效计算低功耗AI芯片,基于芯片低功耗、高算力特性,ModelArts支持使用Ascend310芯片提供高性能推理能力。Ascend 910是一款性能更高的训练芯片,主打算力强、体积小等特性,ModelArts支持使用Ascend 910提供训练能力,且同时提供了使用MindSpore引擎开发的算法。

针对Ascend芯片,ModelArts提供了预置算法(训练管理或AI Gallery),支持使用Ascend 910训练模型,Ascend 310部署上线。算法的发布形式有两种:“在训练管理发布的预置算法”和“在AI Gallery发布的预置算法”,支持Ascend芯片的算法列表如支持Ascend芯片的算法及其对应场景所示。

支持 Ascend 芯片的算法及其对应场景

ModelArts目前提供的预置算法列表,能够支持“物体检测”、“图像分类”、“文本分类”和“声音分类”等场景。

同一场景下,不同的算法,支持不同的训练资源和推理资源,请仔细阅读算法说明,选择对应的算法及资源规格进行模型构建。例如,您希望使用Ascend 910训练,同时将模型部署在Ascend 310,建议选择算法描述中同时支持Ascend 910和Ascend 310的算法,如ResNet50(图像分类/MindSpore/Ascend910训练)或ResNet_v1_50(图像分类/TensorFlow/Ascend910训练)。

Ascend 应用样例列表

针对支持使用Ascend应用的算法,本文档提供了如下几个操作样例,您可以参考如下典型样例,使用ModelArts提供的预置算法,支撑您的业务应用。

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 135

Page 140: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

表 9-1 Ascend 样例列表

样例 引擎 对应功能 场景 说明

使用预置算法实现物体检测(Ascend310)

TensorFlow

预置算法(训练管理)、Ascend 310推理

物体检测

使用训练管理中的预置算法训练模型,然后将所得模型使用Ascend310部署为在线服务。

使用预置算法实现图像分类(Ascend310推理)

TensorFlow

预置算法(AIGallery)、Ascend 310推理

图像分类

此样例介绍如何从AI Gallery,订阅一个预置算法“ResNet_v1_50”,同时使用算法训练得到模型, 终将模型使用Ascend 310部署为在线服务的端到端指导。

Ascend910训练和Ascend310推理的样例

MindSpore

预置算法(AIGallery)、Ascend 910训练、Ascend 310推理

图像分类

针对ModelArts官方提供的ResNet50算法(MindSpore引擎),可使用Ascend 910训练,同时使用Ascend310推理。以云的方式提供充裕且经济的AI算力,支撑更多科研探索及行业AI应用。

9.2 使用预置算法实现图像分类(Ascend310 推理)如下操作步骤,以“ResNet_v1_50”为例,指导如何从AI Gallery订阅算法,然后使用算法创建训练模型,将所得的模型部署为在线服务(使用Ascend 310推理)。针对支持使用Ascend 310芯片推理的算法,其操作步骤类似,因此不再赘述,可参考“ResNet_v1_50”算法操作。

针对支持Ascend 310推理的算法,如ResNet_v1_101、MobileNet_v1等,可参考此章节的操作进行训练和推理操作。详细的参数填写,可根据每个算法的不同参数进行调整,官方发布的预置算法介绍,请参见《ModelArts AI Gallery用户指南》。

1. 数据准备

2. 订阅算法

3. 使用订阅算法创建训练作业

4. 模型转换

5. 导入模型

6. 部署为在线服务(Ascend 310)

数据准备

1. 获取样例数据集,“Flowers-Data-Set”数据集中包含了花卉图片及其标注信息。由于数据集中数据较多,推荐使用OBS Browser+工具上传文件。

2. 登录ModelArts管理控制台,在左侧菜单栏中选择“数据管理 > 数据集”。

3. 在数据集管理页面,单击“创建数据集”,创建一个“图像分类”类型的数据集。

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 136

Page 141: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

其中,“数据集输入位置”,选择步骤1中数据存储的OBS路径。“数据集输出位置”,请务必选择一个空目录存储,且此目录不能是“数据集输入位置”对应目录的子目录。

图 9-1 创建数据集

4. 参数填写完成后,单击右下角的“创建”,完成数据集的创建。此时页面将自动跳转至数据集列表中。

5. 在数据集列表页面,单击数据集名称,进入数据集概览页,然后单击右上角的“开始标注”,进入数据集详情页。

6. 在数据集详情页面中,等待数据同步至ModelArts中。由于数据集已完成标注,无需重新标注,只需等待数据同步即可。由于数据集中数据较多,数据同步需要花费2分钟左右,请耐心等待。

当“已标注”页签下呈现所有上传数据时,表示数据已完成同步。

7. 单击左上角“返回数据集概览”,然后在数据集概览页中,单击右上角的“发布”。

8. 在弹出的对话框中,填写“版本名称”,可使用默认值。“训练验证比例”建议设置为“0.8”。然后单击“确定”完成发布。

验证集不参与训练,用于训练过程中评估模型的好坏,验证集比例太大,会导致训练集变少,影响训练效果。验证集太少,可能导致验证的精度不准确。针对此示例,推荐使用0.8比例进行切分。

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 137

Page 142: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 9-2 发布数据集版本

9. 在数据集列表页面,等待数据集发布完成。发布过程中的数据集,其名称前面有个运行标记。当数据集发布结束后,其操作列的发布按钮将呈现为蓝色可点击状态。

请耐心等待,必须等数据集发布成功后,才可以执行下一步训练模型的操作。

订阅算法

ModelArts官方提供了一个“ResNet_v1_50”,算法用途为图像分类,算法介绍可参见ResNet_v1_50算法介绍,且此算法训练所得的模型,可快速部署在Ascend 310芯片上。目前“ResNet_v1_50”算法发布在AI Gallery中。您可以前往AI Gallery,订阅此模型,然后同步至ModelArts中。

1. 在ModelArts管理控制台中,在左侧菜单栏中选择“AI Gallery”,进入AIGallery。

2. 在AI Gallery中,在搜索框中输入“ResNet_v1_50”,查找对应的算法。

由于AI Gallery发布了多个“ResNet_v1_50”,本示例请选择仅支持Ascend310推理的算法。同时支持Ascend 910和Ascend 310的算法,请参考Ascend910训练和Ascend310推理的样例样例。

图 9-3 选择仅用于 Ascend 310 推理的算法

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 138

Page 143: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

3. 单击算法名称进入算法详情页,单击右侧的“订阅”,根据界面提示完成算法订阅。

此算法由ModelArts官方提供,目前免费开放。订阅算法完成后,页面的“订阅”按钮显示为“已订阅”。

4. 单击商品详情页的“前往控制台”,此时弹出“选择云服务区域”对话框,选择ModelArts对应的区域,然后再单击“确定”,

页面将自动跳转至ModelArts的“算法管理>市场订阅”中同步对应的算法。

图 9-4 前往控制台

图 9-5 选择云服务区域

5. 在ModelArts管理控制台的算法管理页面,算法将自动同步至ModelArts中。

未同步的算法,无法直接用于创建训练作业,因此从AI Gallery订阅完成后,需在ModelArts管理控制台执行同步操作。同步成功后,下方界面中的“创建训练作业”按钮可用,且状态变更为“就绪”。

图 9-6 同步算法

使用订阅算法创建训练作业

算法订阅成功后,算法将呈现在“算法管理>市场订阅”中,您可以使用订阅的“ResNet_v1_50”算法创建训练作业,获得模型。

1. 进入“算法管理>市场订阅”页面,选择订阅的“ResNet_v1_50”算法,单击左侧的小三角展开算法,在版本列表中,单击“创建训练作业”。

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 139

Page 144: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 9-7 创建训练作业

2. 在“创建训练作业”页面,参考如下说明填写关键参数。

– “算法来源”:系统默认选择订阅的算法,请勿随意修改。

– “数据来源”:选择数据集,然后从下拉框中选择数据准备中创建好的数据集。数据集一定要选择切分训练集比例的版本,否则将会导致训练失败。

– “训练输出”:选择一个OBS空目录存储训练输出的模型。

– “调优参数”:建议采用默认值。如需进行调优,可参考ResNet_v1_50算法介绍。

– “资源池”:建议选择GPU规格的资源池,训练效率会更高一些。

图 9-8 训练作业参数

图 9-9 资源池设置

3. 参数填写完成后,单击“下一步”,根据界面提示完成训练作业创建。

4. 进入“训练管理>训练作业”页面,等待训练作业完成。

训练作业运行需要几分钟时间,请耐心等待。根据经验,选择样例数据集,使用GPU资源运行,预计5分钟左右可完成。

当训练作业的状态变更为“运行成功”时,表示已运行结束。您可以单击训练作业名称,进入详情页面,了解训练作业的“配置信息”、“日志”、“资源占用情况”和“评估结果”等信息。您也可以在配置的“训练输出位置”对应的OBS目录下获得训练生成的模型。

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 140

Page 145: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

模型转换

使用预置算法训练所得的模型,需通过转换功能,转成适用于Ascend芯片的格式,即“om”格式。

1. 在ModelArts管理控制台,选择“模型管理 > 压缩/转换”。

2. 在模型转换作业列表页面,单击“创建任务”。在创建转换任务页面中,参考如下说明填写关键参数。

– “输入框架”:选择“TensorFlow”。

– “转换输入目录”:请选择训练作业输出路径下的“<输出路径>/V00X/frozen_gragh”目录。其中“<输出路径>/V00X”请根据实际参数填写。

– “输出框架”:选择“MindSpore”。

– “转换输出目录”:请选择训练作业输出路径下的“<输出路径>/V00X/om/model”目录。其中“<输出路径>/V00X”请根据实际参数填写。

– “转换模板”:用于Ascend 310芯片的模型请选择“TF-FrozenGraph-To-Ascend-C32”模板。更多转换模板及其高级参数介绍请参见转换模板。

– “高级选项”:本示例可直接使用参数值如下所示。如果需要修改,请参见转换模板了解参数说明。

“输入张量形状”:“images:1,224,224,3”

“输入数据格式”:“NHWC”

“转换输出节点”:“logits:0”

“优选数据格式”:“5D”

“生成高精度模型”:“0”

“网络输出类型”:“FP32”

“L2动态优化”:“true”

图 9-10 转换模型

3. 转换模型的参数填写完成后,单击“立即创建”,页面自动跳转至“压缩/转换”列表。

当模型转换的“任务状态”变为“成功”时,表示模型已被转换成“om”格式。

图 9-11 模型转换成功

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 141

Page 146: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

导入模型

模型转换为om格式后,可采用“从模板中选择元模型”的方式,导入模型。

1. 在ModelArts管理控制台,选择“模型管理 > 模型”。

2. 在模型列表页面,单击导入。进入导入模型页面,参考如下说明填写关键参数。

– “元模型来源”:选择“从模板中选择”。

– “模型模板”:本示例的模型需部署在Ascend 310芯片上,因此需选择“ARM-Ascend模板”。然后在“模型目录”中选择模型转换步骤中“转换输出目录”下的“model”目录,即“<转换输出目录>/model”。

– “输入输出模式”:由于“ResNet_v1_50”算法的模型为“图像分类”类型的,因此此处需选择预置图像处理模式。

– “部署类型”:默认勾选“在线服务”、“批量服务”和“边缘服务”。保持默认选项即可。

图 9-12 从模板中选择模型

3. 模型导入参数填写完成后,单击立即创建。页面自动跳转至模型列表页面,等待模型导入结果。

当模型的状态变为“正常”时,表示模型导入成功。

图 9-13 模型导入成功

部署为在线服务(Ascend 310)

模型导入成功后,可将此模型部署为在线服务,在部署时可使用Ascend 310芯片资源。

1. 在“模型管理>模型>我的模型”列表中,单击操作列的“部署 > 在线服务”。

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 142

Page 147: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 9-14 部署模型

2. 在“部署”页面,参考如下说明填写关键参数。

“资源池”:选择“公共资源池”。

“选择模型及配置”:“模型”及“版本”会自动选择前面导入的模型。在“计算节点规格”中,选择您创建的Ascend 310芯片资源,目前支持“ARMCPU:3核 6 GiB Ascend: 1 * Ascend 310”资源规格。其他参数可使用默认值。

图 9-15 部署为在线服务

3. 参数设置完成后,单击“下一步”,根据界面提示,完成在线服务的部署。

您可以进入“在线服务列表”页面,等待服务部署结束,当服务状态变为运行中时,表示服务部署成功。

图 9-16 运行中的服务

4. 在线服务部署完成后,您可以单击服务名称进入服务详情页。

– 访问服务:了解调用指南,获取API接口地址,可通过postman或使用curl命令发送请求,访问在线服务。

– 预测:单击“预测”页签,上传一个测试图片,进行预测。

更多操作,可参见ModelArts用户指南。

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 143

Page 148: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 9-17 调用指南

图 9-18 预测

9.3 使用预置算法实现物体检测(Ascend310)ModelArts默认提供了一个预置算法“yolov3_resnet18”,通过简单调参配置后,训练所得模型,可快速部署至Ascend 310,提供高性能推理能力。

1. 数据准备

2. 使用预置算法创建训练作业

3. 模型转换

4. 导入模型

5. 部署为在线服务(Ascend 310)

数据准备1. 获取样例数据集,获取的数据集包含“train”和“test”两个目录,“train”目

录下包含图片数据及其标注信息,请将“train”目录下的数据上传至OBS。

由于数据集中数据较多,推荐使用OBS Browser+工具上传文件。为保证模型质量,建议将“train”目录下的数据全部上传至OBS,用于模型训练。

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 144

Page 149: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

2. 登录ModelArts管理控制台,在左侧菜单栏中选择“数据管理 > 数据集”。

3. 在数据集管理页面,单击“创建数据集”,创建一个“物体检测”类型的数据集。

其中,“数据集输入位置”,选择步骤1中数据存储的OBS路径。“数据集输出位置”,请务必选择一个空目录存储,且此目录不能是“数据集输入位置”对应目录的子目录。

图 9-19 创建数据集

4. 参数填写完成后,单击右下角的“创建”,完成数据集的创建。此时页面将自动跳转至“数据集”列表中。

5. 在“数据集”列表页面,单击数据集名称,进入数据集概览页,然后单击右上角的“开始标注”,进入数据集详情页。

6. 在数据集详情页面中,等待数据同步至ModelArts中。由于数据集已完成标注,无需重新标注,只需等待数据同步即可。

当“已标注”页签下呈现所有上传数据时,表示数据已完成同步。

图 9-20 数据完成同步

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 145

Page 150: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

7. 单击左上角“返回数据集概览”,然后在数据集概览页中,单击“发布”。

8. 在弹出的对话框中,填写“版本名称”,可使用默认值。本示例可不设置“训练验证比例”参数,可为空。然后单击“确定”完成发布。

9. 在数据集列表页面,等待数据集发布完成。发布过程中的数据集,其名称前面有个运行标记。当数据集发布结束后,其操作列的发布按钮将呈现为蓝色可点击状态。

请耐心等待,必须等数据集发布成功后,才可以执行下一步训练模型的操作。

图 9-21 发布过程中的数据集

使用预置算法创建训练作业

ModelArts提供了“yolov3_resnet18”预置算法,使用此算法训练的模型,可部署至Ascend 310芯片中。首先,需使用此算法创建训练作业,获得相应的模型。

1. 在ModelArts管理控制台,选择“训练管理>训练作业”。

2. 在训练作业列表页面,单击“创建”。在创建训练作业页面中,几个关键参数的设置如下所示。

“算法来源”:选择“预置算法”,然后预置算法列表中选择“yolov3_resnet18”。

“数据来源”:选择“数据集”,然后在下拉框中选择数据准备中创建的数据集及其对应的版本。

“训练输出位置”:请选择一个OBS空目录,用于存储训练输出的模型。

“运行参数”:可以直接使用默认值运行此示例。如果想了解更多参数详情,请参见运行参数说明。

“资源池”:建议选择GPU规格的资源池创建训练作业。

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 146

Page 151: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 9-22 使用预置算法创建训练作业

3. 参数填写完成后,单击“下一步”,按界面提示完成训练作业创建。

4. 等待训练作业完成。

训练作业运行需要一段时间,根据您设置的max_epochs以及数据集的大小不同而不同,max_epochs设置的值越大,数据集越大,作业运行时间则越长。

根据使用经验,针对此样例数据集,当max_epochs设置为400时,选用GPU规格,其运行时长在4.5小时左右。

当训练作业的状态变更为“运行成功”时,表示已运行结束。您可以单击训练作业名称,进入详情页面,了解训练作业的“配置信息”、“日志”、“资源占用情况”和“评估结果”等信息。您也可以在配置的“训练输出位置”对应的OBS目录下获得训练生成的模型。

图 9-23 训练作业运行成功

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 147

Page 152: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

模型转换

使用预置算法训练所得的模型,需通过转换功能,转成适用于Ascend芯片的格式,即“om”格式。

1. 在ModelArts管理控制台,选择“模型管理 > 压缩/转换”。

2. 在模型转换作业列表页面,单击“创建任务”。在创建转换任务页面中,几个关键参数的设置如下所示。

– “输入框架”:选择“TensorFlow”。

– “转换输入目录”:请选择训练作业输出路径下的“<输出路径>/V00X/frozen_gragh”目录。其中“<输出路径>/V00X”请根据实际参数填写。

– “输出框架”:选择“MindSpore”。

– “转换输出目录”:请选择训练作业输出路径下的“<输出路径>/V00X/om/model”目录。其中“<输出路径>/V00X”请根据实际参数填写。

– “转换模板”:用于Ascend 310芯片的模型请选择“TF-FrozenGraph-To-Ascend-C32”模板。更多转换模板及其高级参数介绍请参见转换模板。

“高级选项”:本示例可直接使用参数值如下所示。如果需要修改,请参见转换模板了解参数说明。

“images”代表模型输入节点,“1”表示batch size,“3”表示channels数量,其中,“images”、“1”和“3”都是固定的,不支持修改,“352”和“640”根据训练作业中的“input_shape”参数进行设置。“images:1,352,640,3”中间用英文逗号隔开,不能包含空格。其他“高级选项”参数使用默认值即可。

图 9-24 转换模型

3. 转换模型的参数填写完成后,单击“立即创建”,页面自动跳转至“压缩/转换”列表。

当模型转换的“任务状态”变为“成功”时,表示模型已被转换成“om”格式。

图 9-25 模型转换成功

导入模型

模型转换为om格式后,可采用“从模板中选择元模型”的方式,导入模型。

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 148

Page 153: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

1. 在ModelArts管理控制台,选择“模型管理 > 模型”。

2. 在模型列表页面,单击导入。进入导入模型页面,参考如下说明填写关键参数。

– “元模型来源”:选择“从模板中选择”。

– “模型模板”:本示例的模型需部署在Ascend 310芯片上,因此需选择“ARM-Ascend模板”。然后在“模型目录”中选择模型转换步骤中“转换输出目录”。

– “输入输出模式”:由于“yolov3_resnet18”预置算法的模型为“物体检测”类型的,因此此处需选择预置物体检测模式。

– “部署类型”:默认勾选“在线服务”、“批量服务”和“边缘服务”。保持默认选项即可。

图 9-26 从模板中选择模型

3. 模型导入参数填写完成后,单击立即创建。页面自动跳转至模型列表页面,等待模型导入结果。

当模型的状态变为“正常”时,表示模型导入成功。

图 9-27 模型导入成功

部署为在线服务(Ascend 310)

模型导入成功后,可将此模型部署为在线服务,在部署时可使用Ascend 310芯片资源。

说明

本文仅描述了部署为在线服务的操作指导,针对批量服务的部署,其操作步骤类似,不再赘述。详细批量服务的部署指导,可参见ModelArts用户指南。

1. 在“模型管理>模型>我的模型”列表中,单击操作列的“部署 > 在线服务”。

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 149

Page 154: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 9-28 部署模型

2. 在“部署”页面,参考如下说明填写关键参数。

“资源池”:选择“公共资源池”。

“选择模型及配置”:“模型”及“版本”会自动选择前面导入的模型。在“计算节点规格”中,选择您创建的Ascend 310芯片资源,目前支持“ARMCPU:3核 6 GiB Ascend: 1 * Ascend 310”资源规格。其他参数可使用默认值。

图 9-29 部署为在线服务

3. 参数设置完成后,单击“下一步”,根据界面提示,完成在线服务的部署。

您可以进入“在线服务列表”页面,等待服务部署结束,当服务状态变为“运行中”时,表示服务部署成功。

图 9-30 运行中的服务

4. 在线服务部署完成后,您可以单击服务名称进入服务详情页。

– 访问服务:了解调用指南,获取API接口地址,可通过postman或使用curl命令发送请求,访问在线服务。

– 预测:单击“预测”页签,上传一个测试图片,进行预测。

更多操作,可参见ModelArts用户指南。

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 150

Page 155: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 9-31 调用指南

图 9-32 预测

9.4 Ascend910 训练和 Ascend310 推理的样例如下操作步骤,以MindSpore引擎的“ResNet50”为例,指导如何从AI Gallery订阅算法,然后使用算法创建训练模型,将所得的模型部署为在线服务(Ascend 910训练+Ascend 310推理)。针对支持Ascend 910训练和Ascend 310推理的算法,如ResNet_v1_50,可参考此章节操作。

说明

● Ascend芯片的应用,仅支持在“华北-北京四”区域试用。

● Ascend 910训练资源,只能用于一个正在运行中的作业。

1. 数据准备

2. 订阅算法

3. 使用订阅算法创建训练作业(Ascend 910)

4. 模型转换

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 151

Page 156: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

5. 导入模型

6. 部署为在线服务(Ascend 310)

数据准备1. 获取样例数据集,“Flowers-Data-Set”数据集中包含了花卉图片及其标注信

息。由于数据集中数据较多,推荐使用OBS Browser+工具上传文件。

2. 登录ModelArts管理控制台,在左侧菜单栏中选择“数据管理 > 数据集”。

3. 在数据集管理页面,单击“创建数据集”,创建一个“图像分类”类型的数据集。

其中,“数据集输入位置”,选择步骤1中数据存储的OBS路径。“数据集输出位置”,请务必选择一个空目录存储,且此目录不能是“数据集输入位置”对应目录的子目录。

图 9-33 创建数据集

4. 参数填写完成后,单击右下角的“创建”,完成数据集的创建。此时页面将自动跳转至数据集列表中。

5. 在数据集列表页面,单击数据集名称,进入数据集概览页,然后单击右上角的“开始标注”,进入数据集详情页。

6. 在数据集详情页面中,等待数据同步至ModelArts中。由于数据集已完成标注,无需重新标注,只需等待数据同步即可。由于数据集中数据较多,数据同步需要花费2分钟左右,请耐心等待。

当“已标注”页签下呈现所有上传数据时,表示数据已完成同步。

7. 单击左上角“返回数据集概览”,然后在数据集概览页中,单击右上角的“发布”。

8. 在弹出的对话框中,填写“版本名称”,可使用默认值。“训练验证比例”建议设置为“0.8”。然后单击“确定”完成发布。

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 152

Page 157: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

验证集不参与训练,用于训练过程中评估模型的好坏,验证集比例太大,会导致训练集变少,影响训练效果。验证集太少,可能导致验证的精度不准确。针对此示例,推荐使用0.8比例进行切分。

图 9-34 发布数据集版本

9. 在数据集列表页面,等待数据集发布完成。发布过程中的数据集,其名称前面有个运行标记。当数据集发布结束后,其操作列的发布按钮将呈现为蓝色可点击状态。

请耐心等待,必须等数据集发布成功后,才可以执行下一步训练模型的操作。

订阅算法

ModelArts官方提供了一个“ResNet50”,算法用途为图像分类,且此算法训练所得的模型,可快速部署在Ascend 310芯片上。目前“ResNet50”算法发布在AI Gallery中。您可以前往AI Gallery,订阅此模型,然后推送至ModelArts中。

1. 在ModelArts管理控制台中,在左侧菜单栏中选择“AI Gallery”,进入AIGallery。

2. 在AI Gallery中,在搜索框中输入“ResNet50”,查找对应的算法。

说明

由于AI Gallery发布的预置算法有多个“ResNet50”算法,其使用的AI引擎不同,能应用的训练资源或推理资源不同。本示例建议选择带有“Ascend910/310”标识的算法,可应用于Ascend 910训练和Ascend 310推理。其中一个“ResNet50”算法是使用MindSpore引擎,另一个是TensorFlow引擎,请根据您的实际情况选择。本示例选择MindSpore引擎的“ResNet50”算法进行演示。

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 153

Page 158: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 9-35 选择算法

3. 单击算法名称进入算法详情页,单击右侧的“订阅”,根据界面提示完成算法订阅。

此算法由ModelArts官方提供,目前免费开放。订阅算法完成后,页面的“订阅”按钮显示为“已订阅”。

4. 单击商品详情页的“前往控制台”,此时弹出“选择云服务区域”对话框,选择ModelArts对应的区域,然后再单击“确定”,

页面将自动跳转至ModelArts的“算法管理>市场订阅”中同步对应的算法。

图 9-36 前往控制台

图 9-37 选择云服务区域

5. 在ModelArts管理控制台的算法管理页面,算法将自动同步至ModelArts中。

未同步的算法,无法直接用于创建训练作业,因此从AI Gallery订阅完成后,需在ModelArts管理控制台执行同步操作。同步成功后,下方界面中的“创建训练作业”按钮可用,且状态变更为“就绪”。

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 154

Page 159: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 9-38 同步算法

使用订阅算法创建训练作业(Ascend 910)

算法订阅成功后,算法将呈现在“算法管理>市场订阅”中,您可以使用订阅的“ResNet50”算法创建训练作业,获得模型。

1. 进入“算法管理>市场订阅”页面,选择订阅的“ResNet50”算法,单击左侧的小三角展开算法,在版本列表中,单击“创建训练作业”。

图 9-39 创建训练作业

2. 在创建训练作业页面,参考如下说明填写关键参数。

– “算法来源”:系统默认选择订阅的算法,请勿随意修改。

– “数据来源”:选择数据集,然后从下拉框中选择数据准备中创建好的数据集。数据集一定要选择切分训练集比例的版本,否则将会导致训练失败。

– “训练输出”:选择一个OBS空目录存储训练输出的模型。

– “调优参数”:建议采用默认值。如需进行调优,可参考运行参数说明。

– “资源池”:建议选择Ascend 910芯片,需注意的是,MindSpore引擎的算法,仅支持使用Ascend 910训练,不支持CPU或GPU训练。

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 155

Page 160: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 9-40 训练作业参数

图 9-41 资源池设置

3. 参数填写完成后,单击“下一步”,根据界面提示完成训练作业创建。

4. 进入“训练管理>训练作业”页面,等待训练作业完成。

训练作业运行需要一些时间,请耐心等待。根据经验,选择样例数据集,使用Ascend 910(单卡)资源运行,预计30多分钟完成。

当训练作业的状态变更为“运行成功”时,表示已运行结束。您可以单击训练作业名称,进入详情页面,了解训练作业的“配置信息”、“日志”、“资源占用情况”和“评估结果”等信息。您也可以在配置的“训练输出位置”对应的OBS目录下获得训练生成的模型。

模型转换

使用预置算法训练所得的模型,需通过转换功能,转成适用于Ascend芯片的格式,即“om”格式。

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 156

Page 161: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

1. 在ModelArts管理控制台,选择“模型管理 > 压缩/转换”。

2. 在模型转换作业列表页面,单击“创建任务”。在创建转换任务页面中,参考如下说明填写关键参数。

– “输入框架”:选择“TensorFlow”。

– “转换输入目录”:请选择训练作业输出路径下的“<输出路径>/V00X/onnx”目录。其中“<输出路径>/V00X”请根据实际参数填写。

– “输出框架”:选择“MindSpore”。

– “转换输出目录”:请选择训练作业输出路径下的“<输出路径>/V00X/om/model”目录。由于训练作业可以运行多次,产生多个训练作业版本,因此“<输出路径>/V00X”请根据实际参数填写对应训练作业输出的目录及作业版本。

– “转换模板”:用于Ascend 310芯片的模型请选择“Onnx-To-Ascend-TBE”模板。更多转换模板及其高级参数介绍请参见转换模板。

– “高级选项”:本示例可直接使用参数值如下所示。如果需要修改,请参见转换模板了解参数说明。

“输入张量形状”:“x:1,3,224,224”

“输入数据格式”:“NCHW”

“转换输出节点”:“446:0”

“优选数据格式”:“5D”

“生成高精度模型”:“0”

“网络输出类型”:“FP32”

图 9-42 转换模型

如果您使用的算法为ResNet_v1_50算法(图像分类/TensorFlow/Ascend910训练),模型转换任务与ResNet50算法不一样的参数如下所示。

“输入框架”:选择“TensorFlow”。

“转换输入目录”:请选择训练作业输出路径下的“<输出路径>/V00X/frozen_gragh”目录。

“输出框架”:选择“MindSpore”。

“转换输出目录”:请选择训练作业输出路径下的“<输出路径>/V00X/om/model”目录。

“转换模板”:使用“TF-FrozenGraph-To-Ascend-C32”模板进行模型转换。

“输入张量形状”:“images:1,224,224,3”

“输入数据格式”:“NHWC”

“转换输出节点”:“logits:0”

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 157

Page 162: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

3. 转换模型的参数填写完成后,单击“立即创建”,页面自动跳转至“压缩/转换”列表。

当模型转换的“任务状态”变为“成功”时,表示模型已被转换成“om”格式。

图 9-43 模型转换成功

导入模型

模型转换为om格式后,可采用“从模板中选择元模型”的方式,导入模型。

1. 在ModelArts管理控制台,选择“模型管理 > 模型”。

2. 在模型列表页面,单击“导入”。进入“导入模型”页面,参考如下说明填写关键参数。

– “元模型来源”:选择“从模板中选择”。

– “模型模板”:本示例的模型需部署在Ascend 310芯片上,因此需选择“ARM-Ascend模板”。然后在“模型目录”中选择模型转换步骤中“转换输出目录”。

– “输入输出模式”:由于“ResNet50”算法的模型为“图像分类”类型的,因此此处需选择预置图像处理模式。

其他参数使用默认值。

图 9-44 从模板中选择模型

3. 模型导入参数填写完成后,单击“立即创建”。页面自动跳转至模型列表页面,等待模型导入结果。

当模型的状态变为“正常”时,表示模型导入成功。

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 158

Page 163: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 9-45 模型导入成功

部署为在线服务(Ascend 310)

模型导入成功后,可将此模型部署为在线服务,在部署时可使用Ascend 310芯片资源。

说明

本文仅描述了部署为在线服务的操作指导,针对批量服务的部署,其操作步骤类似,不再赘述。详细批量服务的部署指导,可参见ModelArts用户指南。

1. 在“模型管理>模型>我的模型”列表中,单击操作列的“部署 > 在线服务”。

图 9-46 部署模型

2. 在“部署”页面,参考如下说明填写关键参数。

“资源池”:选择“公共资源池”。

“选择模型及配置”:“模型”及“版本”会自动选择前面导入的模型。在“计算节点规格”中,选择您创建的Ascend 310芯片资源,目前支持“ARMCPU:3核 6 GiB Ascend: 1 * Ascend 310”资源规格。其他参数可使用默认值。

图 9-47 部署为在线服务

3. 参数设置完成后,单击“下一步”,根据界面提示,完成在线服务的部署。

您可以进入“在线服务列表”页面,等待服务部署结束,当服务状态变为“运行中”时,表示服务部署成功。

图 9-48 运行中的服务

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 159

Page 164: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

4. 在线服务部署完成后,您可以单击服务名称进入服务详情页。

– 访问服务:了解调用指南,获取API接口地址,可通过postman或使用curl命令发送请求,访问在线服务。

– 预测:单击“预测”页签,上传一个测试图片,进行预测。

更多操作,可参见ModelArts用户指南。

图 9-49 调用指南

图 9-50 预测

ModelArts佳实践 9 Ascend 应用教程

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 160

Page 165: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

10 配置 ModelArts 使用权限

10.1 场景说明如果您申请了一个华为云帐号,且需要将帐号权限分配给多个用户使用ModelArts。可参考本案例指导完成权限分配。

场景说明

如下图所示,管理者使用管理员帐号,即申请的华为云帐号。

● 场景1:用户组1代表团队1,此团队下的所有用户,需具备ModelArts的所有功能操作权限,同时具备OBS服务的所有操作权限。

● 场景2:用户组2代表团队2,此团队下的所有用户,需具备ModelArts部分功能的权限,同时具备ModelArts所需的OBS 小化权限。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 161

Page 166: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 10-1 场景图例

配置权限的流程及注意事项

首先,在配置权限之前,需要了解如下信息。配置权限的整体流程和说明,请参见图10-2。

● ModelArts使用IAM服务实现鉴权认证功能,权限配置需前往IAM管理控制台进行操作。

● 由于ModelArts依赖OBS服务进行数据存储,因此使用ModelArts前,必须获取相应的OBS服务的操作权限。

● 在使用ModelArts数据管理、模型管理等功能过程中,ModelArts可能需要访问您的OBS、SWR、IEF等依赖服务。为保证ModelArts能够访问依赖服务,则需要针对当前用户配置相关服务的访问授权。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 162

Page 167: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 10-2 配置权限的流程及说明

配置建议

IAM的权限管理,根据授权精细程度分为角色和策略。

● 角色:IAM 初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限 小化的安全管控要求。

● 策略:IAM 新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限 小化的安全管控要求。例如:针对OBS服务,管理员能够控制IAM用户仅能对某一个桶资源进行指定的管理操作。

简单来说,如果以服务为维度配置权限,则选择比较简单的方式,使用角色进行授权。如果希望以细粒度授权的方式,即细化至操作维度,则使用策略授权。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 163

Page 168: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

针对图10-1所示的场景,2种场景,其配置流程是相同的,针对不同场景,根据授权精度不同,其配置权限的方法不同。详细说明请参见表10-1。

表 10-1 不同场景的配置方法

配置流程 配置所有权限(使用角色授权)

配置所有权限(使用策略授权)

配置部分功能权限(使用策略授权)

说明

注册管理员帐号

配置管理员帐号

配置管理员帐号

配置管理员帐号

所有场景的操作步骤相同。

创建用户组 创建用户组 创建用户组 创建用户组 所有场景的操作步骤相同。

配置ModelArts权限

为用户组配置ModelArts的操作权限

(使用角色进行授权)

为用户组配置ModelArts的操作权限

(使用策略进行授权,赋予ModelArts所有操作权限)

为用户组配置ModelArts的操作权限

(使用策略进行授权,仅赋予部分功能的权限)

不同场景,存在配置上的差异。

支持使用角色或策略进行授权。如果配置部分功能权限时,请使用策略进行授权。

配置OBS权限

为用户组配置OBS的操作权限

(使用角色进行授权)

为用户组配置OBS的操作权限

(使用策略进行授权,仅授予ModelArts依赖OBS的小化授权项)

为用户组配置OBS的操作权限

(使用策略进行授权,仅授予ModelArts依赖OBS的小化授权项)

不同场景,存在配置上的差异。

支持使用角色或策略进行授权。如果配置部分功能权限时,请使用策略进行授权。

创建用户并加入用户组

创建用户并加入用户组

创建用户并加入用户组

创建用户并加入用户组

所有场景的操作步骤相同。不同场景,加入的用户组不同。

配置访问授权(委托)

为所有用户完成ModelArts全局配置

为所有用户完成ModelArts全局配置

为所有用户完成ModelArts全局配置

所有场景的操作步骤相同。

验证用户权限

测试用户权限 测试用户权限 测试用户权限 所有场景的操作步骤相同。

10.2 配置管理员帐号针对上述场景描述,首先需要一个管理员帐号(即注册的华为云帐号),且完成实名认证。如果您已有帐号,可跳过如下此步骤。

注册华为云帐号,完成实名认证

首先,需要注册1个华为云帐号作为管理员帐号。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 164

Page 169: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

1. 注册帐号。

进入华为云官网,单击右上角“注册”,根据界面提示填写相关参数,并完成帐号注册。

2. 实名认证。

注册成功后即自动登录华为云,您需要完成“实名认证”才可以正常使用服务。具体认证方式请参见帐号实名认证。

使用委托完成授权(全局配置)

如果管理员帐号需要获得ModelArts操作权限,需执行如下操作完成访问授权配置。更多说明请参见准备工作>使用委托授权。

1. 使用管理员帐号登录ModelArts服务管理控制台。

请注意选择左上角的区域,例如“华北-北京四”。

2. 在左侧导航栏单击“全局配置”,进入“全局配置”页面。

3. 单击“访问授权”。在弹出的“访问授权”窗口中,参考表10-2填写参数,勾选“我已经详细阅读并同意《ModelArts服务声明》”,然后单击“同意授权”。

表 10-2 参数说明

参数 说明

“授权方式” 请选择“使用委托”。

“用户名” 在右侧下拉框中选择帐号,默认选择“所有IAM用户(包括自己)”,该选项表示会给所有IAM子用户包含当前帐号进行授权。在下拉框中,将显示当前帐号下的所有IAM用户,您可以选择为其中某一IAM用户配置委托。

“委托” 首次使用ModelArts全局配置时,暂无可用委托,此时您可以单击“自动创建”,为用户名中选择的用户自动创建一个可用的委托。

委托创建完成后,下拉框将自动选择自动创建好的委托。

图 10-3 使用委托授权

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 165

Page 170: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

10.3 配置所有权限(角色)本章节介绍如何为用户组1下所有用户配置ModelArts的所有权限。针对ModelArts和OBS服务使用权限,本示例使用角色进行授权,即以服务为颗粒度进行授权。

创建用户组

1. 在管理控制台中,单击右上角用户名,在下拉框中选择“统一身份认证”,进入IAM服务。

2. 在左侧菜单栏中,选择“用户组”。

3. 单击右上角“创建用户组”,在“用户组名称”中填入“用户组1”,然后单击“确定”完成用户组创建。

图 10-4 创建用户组

创建完成后,返回用户组列表。

为用户组配置 ModelArts 的操作权限

如下操作,将指导您为用户组1配置ModelArts的所有操作权限。用户组权限配置后,其组内的所有用户将具备相应的权限。

1. 在IAM管理控制台,选择“用户组”。

2. 在用户组1所在行,单击“权限配置”。

3. 单击“配置权限”,进入授权页面。

4. 在授权页面中,填写ModelArts权限的相关配置。

– 作用范围:选择“区域级项目”,同时选择对应区域,需与您使用的ModelArts为同一区域,例如“华北-北京四”。

– 权限:在搜索框中输入“ModelArts”,筛选出ModelArts FullAccess和ModelArts CommonOperations权限,勾选ModelArts FullAccess和ModelArts CommonOperations授权项。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 166

Page 171: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 10-5 权限配置

5. 配置完成后,单击“确定”完成ModelArts权限配置。

为用户组配置 OBS 的操作权限

由于使用ModelArts过程中,需要将相关数据、代码或模型存储在OBS中,因此需获取相应的OBS权限,才能正常使用ModelArts的所有功能。如下操作指导如何为用户配置OBS的所有操作权限。如果希望为用户配置ModelArts依赖的 小化权限,请参见为用户组配置OBS的操作权限。

1. 为用户组配置ModelArts的操作权限完成后,界面将返回至用户组权限配置页面。单击“配置权限”。

2. 进入授权页面后,填写OBS权限的相关配置。

– 作用范围:选择“全局项目”。

– 权限:在搜索框中输入“Tenant Administrator”,勾选此权限。

说明

授予“Tenant Administrator”权限,则此用户组下的用户将具备“全局服务”中所有服务的操作权限(除IAM管理权限外),请谨慎操作。

图 10-6 权限配置

3. 配置完成后,单击“确定”完成OBS权限配置。此授权需等待15-30分钟才可生效,请耐心等待。

创建用户并加入用户组1. 在IAM左侧菜单栏中,选择“用户”。

2. 单击右上角“创建用户”。

3. 在“创建用户”页面中,可在“用户信息”下方添加多个用户,在本示例中,添加User-A、User-B、User-C三个用户。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 167

Page 172: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

请根据界面提示,填写必选参数,然后单击“下一步”。

图 10-7 创建多个用户

4. 在“加入用户组”步骤中,选择“用户组1”,然后单击“创建用户”。

图 10-8 加入用户组

界面将逐步创建好前面设置的3个用户。

为所有用户完成 ModelArts 全局配置

在使用ModelArts数据管理、模型管理等功能过程中,ModelArts可能需要访问您的OBS、SWR、IEF等依赖服务。为保证ModelArts能够访问依赖服务,则需要针对当前用户配置相关服务的访问授权。

推荐使用委托授权的方式,此方式只允许管理员帐号为IAM用户进行配置。因此,本示例中,管理员帐号需为所有用户完成访问授权的配置。更多说明请参见准备工作>使用委托授权。

1. 使用管理员帐号登录ModelArts服务管理控制台。

请注意选择左上角的区域,例如“华北-北京四”。

2. 在左侧导航栏单击“全局配置”,进入“全局配置”页面。

3. 单击“访问授权”。在弹出的“访问授权”窗口中,参考表10-3填写参数,勾选“我已经详细阅读并同意《ModelArts服务声明》”,然后单击“同意授权”。

表 10-3 参数说明

参数 说明

“授权方式” 请选择“使用委托”。

“用户名” 在右侧下拉框中选择帐号,默认选择“所有IAM用户(包括自己)”,该选项表示会给所有IAM子用户包含当前帐号进行授权。

在下拉框中,将显示当前帐号下的所有IAM用户,您也可以选择为其中某一IAM用户配置委托。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 168

Page 173: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

参数 说明

“委托” 首次使用ModelArts全局配置时,暂无可用委托,此时您可以单击“自动创建”,为用户名中选择的用户自动创建一个可用的委托。

委托创建完成后,下拉框将自动选择自动创建好的委托。

图 10-9 使用委托授权

测试用户权限

由于OBS的权限需要等待15-30分钟生效,建议在配置完成后,等待30分钟后,再执行如下验证操作。

1. 使用User-A、User-B或User-C任意一个用户登录ModelArts管理控制台。在登录页面,请使用“IAM用户登录”方式进行登录。

首次登录会提示修改密码,请根据界面提示进行修改。

2. 验证ModelArts权限。

a. 在左上角选择区域,区域需与授权配置中的区域相同。本示例以“华北-北京四”为例。

b. 在ModelArts左侧菜单栏中,选择“数据管理>数据集”,单击“创建数据集”,如果可以正常打开创建页面,说明具备ModelArts的操作权限。

您也可以尝试其他功能,例如“训练管理>训练作业”、“开发环境>Notebook”等,如能正常打开创建页面,即可正常使用ModelArts。

3. 验证OBS权限。

a. 在左上角的服务列表中,选择OBS服务,进入OBS管理控制台。

b. 在OBS管理控制台中,单击右上角的“创建桶”,如果能正常打开页面,表示当前用户具备OBS的操作权限。

验证结束,当前用户同时具备ModelArts和OBS的操作权限,可正常开始使用ModelArts服务。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 169

Page 174: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

10.4 配置所有权限(策略)本章节介绍如何为用户组1下所有用户配置ModelArts的所有权限。针对ModelArts和OBS服务使用权限,本示例使用策略进行授权,即细粒度授权方式,可精确到具体操作。

创建用户组

1. 在管理控制台中,单击右上角用户名,在下拉框中选择“统一身份认证”,进入IAM服务。

2. 在左侧菜单栏中,选择“用户组”。

3. 单击右上角“创建用户组”,在“用户组名称”中填入“用户组1”,然后单击“确定”完成用户组创建。

图 10-10 创建用户组

创建完成后,返回用户组列表。

为用户组配置 ModelArts 的操作权限

如下操作,将指导您为用户组1配置ModelArts的所有操作权限。用户组权限配置后,其组内的所有用户将具备相应的权限。

首先,创建一个含ModelArts具体操作权限的自定义策略,然后为用户组授予此自定义策略权限。

1. 创建自定义策略。更多指导请参见创建ModelArts自定义策略。

a. 在IAM管理控制台,选择“权限”。

b. 在“权限”页面,单击右上角“创建自定义策略”。

c. 填写自定义策略的详细配置。

策略名称:可自定义一个方便辨识的名称。

作用范围:选择项目级服务。ModelArts属于项目级服务。

策略配置方式:JSON视图。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 170

Page 175: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

策略内容:请获取如下所示策略示例进行配置。本示例提供两种策略示例,您可以根据实际情况选择一种进行配置即可。

图 10-11 配置 ModelArts 自定义策略

配置ModelArts所有操作权限的策略。{ "Version": "1.1", "Statement": [ { "Action": [ "modelarts:*:*" ], "Effect": "Allow" } ]}

配置ModelArts普通用户的操作权限,除了专属资源池的增删改,其他功能均具备权限。{ "Version": "1.1", "Statement": [ { "Action": [ "modelarts:*:*" ], "Effect": "Allow" }, { "Action": [ "modelarts:pool:create", "modelarts:pool:update", "modelarts:pool:delete" ], "Effect": "Deny" } ]}

d. 策略配置完成后,单击“确定”完成操作,界面将自动跳转至权限管理页面。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 171

Page 176: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

2. 给用户组添加配置好的自定义策略。

a. 在IAM管理控制台,选择“用户组”。

b. 在用户组1所在行,单击“权限配置”。

c. 单击“配置权限”,进入授权页面。

d. 在授权页面中,选择ModelArts自定义策略。

▪ 作用范围:选择“区域级项目”,同时选择对应区域,需与您使用的ModelArts为同一区域,例如“华北-北京四”。

▪ 权限:在搜索框中输入关键词,选择步骤1创建的自定义策略。

图 10-12 添加自定义策略

e. 配置完成后,单击“确定”完成ModelArts权限配置。

为用户组配置 OBS 的操作权限

由于使用ModelArts过程中,需要将相关数据、代码或模型存储在OBS中,因此需获取相应的OBS权限,才能正常使用ModelArts的所有功能。

本示例采用策略授权的方式,为用户配置OBS权限。首先,创建一个含OBS具体操作权限的自定义策略(仅包含ModelArts所需的 小化授权范围),然后为用户组授予此自定义策略权限。

1. 创建自定义策略。更多指导请参见OBS自定义策略。

a. 在IAM管理控制台,选择“权限”。

b. 在“权限”页面,单击右上角“创建自定义策略”。

c. 填写自定义策略的详细配置。

策略名称:可自定义一个方便辨识的名称。

作用范围:选择“全局服务”。请注意,此处与ModelArts自定义策略不同,ModelArts属于区域级项目,OBS属于全局服务,使用时无需选择区域。

策略配置方式:JSON视图。

策略内容:请获取如下所示策略示例进行配置。本示例为ModelArts依赖OBS服务的 小化权限项,包含OBS桶和OBS对象的权限。具备如下权限后,用户即可在ModelArts中正常访问OBS。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 172

Page 177: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 10-13 配置 OBS 自定义策略

{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "obs:object:PutObjectAcl", "obs:bucket:PutBucketAcl", "obs:bucket:PutBucketPolicy", "obs:bucket:HeadBucket", "obs:bucket:ListAllMyBuckets", "obs:bucket:ListBucket", "obs:object:DeleteObjectVersion", "obs:object:AbortMultipartUpload", "obs:object:DeleteObject", "obs:object:PutObject", "obs:bucket:CreateBucket", "obs:object:GetObject", "obs:bucket:GetBucketLocation", "obs:object:GetObjectVersionAcl", "obs:bucket:GetBucketAcl", "obs:object:ListMultipartUploadParts", "obs:bucket:ListBucketVersions", "obs:object:GetObjectVersion", "obs:object:GetObjectAcl", "obs:bucket:GetBucketPolicy" ] } ]}

a. 策略配置完成后,单击“确定”完成操作,界面将自动跳转至权限管理页面。

2. 给用户组添加配置好的自定义策略。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 173

Page 178: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

a. 在IAM管理控制台,选择“用户组”。

b. 在用户组所在行,单击“权限配置”。

c. 单击“配置权限”,进入授权页面。

d. 在授权页面中,选择OBS自定义策略。

▪ 作用范围:选择“全局服务”。

▪ 权限:在搜索框中输入关键词,选择步骤1创建的OBS自定义策略。

图 10-14 添加自定义策略

e. 配置完成后,单击“确定”完成OBS权限配置。

创建用户并加入用户组

1. 在IAM左侧菜单栏中,选择“用户”。

2. 单击右上角“创建用户”。

3. 在“创建用户”页面中,可在“用户信息”下方添加多个用户,在本示例中,添加User-A、User-B、User-C三个用户。

请根据界面提示,填写必选参数,然后单击“下一步”。

图 10-15 创建多个用户

4. 在“加入用户组”步骤中,选择“用户组1”,然后单击“创建用户”。

图 10-16 加入用户组

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 174

Page 179: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

界面将逐步创建好前面设置的3个用户。

为所有用户完成 ModelArts 全局配置

在使用ModelArts数据管理、模型管理等功能过程中,ModelArts可能需要访问您的OBS、SWR、IEF等依赖服务。为保证ModelArts能够访问依赖服务,则需要针对当前用户配置相关服务的访问授权。

推荐使用委托授权的方式,此方式只允许管理员帐号为IAM用户进行配置。因此,本示例中,管理员帐号需为所有用户完成访问授权的配置。更多说明请参见准备工作>使用委托授权。

1. 使用管理员帐号登录ModelArts服务管理控制台。

请注意选择左上角的区域,例如“华北-北京四”。

2. 在左侧导航栏单击“全局配置”,进入“全局配置”页面。

3. 单击“访问授权”。在弹出的“访问授权”窗口中,参考表10-4填写参数,勾选“我已经详细阅读并同意《ModelArts服务声明》”,然后单击“同意授权”。

表 10-4 参数说明

参数 说明

“授权方式” 请选择“使用委托”。

“用户名” 在右侧下拉框中选择帐号,默认选择“所有IAM用户(包括自己)”,该选项表示会给所有IAM子用户包含当前帐号进行授权。

在下拉框中,将显示当前帐号下的所有IAM用户,您也可以选择为其中某一IAM用户配置委托。

“委托” 首次使用ModelArts全局配置时,暂无可用委托,此时您可以单击“自动创建”,为用户名中选择的用户自动创建一个可用的委托。

委托创建完成后,下拉框将自动选择自动创建好的委托。

图 10-17 使用委托授权

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 175

Page 180: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

测试用户权限

由于OBS的权限需要等待15-30分钟生效,建议在配置完成后,等待30分钟后,再执行如下验证操作。

1. 使用User-A、User-B或User-C任意一个用户登录ModelArts管理控制台。在登录页面,请使用“IAM用户登录”方式进行登录。

首次登录会提示修改密码,请根据界面提示进行修改。

2. 验证ModelArts权限。

a. 在左上角选择区域,区域需与授权配置中的区域相同。本示例以“华北-北京四”为例。

b. 在ModelArts左侧菜单栏中,选择“数据管理>数据集”,单击“创建数据集”,如果可以正常打开创建页面,说明具备ModelArts的操作权限。

您也可以尝试其他功能,例如“训练管理>训练作业”、“开发环境>Notebook”等,如能正常打开创建页面,即可正常使用ModelArts。

3. 验证OBS权限。

a. 在左上角的服务列表中,选择OBS服务,进入OBS管理控制台。

b. 在OBS管理控制台中,单击右上角的“创建桶”,如果能正常打开页面,表示当前用户具备OBS的操作权限。

验证结束,当前用户同时具备ModelArts和OBS的操作权限,可正常开始使用ModelArts服务。

10.5 配置部分功能的权限(策略)本章节介绍如何为用户组2下所有用户配置ModelArts部分功能权限,针对部分功能授权,则无法使用角色授权,需使用自定义策略的方式进行授权。

创建用户组

1. 在管理控制台中,单击右上角用户名,在下拉框中选择“统一身份认证”,进入IAM服务。

2. 在左侧菜单栏中,选择“用户组”。

3. 单击右上角“创建用户组”,在“用户组名称”中填入“用户组2”,然后单击“确定”完成用户组创建。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 176

Page 181: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 10-18 创建用户组

创建完成后,返回用户组列表。

为用户组配置 ModelArts 的操作权限

本示例指导您通过自定义策略,配置ModelArts部分功能的操作权限(拒绝用户使用开发环境功能)。

首先,创建一个含ModelArts具体操作权限的自定义策略,然后为用户组授予此自定义策略权限。

1. 创建自定义策略。更多指导请参见创建ModelArts自定义策略。

a. 在IAM管理控制台,选择“权限”。

b. 在“权限”页面,单击右上角“创建自定义策略”。

c. 填写自定义策略的详细配置。

策略名称:可自定义一个方便辨识的名称。

作用范围:选择项目级服务。ModelArts属于项目级服务。

策略配置方式:JSON视图。

策略内容:请获取如下所示策略示例进行配置。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 177

Page 182: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 10-19 配置 ModelArts 自定义策略

如下策略示例,拒绝用户使用开发环境功能。

说明

由于ModelArts内部机制问题,新创建的用户默认具备ModelArts的操作权限。当需要配置部分功能权限时,需要使用Deny的方式进行配置,即配置不让用户使用某些功能。

{ "Version": "1.1", "Statement": [

{ "Effect": "Deny", "Action": [ "modelarts:notebook:list", "modelarts:notebook:create" , "modelarts:notebook:get" , "modelarts:notebook:update" , "modelarts:notebook:delete" , "modelarts:notebook:action" , "modelarts:notebook:access" ] } ] }

d. 策略配置完成后,单击“确定”完成操作,界面将自动跳转至权限管理页面。

2. 给用户组添加配置好的自定义策略。

a. 在IAM管理控制台,选择“用户组”。

b. 在用户组2所在行,单击“权限配置”。

c. 单击“配置权限”,进入授权页面。

d. 在授权页面中,选择ModelArts自定义策略。

▪ 作用范围:选择“区域级项目”,同时选择对应区域,需与您使用的ModelArts为同一区域,例如“华北-北京四”。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 178

Page 183: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

▪ 权限:在搜索框中输入关键词,选择步骤1创建的自定义策略。

图 10-20 添加自定义策略

e. 配置完成后,单击“确定”完成ModelArts权限配置。

为用户组配置 OBS 的操作权限

由于使用ModelArts过程中,需要将相关数据、代码或模型存储在OBS中,因此需获取相应的OBS权限,才能正常使用ModelArts的所有功能。

本示例采用策略授权的方式,为用户配置OBS权限。首先,创建一个含OBS具体操作权限的自定义策略(仅包含ModelArts所需的 小化授权范围),然后为用户组授予此自定义策略权限。

1. 创建自定义策略。更多指导请参见OBS自定义策略。

a. 在IAM管理控制台,选择“权限”。

b. 在“权限”页面,单击右上角“创建自定义策略”。

c. 填写自定义策略的详细配置。

策略名称:可自定义一个方便辨识的名称。

作用范围:选择“全局服务”。请注意,此处与ModelArts自定义策略不同,ModelArts属于区域级项目,OBS属于全局服务,使用时无需选择区域。

策略配置方式:JSON视图。

策略内容:请获取如下所示策略示例进行配置。本示例为ModelArts依赖OBS服务的 小化权限项,包含OBS桶和OBS对象的权限。具备如下权限后,用户即可在ModelArts中正常访问OBS。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 179

Page 184: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 10-21 配置 OBS 自定义策略

{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "obs:object:PutObjectAcl", "obs:bucket:PutBucketAcl", "obs:bucket:PutBucketPolicy", "obs:bucket:HeadBucket", "obs:bucket:ListAllMyBuckets", "obs:bucket:ListBucket", "obs:object:DeleteObjectVersion", "obs:object:AbortMultipartUpload", "obs:object:DeleteObject", "obs:object:PutObject", "obs:bucket:CreateBucket", "obs:object:GetObject", "obs:bucket:GetBucketLocation", "obs:object:GetObjectVersionAcl", "obs:bucket:GetBucketAcl", "obs:object:ListMultipartUploadParts", "obs:bucket:ListBucketVersions", "obs:object:GetObjectVersion", "obs:object:GetObjectAcl", "obs:bucket:GetBucketPolicy" ] } ]}

a. 策略配置完成后,单击“确定”完成操作,界面将自动跳转至权限管理页面。

2. 给用户组添加配置好的自定义策略。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 180

Page 185: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

a. 在IAM管理控制台,选择“用户组”。

b. 在用户组所在行,单击“权限配置”。

c. 单击“配置权限”,进入授权页面。

d. 在授权页面中,选择OBS自定义策略。

▪ 作用范围:选择“全局服务”。

▪ 权限:在搜索框中输入关键词,选择步骤1创建的OBS自定义策略。

图 10-22 添加自定义策略

e. 配置完成后,单击“确定”完成OBS权限配置。

创建用户并加入用户组

1. 在IAM左侧菜单栏中,选择“用户”。

2. 单击右上角“创建用户”。

3. 在“创建用户”页面中,可在“用户信息”下方添加多个用户,在本示例中,添加User-D、User-E、User-F三个用户。

请根据界面提示,填写必选参数,然后单击“下一步”。

图 10-23 创建多个用户

4. 在“加入用户组”步骤中,选择“用户组2”,然后单击“创建用户”。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 181

Page 186: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 10-24 加入用户组

界面将逐步创建好前面设置的3个用户。

为所有用户完成 ModelArts 全局配置

在使用ModelArts数据管理、模型管理等功能过程中,ModelArts可能需要访问您的OBS、SWR、IEF等依赖服务。为保证ModelArts能够访问依赖服务,则需要针对当前用户配置相关服务的访问授权。

推荐使用委托授权的方式,此方式只允许管理员帐号为IAM用户进行配置。因此,本示例中,管理员帐号需为所有用户完成访问授权的配置。更多说明请参见准备工作>使用委托授权。

1. 使用管理员帐号登录ModelArts服务管理控制台。

请注意选择左上角的区域,例如“华北-北京四”。

2. 在左侧导航栏单击“全局配置”,进入“全局配置”页面。

3. 单击“访问授权”。在弹出的“访问授权”窗口中,参考表10-5填写参数,勾选“我已经详细阅读并同意《ModelArts服务声明》”,然后单击“同意授权”。

表 10-5 参数说明

参数 说明

“授权方式” 请选择“使用委托”。

“用户名” 在右侧下拉框中选择帐号,默认选择“所有IAM用户(包括自己)”,该选项表示会给所有IAM子用户包含当前帐号进行授权。

在下拉框中,将显示当前帐号下的所有IAM用户,您也可以选择为其中某一IAM用户配置委托。

“委托” 首次使用ModelArts全局配置时,暂无可用委托,此时您可以单击“自动创建”,为用户名中选择的用户自动创建一个可用的委托。

委托创建完成后,下拉框将自动选择自动创建好的委托。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 182

Page 187: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 10-25 使用委托授权

测试用户权限

由于OBS的权限需要等待15-30分钟生效,建议在配置完成后,等待30分钟后,再执行如下验证操作。

1. 使用User-D、User-E或User-F任意一个用户登录ModelArts管理控制台。在登录页面,请使用“IAM用户登录”方式进行登录。

首次登录会提示修改密码,请根据界面提示进行修改。

2. 验证ModelArts权限。

a. 在左上角选择区域,区域需与授权配置中的区域相同。本示例以“华北-北京四”为例。

b. 在ModelArts左侧菜单栏中,选择“开发环境>Notebook”,界面右上角将提示权限不足,表示此用户不具备Notebook操作权限,即前面的自定义策略配置已生效。

图 10-26 提示权限不足

c. 在ModelArts左侧菜单栏中,选择“数据管理>数据集”,单击“创建数据集”,如果可以正常打开创建页面,说明具备ModelArts的操作权限。

您也可以尝试其他功能,例如“训练管理>训练作业”等,如能正常打开创建页面,即可正常使用ModelArts。

3. 验证OBS权限。

a. 在左上角的服务列表中,选择OBS服务,进入OBS管理控制台。

b. 在OBS管理控制台中,单击右上角的“创建桶”,如果能正常打开页面,表示当前用户具备OBS的操作权限。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 183

Page 188: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

验证结束,当前用户同时具备ModelArts部分功能的操作权限,可正常开始使用ModelArts服务。

ModelArts佳实践 10 配置 ModelArts 使用权限

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 184

Page 189: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

11 高阶应用

11.1 使用强化学习预置算法应用于自定义环境本章节介绍使用AI Gallery强化学习算法训练自定义环境“贪吃蛇”示例。

说明

本示例展示强化学习预置算法自定义环境用法,建议您准备好用于强化学习的自定义环境。

环境介绍与实现

如下所示仅提供本示例的自定义环境描述,帮助理解后续步骤。当您使用此功能时,需替换为您的自定义环境,同时将您的自定义环境相关文件按文件结构要求上传至OBS桶中。

本示例自定义环境相关代码,可从ModelArts-Lab工程中获得。下载工程,然后在“\ModelArts-Lab-master\official_examples\Reinforcement_Learning_Custom_Env_Example_Code”获取训练代码“custom_env”和用于预测的“Single_Step_Data_For_Inference.txt”文件。将训练代码“custom_env”上传至OBS桶中。

● 环境介绍

贪吃蛇游戏是一款休闲益智类游戏,该游戏通过控制蛇头方向吃果实,从而使得蛇的长度变得越来越长,随着蛇本身长度的增加,游戏难度也随之增加。

● 问题描述

– 目标:利用强化学习训练智能体控制蛇移动并不断吃果实,以期获得尽可能多的分数或者尽可能长的长度。

– 环境:贪吃蛇游戏环境,每吃到一个果实,积分增加1并且蛇的长度增加1;若蛇的头部碰到边界或者自己的身体,则蛇死亡,游戏失败。

– 状态:游戏画面信息

– 动作:上、下、左、右

● 环境实现

本示例中,代码及文件结构如下所示。|- custom_env |- snake_env

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 185

Page 190: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

|- snake_env.py |- __init__.py

其中,环境的实现文件和__init__.py文件一起放在命名为“custom_env”的文件夹内(说明:此文件夹必须命名为“custom_env”),本示例中,snake_env文件夹内的snake_env.py是环境的具体实现代码。

其中,在snake_env.py中除了环境的实现代码(满足gym标准),还必须包含一个方法,主要用来实例化环境类并返回这个实例。snake_env.py相应内容结构如下所示。class Snake_env(gym.Env): def __init__() ... ...

def create_custom_env(env_config): custom_env = Snake_env() return custom_env

上述中的__init__.py主要用于控制导入的模块,本示例中内容如下所示。from .snake_env.snake_env import create_custom_env __all__ = ["create_custom_env"]

进入 AI Gallery 订阅强化学习算法

ModelArts预置的强化学习算法(名为“强化学习预置算法”)发布在AI Gallery中。您可以前往AI Gallery,订阅此模型,然后同步至ModelArts中。

1. 在ModelArts管理控制台中,在左侧菜单栏中选择“AI Gallery”,进入AIGallery。

2. 在AI Gallery中,在搜索框中输入“强化学习预置算法”,查找对应的算法。

3. 单击算法名称进入算法详情页,单击右侧的“订阅”,根据界面提示完成算法订阅。

此算法由ModelArts官方提供,目前免费开放。订阅算法完成后,页面的“订阅”按钮显示为“已订阅”。。

4. 单击商品详情页的“前往控制台”,此时弹出“选择云服务区域”对话框,选择对应的区域,然后再单击“确定”,

页面将自动跳转至ModelArts的“算法管理>市场订阅”中同步对应的算法。

说明

此处选择的区域,务必与代码存储的OBS桶所在区域、ModelArts的使用区域一致。

图 11-1 前往控制台

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 186

Page 191: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 11-2 选择云服务区域

5. 在ModelArts管理控制台的算法管理页面,算法将自动同步至ModelArts中。

未同步的算法,无法直接用于创建训练作业,因此从AI Gallery订阅完成后,需在ModelArts管理控制台执行同步操作。同步成功后,下方界面中的“创建训练作业”按钮可用,且状态变更为“就绪”。

图 11-3 同步算法

使用订阅算法创建训练作业

算法订阅成功后,算法将呈现在“算法管理>市场订阅”中,您可以使用订阅的“强化学习预置算法”算法创建训练作业,获得模型。

1. 进入“算法管理>市场订阅”页面,选择订阅的“强化学习预置算法”算法,单击左侧的小三角展开算法,在版本列表中,单击“创建训练作业”。

图 11-4 创建训练作业

2. 在创建训练作业页面,参考如下说明填写关键参数。

– “算法来源”:系统默认选择上一步骤订阅的算法,请勿随意修改。

– “训练输入”:本示例使用自定义环境,所以“训练输入>数据来源”需要选择自定义模型所在的文件夹,也就是选择到“custom_env”这个层级即可(具体自定义环境文件结构请参见环境介绍与实现)。

– “训练输出”:选择一个OBS空目录存储训练输出的模型。

– “调优参数”:由于不需要使用内置环境,需将参数“use_preset_env”设置为“False”。其他参数在本示例中建议采用默认值。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 187

Page 192: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

– “资源池”:建议选择CPU规格的资源池,例如“modelarts.vm.cpu.8u”规格。

图 11-5 训练作业参数

图 11-6 调优参数配置

3. 参数填写完成后,单击“下一步”,根据界面提示完成训练作业创建。

4. 进入“训练管理>训练作业”页面,等待训练作业完成。

训练作业运行需要几分钟时间,请耐心等待。根据经验,此样例不会超过10分钟。

当训练作业的状态变更为“运行成功”时,表示已运行结束。您可以单击训练作业名称,进入详情页面,了解训练作业的“配置信息”、“日志”、“资源占用情况”等信息。您也可以在配置的“训练输出位置”对应的OBS目录下获得训练生成的模型。

导入模型

1. 在ModelArts管理控制台,选择“模型管理 > 模型”。

2. 在模型列表页面,单击“导入”。进入导入模型页面,参考如下说明填写关键参数。

“元模型来源”:选择“从训练中选择”。然后在“选择训练作业”右侧下拉框中选择上一步创建的训练作业。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 188

Page 193: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 11-7 从训练中选择模型

3. 模型导入参数填写完成后,单击“立即创建”。页面自动跳转至模型列表页面,等待模型导入结果。

当模型的状态变为“正常”时,表示模型导入成功。

图 11-8 模型导入成功

部署为在线服务

模型导入成功后,可将此模型部署为在线服务,部署完成后即可在ModelArts管理控制台进行预测。

1. 在模型列表中,单击操作列的“部署 > 在线服务”。

图 11-9 部署模型

2. 在部署页面,参考如下说明填写关键参数。

“资源池”:选择“公共资源池”。

“选择模型及配置”:“模型”及“版本”会自动选择前面导入的模型。“计算节点规格”,在下拉框中选择CPU或GPU,本示例选择CPU资源进行部署。计算节点个数,需设置为“1”,目前仅支持单机部署,只能设置为“1”,不可修改。

其他参数可使用默认值。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 189

Page 194: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 11-10 部署模型参数

3. 参数设置完成后,单击“下一步”,根据界面提示,完成在线服务的部署。

您可以进入“在线服务列表”页面,等待服务部署结束,当服务状态变为“运行中”时,表示服务部署成功。

4. 在线服务部署完成后,您可以单击服务名称进入服务详情页。

– 访问服务:了解“调用指南”,获取“API接口地址”,了解“输入参数”和“输出参数”,可通过postman或使用curl命令发送请求,调用方法请参见访问在线服务。

图 11-11 调用指南

– 预测:单击“预测”页签,输入相应的参数或代码,单击“预测”即可看到运行结果,具体格式及要求参考算法说明文档。

本示例提供了可用于推理预测的数据,从ModelArts-Lab工程下载时,可获得训练代码和用于预测的数据文件。在本地打开“Single_Step_Data_For_Inference.txt”文件,拷贝文件中的所有内容,然后将内容黏贴至预测界面的“预测代码”输入框中。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 190

Page 195: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

说明

● 上述推理预测使用的数据,可以在ModelArts-Lab工程代码目录中下载,可从“\ModelArts-Lab-master\official_examples\Reinforcement_Learning_Custom_Env_Example_Code”目录下获取。

● 对于不同的环境,其环境状态不同,对应的“observations”就不同,应用推理时需要明确。

● 在线部署推理仅为单步预测,如果想实现完整的业务推理,需要使用训练保存的模型,编写相应的推理程序。

图 11-12 预测结果

11.2 使用 MoXing

11.2.1 冰山识别(使用 MoXing 框架实现图像分类)

本文介绍如何在ModelArts上使用MoXing实现Kaggle竞赛中的冰山图像分类任务。实验所使用的图像为雷达图像,需要参赛者利用算法识别出图像中是冰山(iceberg)还是船(ship)。

开始使用如下样例前,请务必按准备工作指导完成必要操作。冰山识别样例的操作流程如下所示。

1. 准备数据:获取本示例使用的数据集并上传至OBS,编写代码将数据集格式转换成TFRecord。

2. 训练模型:使用MoXing API编写实现冰山图像分类的网络模型,新建训练作业进行模型训练。

3. 预测结果:再次新建训练作业,对示例数据集进行预测,并将结果保存到“csv”文件。

4. 查看结果:查看“csv”文件中的预测结果。

准备数据

ModelArts在公共OBS桶中提供了Iceberg数据集,命名为“Iceberg-Data-Set”,因此,本文的操作示例使用此数据集进行模型构建。您需要执行如下操作,将数据集上传至您的OBS目录下,即准备工作中您创建的OBS目录“test-modelarts/iceberg/iceberg-data”。然后通过Notebook将数据集格式转换成TFRecord格式。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 191

Page 196: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

1. 单击数据集下载链接,将“Iceberg-Data-Set”数据集下载至本地。

2. 在本地,将“Iceberg-Data-Set.zip”压缩包解压。例如,解压至本地“Iceberg-Data-Set”文件夹下。

3. 参考上传文件,使用批量上传方式将“Iceberg-Data-Set”文件夹下的所有文件上传至“test-modelarts/iceberg/iceberg-data”OBS路径下。

其中,训练集“train.json”包含4类数据:“band_1”、“band_2”、“inc_angle”和“is_iceberg”(测试集)。

– “band_1”和“band_2”:雷达图像的2个通道,分别是75x75的矩阵。

– “inc_angle”:雷达图拍摄角度,单位是角度。

– “is_iceberg”: 标注。冰山为1,船为0。

4. 进入“开发环境>Notebook”页面,单击“创建”,在弹出框中填写Notebook名称。单击“下一步”,进入规格确认页面,单击“提交”完成创建操作。

针对当前样例,“工作环境”选择“Multi-Engine 1.0 (python2)”,推荐使用“公共资源池”的“GPU”。如果选择使用“CPU”,Notebook的运行时间可能较长,且运行过程中容易出现故障。

5. Notebook创建完成后,在操作列,单击“打开”,进入“Jupyter Notebook”文件目录界面。

6. 单击右上角的“New>TensorFlow-1.8”,进入代码开发界面。

图 11-13 创建 Notebook 开发页面

7. 在Cell中填写数据转换代码。完整代码请参见data_format_conversion.py。

说明

脚本代码中的“BASE_PATH”参数,请根据数据集实际存储位置修改。本示例中使用的OBS路径为“test-modelarts/iceberg/iceberg-data/”, 即“train.json”和“test.json”的OBS父目录。

8. 单击Cell上方的“Run”运行代码。运行代码过程可能需要较长时间,如果长时间没有执行结果,请尝试分段执行代码。将脚本示例代码分成多段放在不同的cell中执行。

代码运行成功后,将在“test-modelarts/iceberg/iceberg-data/”目录下生成如下3个文件:

– “iceberg-train-1176.tfrecord”:训练数据集。

– “iceberg-eval-295.tfrecord”:验证数据集。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 192

Page 197: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

– “iceberg-test-8424.tfrecord”:预测数据集。

9. 完成数据准备后,为避免产生不必要的费用,建议进入Notebook管理页面,在操作列中单击“停止”或“删除”,停止或删除此Notebook。

训练模型

数据准备完成后,您需要使用MoXing接口编写训练脚本代码,ModelArts提供了一个编写好的代码示例“train_iceberg.py”,您也可以在ModelArts的“开发环境>Notebook”中编写模型训练脚本,并转成“py”文件。

如下操作使用“train_iceberg.py”示例训练模型。

1. 从gitee下载ModelArts-Lab工程,并在“ModelArts-Lab”工程的“\ModelArts-Lab-master\official_examples\Using_MoXing_to_Create_a_Iceberg_Images_Classification_Application\codes”目录下获取模型训练脚本文件“train_iceberg.py”。

2. 将“train_iceberg.py”文件上传至OBS,假设上传至“test-modelarts/iceberg/iceberg-code/”文件夹下。

3. 在ModelArts管理控制台,进入“训练管理 > 训练作业”页面,单击左上角的“创建”。

4. 填写训练作业相关参数。

– “名称”和“描述”:请按照界面提示规则填写。

– “算法来源”:选择“常用框架”页签,“AI引擎”选择“TensorFlow”和“TF-1.8.0-python2.7”;“代码目录”选择模型训练脚本文件“train_iceberg.py”所在的OBS父目录(“test-modelarts/iceberg/iceberg-code/”),“启动文件”请选择“train_iceberg.py”。

– “数据来源”:选择“数据存储位置”,然后选择数据集存储的OBS路径。

– “训练输出位置”:选择一个OBS路径用于存放生成模型及预测文件。

– “资源池”:选择一个可用的资源池用于训练。GPU资源池性能优于CPU资源池,但是相应的费用也更高。

– “计算节点个数”:此示例建议使用1个节点即可。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 193

Page 198: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 11-14 创建训练作业

5. 参数确认无误后,单击“提交”,完成训练作业创建。

6. 在训练作业管理页面,当训练作业变为“运行成功”时,即完成了模型训练过程。如有问题,可单击作业名称,进入作业详情界面查看训练作业日志信息。

说明

训练作业需要花费一些时间,预计几十分钟。当训练时间超过一定时间(如1个小时),请及时手动停止,释放资源。否则会导致欠费,尤其对于使用GPU训练的模型项目。

7. (可选)在模型训练的过程中或者完成后,可以通过创建可视化作业查看一些参数的统计信息,如“loss”、“accuracy”等。您也可以选择不创建可视化作业,直接进入下一步:预测结果。

进入“训练管理 > 训练作业 > 可视化作业”界面,单击“创建”,填写可视化作业名称,“训练输出位置”请选择步骤4中“训练输出位置”参数中的路径。根据界面提示完成可视化作业创建。当状态变为“运行中”时,表示创建完成。您可以单击可视化作业的名称跳转到其可视化界面,查看此训练作业的相关信息。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 194

Page 199: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

预测结果

待训练作业运行完成后,在“训练输出位置”目录下生成模型文件。由于我们只需要进行一次预测,因此不需要部署在线服务。相关的预测操作已经在“train_iceberg.py”文件写好,预测结果将输出到“submission.csv”文件。

使用训练作业进行预测的操作步骤如下:

1. 进入ModelArts“训练管理 > 训练作业”页面,单击左上角的“创建”。

2. 填写相关参数,然后根据界面提示完成训练作业创建。

“名称”:请根据界面提示要求填写。

“算法来源”和“数据来源”:填写信息与训练模型时相同。详情请参见步骤4。

“运行参数”:预测时,务必添加参数“is_training=False”,表示不进行重新训练。

“训练输出位置”:与训练模型的步骤4保持一致。

“计算节点个数”:预测时“计算节点个数”只能选择1个节点。

图 11-15 创建一次预测

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 195

Page 200: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

3. 进入“训练作业”管理页面,当训练作业状态变为“运行成功”时,表示预测完成。单击训练作业的名称,进入作业详情页面。

在“日志”页签中,可以查看到在eval数据集上的loss值。

说明

训练作业需要花费一些时间,预计十几分钟。当训练时间超过一定时间(如1个小时),请及时手动停止,释放资源。否则会导致欠费,尤其对于使用GPU训练的模型项目。

查看结果

在“训练输出位置”目录下,可通过“submission.csv”文件查看预测结果。

图 11-16 冰山识别预测结果

11.2.2 使用 MoXing 开发训练脚本,实现手写数字识别本示例介绍在ModelArts平台如何使用MoXing实现MNIST数据集的手写数字图像识别应用。

开始使用如下样例前,请务必按准备工作指导完成必要操作。使用MoXing实现手写数字图像识别样例的操作流程如下所示。

1. 准备数据:获取MNIST数据集,并上传至OBS。

2. 训练模型:使用MoXing框架编模型训练脚本,并新建训练作业进行模型训练。

3. 部署模型:得到训练好的模型文件后,新建预测作业将模型部署为在线预测服务。

4. 验证模型:发起预测请求获取预测结果。

准备数据

ModelArts在公共OBS桶中提供了MNIST数据集,命名为“Mnist-Data-Set”,因此,本文的操作示例使用此数据集进行模型构建。您需要执行如下操作,将数据集上传至您的OBS目录下,即准备工作中您创建的OBS目录“test-modelarts/dataset-mnist”。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 196

Page 201: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

1. 单击数据集下载链接,将“Mnist-Data-Set”数据集下载至本地。

2. 在本地,将“Mnist-Data-Set.zip”压缩包解压。例如,解压至本地“Mnist-Data-Set”文件夹下。

3. 参考上传文件,使用批量上传方式将“Mnist-Data-Set”文件夹下的所有文件上传至“test-modelarts/dataset-mnist”OBS路径下。

“Mnist-Data-Set”数据集包含的内容如下所示,其中“.gz”为对应的压缩包。

– “t10k-images-idx3-ubyte”:验证集,共包含10000个样本。

– “t10k-images-idx3-ubyte.gz”:验证集的压缩包文件。

– “t10k-labels-idx1-ubyte”:验证集标签,共包含10000个样本的类别标签。

– “t10k-labels-idx1-ubyte.gz”:验证集标签的压缩包文件。

– “train-images-idx3-ubyte”:训练集,共包含60000个样本。

– “train-images-idx3-ubyte.gz”:训练集的压缩包文件。

– “train-labels-idx1-ubyte”:训练集标签,共包含60000个样本的类别标签。

– “train-labels-idx1-ubyte.gz”:训练集标签的压缩包文件。

训练模型

数据准备完成后,您需要使用MoXing接口编写训练脚本代码,ModelArts提供了一个编写好的代码示例“train_mnist.py”,如下操作使用此示例训练模型。

1. 从gitee下载ModelArts-Lab工程,并在“ModelArts-Lab”工程的“\ModelArts-Lab-master\official_examples\Using_MoXing_to_Create_a_MNIST_Dataset_Recognition_Application\codes”目录下获取模型训练脚本文件“train_mnist.py”。

2. 将“train_mnist.py”文件上传至OBS,例如“test-modelarts/mnist-MoXing-code”。

3. 在ModelArts管理控制台,进入“训练管理 > 训练作业”页面,单击左上角的“创建”。

4. 在创建训练作业页面,参考图11-17和图11-18填写相关信息,然后单击“下一步”。

图 11-17 创建训练作业-基本信息

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 197

Page 202: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 11-18 创建训练作业-详细参数

5. 在“规格确认”页面,确认训练作业的参数信息,确认无误后单击“提交”。

6. 在训练作业管理页面,当训练作业变为“运行成功”时,即完成了模型训练过程。如有问题,可单击作业名称,进入作业详情界面查看训练作业日志信息。

说明

训练作业需要花费一些时间,预计十几分钟。当训练时间超过一定时间(如1个小时),请及时手动停止,释放资源。否则会导致欠费,尤其对于使用GPU训练的模型项目。

7. (可选)在模型训练的过程中或者完成后,可以通过创建可视化作业查看一些参数的统计信息。详细操作指导请参见创建可视化作业。

其中,“训练输出位置”请选择训练作业中“训练输出位置”参数中的路径。根据界面提示完成可视化作业创建。

部署模型

模型训练完成后,将模型部署为在线预测服务。其中ModelArts提供了已编写好的推理代码“customize_service.py”和配置文件“config.json”。

1. 从gitee下载ModelArts-Lab工程,并在“ModelArts-Lab”工程的“\ModelArts-Lab-master\official_examples\Using_MoXing_to_Create_a_MNIST_Dataset_Recognition_Application\codes”目录下获取推理代码“customize_service.py”和配置文件“config.json”。

2. 将“customize_service.py”和“config.json”文件上传至OBS中,需存储至OBS中训练作业生成模型的路径,例如“test-modelarts/mnist-model/model”。

说明

● 训练作业将在“训练输出位置”指定路径中新建一个“model”文件夹,用于存储生成的模型。

● 推理代码和配置文件必须上传至“model”文件夹下。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 198

Page 203: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

3. 在ModelArts管理控制台,单击左侧导航栏中的“模型管理>模型”,进入“模型”页面,单击左上角“导入”。

4. 在“导入模型”页面,参考图11-19填写相关参数,然后单击“立即创建”。

在“元模型来源”中,选择“从对象存储服务(OBS)中选择”页签,然后在“选择元模型”选项中设置为训练作业中的“训练输出位置”指定的路径,不能设置为此路径下的“model”文件夹,否则系统无法自动找到模型及其相关文件。

图 11-19 导入模型

5. 在“模型”页面,当模型状态变更为“正常”时,表示模型已导入成功。您单击模型名称左侧的小三角,打开此模型下的所有版本。在对应版本所在行,操作列单击“部署>在线服务”,将模型部署为在线服务。

6. 在“部署”页面,请参考图11-20的示例填写参数,然后单击“下一步”。

图 11-20 部署在线服务

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 199

Page 204: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

7. 在“规格确认”页面,确认信息无误后的,单击“提交”。

8. 在线服务创建完成后,系统自动跳转至“部署上线>在线服务”页面。服务部署需要一定时间,耐心等待即可。当服务状态变为“运行中”时,表示服务部署成功。

验证模型

在线服务部署成功后,您可以进入在线服务,发起预测请求测试服务。

1. 在“在线服务”管理页面,单击在线服务名称,进入在线服务详情页面。

2. 在线服务详情页面中,单击“预测”页签,进入预测页面。

3. 在“选择预测图片文件”右侧,单击“上传”按钮,上传一张黑底白字的图片,然后单击“预测”。

预测完成后,预测结果显示区域将展示预测结果,根据预测结果内容,可识别出此图片的数字是“4”。

说明

● 由于推理代码和配置文件中已指定图片要求,用于预测的图片,大小必须为“28px*28px”,图片格式必须为“jpg”,且图片必须是黑底白字。

● 建议不要使用数据集中自带的图片,可以使用Windows自带的画图工具绘制一张。

● 如果是其他不符合格式的单通道图片,预测结果可能会存在偏差。

图 11-21 在线服务预测结果

11.3 纳管 Atlas 500,将模型部署为边缘服务Atlas人工智能计算平台,是基于华为昇腾系列AI处理器,打造面向“端、边、云”的全场景AI基础设施方案。配合Atlas系列边缘设备,华为云智能边缘服务(IEF)和AI开发平台(ModelArts)结合,将构建的AI模型快速部署至Atlas设备中,满足在安防、交通、社区、园区、 商场、超市等复杂环境区域的应用需求。

1. 模型准备

2. 在IEF中注册并纳管Atlas 500

3. 将模型部署为边缘服务

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 200

Page 205: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 11-22 纳管 Atlas 500 并将模型部署至边缘服务

模型准备

在部署边缘服务前,您需要准备配套的模型。针对本示例,指导用户使用ModelArts预置算法训练模型。

1. 进入ModelArts的AI Gallery。

2. 下载数据集。

在AI Gallery中,进入“数据集”页签,搜索dataset_mask_detection_500数据集。进入数据集详情页,单击“下载”,根据页面指导,将数据集下载至OBS路径下。其中,目标区域与ModelArts所在区域一致。

数据集启动下载后,需要一段时间,请耐心等待,您也可以前往“个人中心>数据集”,查看下载进度。

图 11-23 下载数据集至 OBS 桶

3. 创建并发布数据集。

进入ModelArts管理控制台,选择“数据管理>数据集”,单击“创建数据集”,类型选择“物体检测”,使用步骤2的OBS路径作为“数据集输入位置”,“数据集输出位置”指定为一个空目录。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 201

Page 206: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 11-24 创建数据集

数据集创建完成后,当数据集详情中显示500张图片已标注后,执行发布数据集的操作。注意一点,需开启数据切分功能,并将训练集比例设置为“0.8”。

图 11-25 发布数据集

4. 订阅预置算法。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 202

Page 207: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

在AI Gallery中,进入“ModelHub”页签,查找物体检测YOLOv3_ResNet18算法,根据界面提示订阅此算法,并在ModelArts的“算法管理>市场订阅”中执行同步操作。

可以参考使用预置算法实现图像分类(Ascend310推理)案例中的订阅算法。

5. 使用预置算法和数据集创建训练作业。

使用步骤3的数据集和步骤4订阅的算法,创建训练作业。

更多详细指导可参考使用预置算法实现图像分类(Ascend310推理)案例中的使用订阅算法创建训练作业。

6. 模型转换和模型导入。

训练后得到的模型并不符合Atlas 500要求,需转换成om格式后再导入ModelArts。更多详细指导可参考使用预置算法实现图像分类(Ascend310推理)案例中的模型转换、导入模型。

说明

执行模型转换和模型导入时,请参考物体检测YOLOv3_ResNet18算法介绍的“Ascend310推理”章节,根据此算法要求选择模型和参数设置。

如果您需要导入您自己开发的模型,请参考如下要求,将满足要求的模型导入ModelArts。● 需保证您的模型支持使用Ascend芯片推理。且您的模型使用的驱动版本与Atlas设

备一致。

● 如果您的模型需要使用Ascend芯片推理,但是模型并不是.om格式(即不满足推理要求),可使用ModelArts模型转换功能,先将模型格式进行转换。转换操作可参见模型转换。

● 针对转换完成的模型,可使用模型模板将模型导入至ModelArts中。为了方便Ascend用户,ModelArts预置了模型模板,建议选择从模板中选择元模型的方式导入模型,减少了模型配置文件编写工作。选择模板时,请选择ARM-Ascend模板,只有按此模板导入的模型,才可直接部署至Atlas 500设备中。

在 IEF 中注册并纳管 Atlas 500将您的Atlas 500设备注册并纳管至华为云IEF服务中,纳管后,可直接在ModelArts中完成模型部署。

1. 注册边缘节点。

a. 登录IEF管理控制台。

b. 选择左侧导航栏的“边缘资源 > 边缘节点”,单击页面右上角的“注册边缘节点”。

c. 配置边缘节点基本信息。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 203

Page 208: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 11-26 边缘节点基本信息

▪ 边缘节点名称:边缘节点的名称。

▪ AI加速卡:选择“华为AI加速卡”。

▪ 绑定设备:为边缘节点绑定边缘设备。设备在注册边缘节点后仍然可以绑定。

▪ 标签

标签可用于对资源进行标记,方便分类管理。

如果您需要使用同一标签标识多种云资源,即所有服务均可在标签输入框下拉选择同一标签,建议在TMS服务中创建预定义标签。

d. 单击“下一步”,为边缘节点进行高级配置。

图 11-27 边缘节点配置

▪ 是否启用docker:启用后可以支持部署容器应用。

▪ 监听地址:

配置边缘节点上MQTT Broker的监听地址,可以选择网卡或IP。

当前支持配置边缘节点的系统日志和应用日志。

▪ 系统日志:边缘节点上IEF软件(如edge-core、edge-logger和edge-monitor等)产生的日志。

▪ 应用日志:边缘节点上部署的应用所产生的日志。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 204

Page 209: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 11-28 日志

系统日志和应用日志需要配置如下几个参数:

▪ 是否开启云端日志:

您可以通过开关控制是否上传日志到AOM服务,开启之后您可以在AOM中查看日志,具体请参见在AOM查看日志。

▪ 云端日志级别:

系统日志的可选项为:error,warning,info,debug。日志级别配置不同,上传的日志内容也不相同,error,warning,info,debug表示上传不同的日志级别。

▪ 日志文件大小:日志文件大小限制,单位MB,默认50,取值范围10-1000。某个日志文件如果达到大小限制,则会转储。

○ 系统日志保存在边缘节点“/var/IEF/sys/log/”目录下,然后转储到AOM;

○ 应用日志会将容器的标准输出和挂载到边缘节点“/var/IEF/app/log”的日志转储到AOM。

▪ 滚动日志周期:日志转储周期,可选项:daily,weekly,monthly,yearly。日志文件大小和滚动日志周期是同时生效的,满足任何一个条件都会进行日志转储。

▪ 滚动日志数量:日志文件转储个数,默认5,取值范围1-10。边缘节点保存的转储日志数量如果达到限制,则会删除 老的那个转储文件。

e. 单击页面右下角的“创建”,下载配置文件,在后续2时将用到这些。

图 11-29 下载配置文件

f. 单击“完成”。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 205

Page 210: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

您可以看到边缘节点的状态为“未纳管”,这是因为还未纳管边缘节点,请参见2纳管节点。

图 11-30 未纳管的边缘节点

2. 纳管Atlas 500智能小站。

a. 以admin用户登录智能小站后台,检查DNS服务器域名解析是否正常。

i. 切换至develop模式,输入root用户的密码。

ii. 尝试ping华为云IEF的服务地址,观察域名是否能够解析。

ping ief-edgeaccess.cn-south-1.myhuaweicloud.com

○ 如果显示如下,则说明无法解析。

执行如下命令,将公网的DNS服务器IP地址(例如114.114.114.114)加入resolv.conf。vi /etc/resolv.conf

○ 如果显示如下,则说明能解析,请执行下一步。

b. 登录智能小站的WebUI,WebUI地址为https://{hostIP}。hostIP为智能小站的IP地址。

c. 选择顶侧导航栏“维护”,单击页面左侧的“网管注册”。

d. 选择网管模式为“华为云智能边缘平台IEF管理”,并上传1.e下载的配置文件。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 206

Page 211: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 11-31 上传 IEF 节点证书

e. 单击“保存”,等待智能小站被纳管到IEF平台。

在IEF中查看节点的当前状态。当前状态为“运行中”表示纳管成功。

图 11-32 查看节点状态

(可选)升级 Atlas 500 固件

在本案例中,使用的是ModelArts预置算法训练模型,其模型匹配的固件版本为C32,而Atlas 500设备默认固件为C30。如需要将此类模型部署至Atlas 500,则需要升级Atlas 500设置。如果您的模型与设备的固件版本匹配,则无需执行此操作。

1. 判断Atlas 500固件版本。

参考部署为边缘服务,选择模型准备中导入的模型及版本,在选择Atlas 500节点后,如果出现如下图所示提示,表示您的设备与模型不匹配,需升级C32固件。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 207

Page 212: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

图 11-33 部署为边缘服务(Atlas 500)

2. 升级Atlas 500固件。

a. 在节点列表下方单击“升级C32固件”,在弹出的对话框中,仔细阅读升级说明,勾选“我已阅读并同意以上内容”,然后单击“下载”,将固件版本及升级指导下载至本地。文件名称为“atlas500_C32_Firmware.zip”。

b. 解压“atlas500_C32_Firmware.zip”文件,打开Atlas500产品C32固件升级操作指导.doc文件,根据指导完成Atlas 500的固件升级操作。

将模型部署为边缘服务1. 登录ModelArts管理控制台,在左侧菜单栏中选择“部署上线>边缘服务”,在边

缘服务列表中,单击“部署”进入“部署”页面。

2. 在“部署”页面中,选择对应的模型及其版本。选择“计算节点规格”和“边缘服务节点”。

“计算节点规格”:选择“ARM:3 核 3 GiB Ascend: 1 * Ascend 310”。

“边缘服务节点”:单击选择边缘节点右侧的“添加”,在弹出的“添加节点”对话框中,选择在IEF中纳管的Atlas 500节点,然后单击“确定”。

图 11-34 部署为边缘服务(Atlas 500)

3. 单击“立即创建”,完成边缘服务的部署操作。

系统自动进入“边缘服务”列表,新部署的边缘服务将展现的列表中。服务部署需要耗费一些时间,本示例选用的Atlas 500部署时需耗费十分钟左右,请耐心等待。当服务状态变为“运行中”时,表示边缘服务已部署完成,您可以单击服务名称进入服务详情页。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 208

Page 213: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

如图11-35所示,“运行中”的服务,可以在“节点信息”中获得一个URL,该URL为模型访问、推理、预测接口。同时,此边缘服务出于“运行中”时,表示您的Atlas 500已具备此模型的AI能力。

图 11-35 边缘服务详情

查看推理结果

通过postman发送http请求,查看推理结果。

1. 下载Postman软件并安装,您可以直接在Chrome浏览器添加Postman扩展程序(也可使用其它支持发送post请求的软件)。

2. 打开Postman。

图 11-36 Postman 软件界面

3. 在Postman界面填写参数,以图像分类举例说明。

– 选择POST任务,将边缘节点的调用地址(即将模型部署为边缘服务步骤完成后获得的URL)复制到POST后面的方框。

图 11-37 POST 参数填写

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 209

Page 214: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

– 在Body页签,根据模型的输入参数不同,可分为2种类型:文件输入、文本输入。本示例的图像分类模型为文件输入。

选择“form-data”。在“KEY”值填写模型的入参,比如本例中预测图片的参数为“images”。然后在“VALUE”值,选择文件,上传一张待预测图片(当前仅支持单张图片预测)。

图 11-38 填写 Body 配置

4. 参数填写完成,单击“Send”发送请求,结果会在Response下的对话框里显示。

文件输入形式的预测结果如下图所示,返回结果的字段值根据不同模型可能有所不同。

图 11-39 边缘服务文件输入预测结果

说明

为避免资源浪费,在试用完成后,建议停止边缘服务,同时可前往ModelArts和OBS清理不必要的数据。例如导入的模型、模型转换任务、训练作业、数据集、存储在OBS的数据集及模型文件等。

ModelArts佳实践 11 高阶应用

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 210

Page 215: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

A 获取 ModelArts 样例使用的数据集

ModelArts针对多种AI引擎提供了多个样例,供新手用户学习使用,样例指导请参见《ModelArts 佳实践》。针对每个样例,ModelArts已将样例数据集存储在公共OBS桶中,您可以根据自己所在区域,选择对应的OBS路径,获取样例数据集。

各个样例的数据集的存储信息请参见样例数据集存储路径,基于您所用的OBS桶所在区域不同,您可以使用不同的方法将样例数据集拷贝至您的OBS桶中,不同场景下可使用的方法如图A-1所示。当数据集比较大时,推荐采用“方式2”或“方式3”进行拷贝;当数据集比较小时,推荐采用“方式1”获取数据集,操作更加便捷简单。

● 方式1:下载后再上传

● 方式2:使用MoXing接口从公共桶拷贝至您的OBS桶

● 方式3:使用OBS的obsutill工具拷贝

图 A-1 拷贝样例数据集至您的 OBS 桶

样例数据集存储路径

样例数据集存储时,分为“压缩包”或“解压版”两种样式,两种样式对应的数据是相同的。

● 压缩包:下载后,再上传至您自己的OBS桶中使用。需解压后使用,但是下载方便。

● 解压版:直接可以拷贝至您自己的OBS桶中,即OBS桶对桶拷贝,前提是您的OBS桶需与样例数据集的OBS桶属于同一个区域。

ModelArts佳实践 A 获取 ModelArts 样例使用的数据集

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 211

Page 216: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

表 A-1 样例数据集详细路径

样例名称

数据集样式

所在区域

对应的OBS路径 对应的样例

找云宝 压缩包 华北-北京一

https://modelarts-cnnorth1-market-dataset.obs.cn-north-1.myhuaweicloud.com/dataset-market/Yunbao-Data-Custom/archiver/Yunbao-Data-Custom.zip

找云宝(使用自动学习实现物体检测应用)

华北-北京四

https://modelarts-cnnorth4-market-dataset.obs.cn-north-4.myhuaweicloud.com/dataset-market/Yunbao-Data-Custom/archiver/Yunbao-Data-Custom.zip

解压版 华北-北京一

obs://modelarts-cnnorth1-market-dataset/dataset-market/Yunbao-Data-Custom/unarchiver

华北-北京四

obs://modelarts-cnnorth4-market-dataset/dataset-market/Yunbao-Data-Custom/unarchiver

花卉识别

压缩包 华北-北京一

https://modelarts-cnnorth1-market-dataset.obs.cn-north-1.myhuaweicloud.com/dataset-market/Flowers-Data-Set/archiver/Flowers-Data-Set.zip

花卉识别(使用训练管理的预置算法实现图像分类)

华北-北京四

https://modelarts-cnnorth4-market-dataset.obs.cn-north-4.myhuaweicloud.com/dataset-market/Flowers-Data-Set/archiver/Flowers-Data-Set.zip

解压版 华北-北京一

obs://modelarts-cnnorth1-market-dataset/dataset-market/Flowers-Data-Set/unarchiver

华北-北京四

obs://modelarts-cnnorth4-market-dataset/dataset-market/Flowers-Data-Set/unarchiver

冰山识别

压缩包 华北-北京一

https://modelarts-cnnorth1-market-dataset.obs.cn-north-1.myhuaweicloud.com/dataset-market/Iceberg-Data-Set/archiver/Iceberg-Data-Set.zip

冰山识别(使用MoXing框架实现图像分类)

华北-北京四

https://modelarts-cnnorth4-market-dataset.obs.cn-north-4.myhuaweicloud.com/dataset-market/Iceberg-Data-Set/archiver/Iceberg-Data-Set.zip

ModelArts佳实践 A 获取 ModelArts 样例使用的数据集

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 212

Page 217: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

样例名称

数据集样式

所在区域

对应的OBS路径 对应的样例

解压版 华北-北京一

obs://modelarts-cnnorth1-market-dataset/dataset-market/Iceberg-Data-Set/unarchiver

华北-北京四

obs://modelarts-cnnorth4-market-dataset/dataset-market/Iceberg-Data-Set/unarchiver

手写数字识别

压缩包 华北-北京一

https://modelarts-cnnorth1-market-dataset.obs.cn-north-1.myhuaweicloud.com/dataset-market/Mnist-Data-Set/archiver/Mnist-Data-Set.zip

使用MoXing开发训练脚本,实现手写数字识别

使用Notebook实现手写数字识别

使用MXNet实现手写数字识别

使用TensorFlow实现手写数字识别

使用Caffe实现手写数字识别

华北-北京四

https://modelarts-cnnorth4-market-dataset.obs.cn-north-4.myhuaweicloud.com/dataset-market/Mnist-Data-Set/archiver/Mnist-Data-Set.zip

解压版 华北-北京一

obs://modelarts-cnnorth1-market-dataset/dataset-market/Mnist-Data-Set/unarchiver

华北-北京四

obs://modelarts-cnnorth4-market-dataset/dataset-market/Mnist-Data-Set/unarchiver

Caltech图像识别

压缩包 华北-北京一

https://modelarts-cnnorth1-market-dataset.obs.cn-north-1.myhuaweicloud.com/dataset-market/Caltech101-data-set/archiver/Caltech101-data-set.zip

使用MXNet实现Caltech图像识别

华北-北京四

https://modelarts-cnnorth4-market-dataset.obs.cn-north-4.myhuaweicloud.com/dataset-market/Caltech101-data-set/archiver/Caltech101-data-set.zip

解压版 华北-北京一

obs://modelarts-cnnorth1-market-dataset/dataset-market/Caltech101-data-set/unarchiver

华北-北京四

obs://modelarts-cnnorth4-market-dataset/dataset-market/Caltech101-data-set/unarchiver

ModelArts佳实践 A 获取 ModelArts 样例使用的数据集

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 213

Page 218: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

方式 1:下载后再上传

针对方式1,其 大的特点是,对区域没有明确限制,您可以选择任意区域下载数据集。为提升操作效率,建议直接下载压缩包样式的样例数据集。但是下载和上传的速度,取决于您本地的网络情况。

图 A-2 方式 1 的操作示意图

1. 针对您需要使用的样例,选择其对应的样例数据集存储路径。您可以选择任意区域的OBS桶下面的数据集,建议选择压缩包样式的数据集下载路径。单击链接,样例数据集自动下载至本地。

例如,单击“找云宝”样例的“华北-北京一”区域的下载地址,样例数据集的压缩包“Yunbao-Data-Custom.zip”将自动存储在本地。

2. 将获得的压缩包解压缩,然后将数据集存储的文件夹全部上传至您使用的OBS路径下。

a. 首先,创建一个用于存储样例数据集的OBS桶及文件夹。

例如,您已创建了命名为“test-modelarts”的OBS桶,且创建了一个命名为“dataset-yunbao”的文件夹。

b. 将“Yunbao-Data-Custom.zip”在本地解压缩至“Yunbao-Data-Custom”文件夹下。

c. 参考上传文件,将“Yunbao-Data-Custom”文件夹下的所有文件上传至“test-modelarts/dataset-yunbao”OBS路径下。

方式 2:使用 MoXing 接口从公共桶拷贝至您的 OBS 桶

针对方式2,其要求样例数据集与您的OBS桶在同一区域,且您熟悉Notebook以及ModelArts MoXing,您可以使用方式2提供的方式将公共桶中的样例数据集拷贝至您的OBS中。

建议在表A-1中,获取对应样例的解压版数据集的OBS路径(obs格式的路径),然后在ModelArts中创建一个Notebook实例,通过如下操作步骤,将数据集拷贝至您的OBS桶中。

1. 进入ModelArts管理控制台,创建一个Notebook实例,然后在Jupyter页面中新建一个文件。

ModelArts佳实践 A 获取 ModelArts 样例使用的数据集

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 214

Page 219: 最佳实践 - HUAWEI CLOUD€¦ · 典型样例,使用ModelArts提供的预置算法(训练管理或AI市场),支撑您的业务应 用。 表1-3 Ascend样例列表 样例

2. 单击新建的文件进入开发环境。

3. 检查样例数据集所在的公共桶是否可访问。

例如,在表A-1中,获取“找云宝”样例在“华北-北京一”的数据集所在位置,其OBS路径为“obs://modelarts-cnnorth1-market-dataset/dataset-market/Yunbao-Data-Custom/unarchiver”。执行如下命令检查。import moxing as moxmox.file.exists('obs://modelarts-cnnorth1-market-dataset/dataset-market/Yunbao-Data-Custom/unarchiver')

如果返回“True”表示OBS桶正常。

4. 检查您的OBS桶是否可访问。

例如,您已创建了命名为“test-modelarts”的OBS桶,且创建了一个命名为“dataset-yunbao”的文件夹。执行如下命令检查。import moxing as moxmox.file.exists('obs://test-modelarts/dataset-yunbao')

如果返回“True”表示OBS桶正常。

5. 确认您是否具备OBS桶的写入权限。

例如,上文中您要拷贝的目的OBS桶路径为“obs://test-modelarts/dataset-yunbao”。执行如下命令检查,如果未出现异常,表示您具备权限。import moxing as moxmox.file.write('obs://test-modelarts/dataset-yunbao/obs_file.txt', 'Hello, OBS Bucket!')mox.file.remove('obs://test-modelarts/dataset-yunbao/obs_file.txt', recursive=False)

6. 执行拷贝命令。将样本数据集从公共桶拷贝至您的OBS桶中。import moxing as moxmox.file.copy_parallel('obs://modelarts-cnnorth1-market-dataset/dataset-market/Yunbao-Data-Custom/unarchiver', 'obs://test-modelarts/dataset-yunbao')print ('Copy procedure is completed')

当返回“Copy procedure is completed”和执行时间时,表示拷贝完成。例如如下类似信息。Copy procedure is completedCPU times: user 117 ms, sys: 92.3 ms, total: 209 msWall time: 58.3 s

方式 3:使用 OBS 的 obsutill 工具拷贝

针对方式3,其要求样例数据集与您的OBS桶在同一区域,您可以使用OBS提供的obsutil工具直接拷贝。建议在表A-1中,获取对应样例的解压版数据集的OBS路径(obs格式的路径),通过复制对象命令拷贝至您的OBS桶中。

obsutil工具的操作指导请参见OBS工具指南>obsutil。

ModelArts佳实践 A 获取 ModelArts 样例使用的数据集

文档版本 21 (2021-02-26) 版权所有 © 华为技术有限公司 215