华为云 ModelArts 操作总结

 

目录

训练作业创建:垃圾分类训练作业实验

自动学习创建:垃圾分类

自动学习创建:零代码美食分类模型开发

数据集创建:使用ResNet50预置算法基于海量数据训练美食分类模型

训练作业创建:猫狗识别(智能标注、TensorBoard)

Notebook使用:Yolo3物体检测


参加了华为云AI青年班,学习了如何操作华为云 ModelArts 控制台实现自己的模型管理、OBS数据存储系统管理(可下载 OBS Browser+,方便上传下载数据,但不用的时候还是要及时关掉,个人感觉比较占用CPU处理)、模型调优等。

华为云 ModelArts 操作总结

以下通过一些典型内容总结了 华为云 ModelArts 控制台 的主要功能。OBS 数据存储、模型调优等如果认为有必要会再写出来,其实,OBS桶就是一个有收费的存储站,用它可以很方便和 ModelArts 里面的数据文件‘通信’---比如,训练模型的输出、数据集的调用。

具体相关的文件我上传了资源,有兴趣的去我github主页下载即可。

首先是注册华为云账号,注册过程不多解释,按提示走即可;然后,进入华为云 ModelArts 控制台官网进去-->产品-->EI企业智能-->EI基础平台-->AI开发平台ModelArts-->进入控制台;接着便可进行下面的系列内容。

华为云 ModelArts 操作总结华为云 ModelArts 操作总结

 

训练作业创建:垃圾分类训练作业实验

1. 登陆华为云 ModelArts 控制台,训练管理 --> 训练作业--> 创建。

可以设置的参数有:

  • 作业名称:trainjob-name
  • 算法来源:(多种可选,华为云预置了一些经典算法,如yolo3等;也可管理自己的算法;或者自定义算法来源,本项目使用‘常用框架’)‘常用框架’ 的 tensorflow
  • 数据来源:obs桶目录下存储的的数据文件【注意,路径下直接是训练数据文件,否则可能运行失败】;
  • 代码目录:obs桶目录下存储的代码文件;
  • 启动文件:代码目录下的.py文件;
  • 训练输出位置:obs桶目录下设置的output文件(自己在OBS桶下面新建一个即可)。
  • 运行参数:新增两=类别个数、配置路径【obs桶目录下存储的代码文件下的配置文件】。
  • num_classes=8 和 8个类别
  • deploy_script_path= obs://wt.wang-garbage-trainjob/garbage_src/deploy_scripts/ 
  • 作业日志路径:obs://wt.wang-garbage-trainjob/log_wwt/

2.  训练作业任务提交后,可以在训练管理-训练作业,中查看‘配置信息’ ‘日志’ ‘资源占用情况‘。

3. 训练作业完毕,进入模型管理-->模型-->‘导入‘模型,(名称:model-name;版本号; 元模型来源:训练作业的对应版本; 部署类型:在线服务),设置完点击’立即创建‘

4. 部署上线,选择‘在线服务‘中’部署‘(名称:service-name; 公共资源池-我的模型-模型版本-计算节点规格),部署任务提交。

5. 部署成功后,进行预测。用本地测试图像进行测试,完成后关闭在线服务。

Notes : deploy_script_path 路径下包含的两个配置文件的名称不能改变,为“config.json” 和 “customize_service.py”,需要自己编写,编写方式可以参考上传资源里面的代码文件书写方式。

相关步骤的图示过程如下。

---------------训练作业创建设置----------------

此处的数据来源错误,应该再往下一层进入训练文件夹。

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

---------------训练作业创建完成:查看运行情况----------------

华为云 ModelArts 操作总结

运行失败,改变训练数据文件路径,重新运行,成功。

华为云 ModelArts 操作总结

---------------训练作业创建设置:常用框架展示例子----------------

华为云 ModelArts 操作总结

---------------代码文件----------------

华为云 ModelArts 操作总结

---------------数据文件----------------

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

---------------查看训练作业运行情况----------------

华为云 ModelArts 操作总结

---------------成功部署后的测试例子----------------

华为云 ModelArts 操作总结

 

自动学习创建:垃圾分类

1. 登陆OBS桶,建桶,上传数据集(已有数据集的对应选择就好)。

2. 登陆华为云 ModelArts 控制台,自动学习 --> 图像分类 --> 创建项目。

3. 接着,根据下面图示过程,标注数据、训练、部署、测试即可。

Note:完成后记得释放资源,避免收费。

---------------自动学习创建项目----------------

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

---------------创建完成后,进入运行页面,同步、标注数据----------------

华为云 ModelArts 操作总结

---------------标注完数据后,进入模型训练,可以自己根据情况选择合适的资源,数据集切分比例---------------

华为云 ModelArts 操作总结

---------------自动学习训练完成后,点击“模型部署”----------------

华为云 ModelArts 操作总结

---------------自动学习部署成功,即可预测----------------

华为云 ModelArts 操作总结

 

自动学习创建:零代码美食分类模型开发

和自动学习的垃圾分类项目类似。

ModelArts控制台:自动学习-图像分类:exeML-proj-name

  1. 数据集输入输出位置指定【obs目录】后,完成项目创建。
  2. 进入项目exeML-proj-name,进行数据标注,标注完开始训练,(训练设置指定版本号、训练验证数据比例、预期推理硬件、最大推理时长、最大训练时长、计算规格)。
  3. 训练结束后,部署上线,部署成功后,进行服务测试,用本地测试图像进行测试,完成后关闭在线服务。

---------------自动学习,美食数据已经上传资源---------------

华为云 ModelArts 操作总结

---------------自动学习部署成功,即可预测----------------

华为云 ModelArts 操作总结

数据集创建:使用ResNet50预置算法基于海量数据训练美食分类模型

---------------目前为止(2020.5.13),华为预置算法截图----------------

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

首先需要将数据集上传到OBS桶中。接着在ModelArt创建数据集。

  • 登陆ModelArts控制台,数据管理-->数据集-->创建数据集,名称为 dataset-name,参数设置如下
  1. 数据集输入输出位置:指定【obs目录】后,标注场景选‘图片‘,标注类型选’图像分类‘;完成数据集创建。
  • 点击进入创建的数据集,开始标注、发布数据集、并进行一键上线。
  1. “开始标注” 数据。‘同步数据源‘(数据集输入输出位置的同步)后,手工标注没有标签的数据,也可以用自动标注(自动标注需要自己先标注一部分,且自动标注后会提示确认自动标注的是否正确,错了可以修改);
  2. “发布”数据集,(版本号、版本格式、训练验证比例),发布后可以用版本管理查看。
  • 数据集中 “一键模式上线”任务创建。

名称:auto-deploy-name

训练预置算法:ResNet_v1_50

运行参数:默认,有需要可以自己改。

训练输出位置:obs路径。训练输出位置用来保存训练输得到的模型和TensorBoard日志

作业路径位置:obs路径。自己建立。

训练资源池:公共;类型:GPU;规格:CPU8 64GiB GPU1 * nvidia-p100 16GiB;计算节点个数:1

部署资源池:公共;计算节点规格:限时免费CPU;计算节点个数:1. 如果是多个计算节点,就是多实例部署,可以提高API的并发数

  1. 提交等待:初始化训练-生成模型--部署---完成。一起完成。

中途根据进程可以查看,训练详情、模型详情、部署/服务详情。

  1. 查看训练作业ModelArtsà训练管理à训练作业àauto-deploy-name点击进入。查看配置信息、日志、资源占用情况。进行在线服务测试。用本地测试图像进行测试,完成后关闭在线服务。

API接口地址: https://bb06320f3ab241fa93e8c7b655efc909.apig.cn-north-4.huaweicloudapis.com/v1/infers/13fe4db2-382c-4525-b68f-a26bcc13a843

点击部署服务测试页面右侧的“调用接口指南” 进入如下链接:https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0063.html

---------------自动学习,美食数据已经上传资源---------------

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

---------------创建数据集---------------

华为云 ModelArts 操作总结

---------------对创建的数据集,进行任务创建:一键模型上线.---------------

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

----------------一键模型上线过程中,可以根据过程自由查看生成的模型、部署详情页面等---------------

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

---------------自动学习部署成功,即可预测---------------

华为云 ModelArts 操作总结

完了后同样关闭在线服务,避免持续扣费。需要时,重新启动。

训练作业创建:猫狗识别(智能标注、TensorBoard)

1. 首先新建OBS桶,把写的代码文件、相关数据上传。

  • .py代码脚本上传到obs项目文件夹新建的codes目录
  • 下载猫狗数据集.tar.gz,无需解压上传到obs项目文件夹新建的data目录
  • 创建训练作业,步骤同本doc第一节,不过这儿不用新增运行参数。
  • 后续同第一个项目。

ModelArts的智能标注功能可以只手工标注少量的数据,然后智能标注剩余的数据,从而减少开发者的工作量。

---------------智能标注:数据准备,上传到桶---------------

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

注意:OBS桶名全局唯一,如果创建桶时桶名冲突,需要选择其他桶名。

华为云 ModelArts 操作总结

上传刚刚下载的猫狗图片,并新建一个输出文件output 一个用于数据标注输出的文件data_label_out

---------------智能标注:ModelArts 创建数据集,手工标注一些,剩余点击智能标注,后续观察校正即可---------------

Notes:智能标注这个功能个人感觉并不好用。也可能是我没用好。

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

智能标注作业完成后,我们需要人工仔细确认每张图片的智能标注的结果。对标注正确的图片进行接纳;对标注错误的进行纠正。修改后,再次智能标注。依据之前处理智能标注结果的流程,处理第二次的智能标注作业。依次地,处理完所有。

---------------训练作业:数据(无需解压)、代码上传到桶---------------

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结华为云 ModelArts 操作总结

和之前步骤一样,创建训练作业

---------------训练作业创建---------------

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

---------------查看训练作业运行结果---------------

训练作业页面,点击作业名称,进入作业详情界面。可以查看到训练作业的详情。

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

---------------创建可视化作业(TensorBoard)查看训练过程---------------

查看lossaccuracy等参数的变化信息。

在训练详情页面右上侧,点击创建可视化作业按钮(即,创建TensorBoard)。

华为云 ModelArts 操作总结

 

TensorBoard可以直观地显示训练过程中lossaccuracy等评估指标的变化曲线,为开发者优化模型精度提供依据。

注意:TensorBoard使用完后需要及时关闭,否则会继续扣费。

---------------训练完成后,即可部署模型---------------

步骤1 .推理脚本customize_service.py和模型配置文件config.json导入模型文件model下。

customize_service.py推理脚本中有两个方法。_preprocess 预处理方法,在推理请求前调用,用于将API接口用户原始请求数据转换为模型期望输入数据_postprocess 后处理方法,在推理请求完成后调用,用于将模型输出转换为API接口输出

config.json 模型部署配置信息,定义了AI引擎的类别,推理脚本需要的Python依赖等。

华为云 ModelArts 操作总结

步骤2 .导入模型。

点击模型管理界面,然后点击导入”按钮。

命名模型,设置版本号,选择元数据来源:从训练中选择。

注意,其他参数会自动加载;推理代码:https://wt.wang-dogcat-recog.obs.myhwclouds.com/output/model/customize_service.py

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

步骤2 . 部署模型为在线服务。

模型管理页面, 找到之前导入的模型,点击部署下拉框中的在线服务”。

同样,命名部署的在线服务的名称、模型来源等参数。

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

-模型部署成功如下。

华为云 ModelArts 操作总结

-预测请求发起,如下。

华为云 ModelArts 操作总结

注意:实验完成后,为了防止继续扣费,需要把在线服务停止掉,在线服务停止后可以重新启动。点击停止按钮即可:

Notebook使用:Yolo3物体检测

  1. 登陆ModelArts控制台 --> 开发环境 --> Notebook --> 创建. 

    名称:notebook-obj-dect-yolo;参数:python3-公共资源池-GPU-云硬盘EVS

----------------------------------Notebook创建------------------------------------------

华为云 ModelArts 操作总结华为云 ModelArts 操作总结华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

---------------------------------Notebook 开发环境下编写代码---------------------------------------------

点击‘new’, ’tensorflow-1.13.1’【和anaconda的jupyter notebook一样操作新建】

华为云 ModelArts 操作总结

华为云 ModelArts 操作总结

经过上面代码解压的数据文件,如下。

观察下载内容:coco是标注的训练数据文件和一些图片文件;model_data里面是模型参数文件和coco数据的类别文件;yolo3里面是模型源代码;train.py是训练代码,test.jpg用于最后的预测。Font里面不用在意。

华为云 ModelArts 操作总结

-----------------------------代码部分运行结果-------------------------------------------

华为云 ModelArts 操作总结

yolo3 相关:

  1. https://mp.weixin.qq.com/s?src=11&timestamp=1587811364&ver=2300&signature=oqxbJ2QesbigUa47KfTIPiAGDvwhXjquIlY8qqP*jkjm9YNiqf9tvMTKfpgpN923utyKMPcxB6kFmCVBM0nkA8y-LcagvWxVqv22XwYKqP*Fn6CvNxXqyKi5mXxtTagf&new=1
  2. https://blog.****.net/qq_41375609/article/details/94737915
  3. https://blog.****.net/zziahgf/article/details/72819043

----------------------------------代码文件已经上传资源------------------------------------------

华为云 ModelArts 操作总结