人工智能入门07-华为昇腾实习笔记-口罩检测、使用AI Gallery的订阅算法实现花卉识别
5.28学习:
- 完成实践《口罩检测(使用新版自动学习实现物体检测应用)》
- 完成实践《使用AI Gallery的订阅算法实现花卉识别》
- 创建NoteBook实例并运行一个小程序
- 阶段小结
本教程博主再次熟悉了ModelArts的自动学习功能和workflow,再次体验到了AIGallery分享案例的便捷,然后体验了NoteBook,最后小结了这几周的学习路线。
《口罩检测(使用新版自动学习实现物体检测应用)》
这是一个继续用来熟悉自动学习、物体检测和ModelArts工作流的实验。
创建训练数据集
单击口罩检测小数据集下载。在弹出的窗口中选择云服务区域【华北-北京四】,单击【确定】进入下载详情页。
在“下载详情”页面,填写参数。
下载方式:ModelArts数据集;
目标区域:华北-北京四;
数据类型:图片;
数据集输入位置:/test-bucket-xiaowang/Mask-detection/input/;
数据集输出位置:/test-bucket-xiaowang/Mask-detection/output/。

系统会跳转到我的下载页面,单击【刷新】按钮,等待数据集下载完成(下载完成大约需要1分钟)。展开下载详情,可以查看该数据集的【目标位置】。
返回ModelArts管理控制台,在左侧导航栏选择【数据管理】-【数据集】单击【前往新版】。在新版数据集列表页,单击数据集名称左侧的,展开数据集,查看【导入状态】,导入状态为【导入完成】代表示数据集导入成功,且数据集正常。

创建自动学习物体检测项目
在ModelArts控制台,左侧导航栏选择【自动学习】,会默认进入新版自动学习页面,选择【物体检测】项目,单击【创建项目】。

运行工作流
然后就进入了熟悉的WorkFlow工作流。

在【数据标注】节点,待数据标注节点变为【橘黄色】即为【等待操作】状态,点击数据标注节点,打开数据标注节点的运行详情页面。前往实例详情页确认所有图片是否都标注完成,确认无误后,回到工作流页面单击【继续运行】。

【物体检测】阶段耗时会比较长。
当工作流运行到【服务部署】节点,服务部署节点会变成【橙黄色】,点击【服务部署】节点。在服务部署页签中,可以看到状态变为了【等待输入】。
需要选择填写【计算节点规格】和【是否自动停止】,其他参数均为默认值,保持不变。
参数填写完毕之后,单击运行状况右边的【继续运行】,单击确认弹窗中的【确定】即可继续完成工作流的运行。

预测分析
运行完成的工作流会自动部署为相应的在线服务,在ModelArts管理控制台,选择【部署上线】-【在线服务】,单击生成的在线服务名称,即可进入在线服务详情页。之后进行上传和预测操作。这里放几张示例图。




预测结果:


清除相应资源
1、停止、删除运行服务。
2、清除OBS中的数据。
《使用AI Gallery的订阅算法实现花卉识别》
本实验熟悉从AI Gallery订阅数据、算法到上线部署的流程。
准备训练数据
从AI Gallery下载训练数据,单击链接四类花卉图像分类小数据集,进入数据集详情页。

注意这次下载方式选为【对象存储服务OBS】,这样我们就把AI Gallery上面的数据集下载到我们的OBS了。

订阅算法
从AI Gallery订阅算法,单击链接ResNet_v1_50(图像分类/TensorFlow),进入算法详情页。
单击右侧的【训练】-【ModelArts】后,选择ModelArts的云服务区域,单击【确认】,跳转至ModelArts的【算法管理】-【我的订阅】中。
使用订阅算法创建训练作业
点击操作列的【创建训练作业】。

在创建训练作业页面,参考如下说明填写关键参数:
【创建方式>我的订阅】:系统默认选择订阅的算法,请勿随意修改;
【训练输入】:选择数据存储位置,然后从弹出的窗口中选择刚刚下载好的数据flower;
【训练输出】:选择一个OBS空目录存储训练输出的模型;
【超参】:建议采用默认值,如需进行调优,可参考ResNet_v1_50(图像分类/TensorFlow)。
参数填写完成后,单击“提交”,根据界面提示确认规格,单击“确定”,完成训练作业创建。

使用GPU资源运行,预计3分钟左右可完成。当训练作业的状态变更为【已完成】时,表示已运行结束。
创建AI应用
在训练作业详情页的右上角单击【创建AI应用】,进入创建AI应用页面。

系统会自动根据上一步训练作业填写参数,参考如下:
【元模型来源】:系统自动选择【从训练中选择】;
【选择训练作业】:系统自动选择上一步创建的训练作业。
【AI引擎】:系统自动写入该模型的AI引擎,无需修改。
【推理代码】:系统自动放置推理代码到OBS输出路径,无需修改。
【部署类型】:默认选择“在线服务”。
参数填写完成后,单击【立即创建】,页面自动跳转至AI应用列表页面。

预计2分钟左右,当AI应用的状态变为【正常】时,表示创建成功。
部署为在线服务(CPU)
AI应用创建成功后,可将其部署为在线服务,在部署时可使用CPU资源。
单击AI应用名称左侧的单选按钮,在列表页底部展开【版本列表】,在版本的操作列中单击【部署】-【在线服务】。

参数设置完成后,单击【下一步】,确认规格参数,单击【提交】,完成在线服务的部署。
进入【部署上线】-【在线服务】页面,当服务状态变为【运行中】时,表示服务部署成功。预计时长2分钟左右。
给几个示例图片。




预测结果:


清除资源
1、停止删除在线服务。
2、删除训练作业。
3、删除数据。
创建NoteBook实例并运行一个小程序
NoteBook简介
ModelArts的Notebook是基于开源Jupyter Notebook提供的在线交互式代码开发调试工具,在AI领域有着很广泛的应用。
而ModelArts的Notebook的优势是即开即用,它预先装好了不同的AI引擎,并且提供了非常多的可选规格,用户可以独占一个容器环境,不受其他人的干扰。用户可以使用本地IDE环境,通过开启SSH的方式连接到该云环境进行运行和调试。
ModelArts的Notebook提供了镜像保存功能,支持一键将运行中的Notebook实例保存为镜像。ModelArts开发环境给用户提供了一组预置镜像,主要包括PyTorch、TensorFlow、MindSpore系列。用户可以直接使用预置镜像启动Notebook实例,在实例中开发完成后,直接提交到ModelArts训练作业进行训练,而不需要做适配。
在开始进行模型开发前,用户要创建Notebook实例,在Notebook编码。
创建NoteBook实例
前提是委托授权已完成,参考使用委托授权完成操作。
登录ModelArts - Console (huaweicloud.com),在左侧导航栏中选择【开发环境】-【Notebook】,进入【Notebook页面】。单击右上角【创建】,进入【创建Notebook页面】。
下面是几个重点关注的参数:
镜像:公共镜像:即预置在ModelArts内部的AI引擎,省去了我们配置的麻烦。可以选择界面显示的公共镜像,也可以前往AI Gallery获取更多镜像。
类型:芯片类型包括CPU、GPU和ASCEND类型。不同的镜像支持的芯片类型不同,根据实际需要选择。GPU性能更佳,但是相对CPU而言,费用更高。
存储配置:包括“云硬盘EVS”、“弹性文件服务SFS”、“对象存储服务OBS”和“并行文件系统PFS”。“弹性文件服务SFS”作为存储位置。 仅专属资源池支持,并需要在专属资源池对应的网络打通VPC才能生效。“对象存储服务OBS”和“并行文件系统PFS”是白名单功能,如果有试用需求,请提工单申请权限。“云硬盘EVS”和“弹性文件服务SFS”的存储路径挂载在/home/ma-user/work
目录下。用户在Notebook实例中的所有文件读写操作都是针对该存储目录下的内容操作,与OBS对象存储无关。停止或重启Notebook实例时,存储的内容会被保留,不丢失。删除Notebook实例时,EVS存储会一起释放,存储的内容不保留。SFS可以重新挂载到新的Notebook,可以保留数据。
SSH远程开发:开启此功能后,用户可以在本地开发环境中远程接入Notebook实例的开发环境。实例中会预置VS Code插件(python、jupyter等)以及VS Code Server包,会占用约1G左右的持久化存储空间。



不过,注意到这个方式创建NoteBook没有免费的额度,工单回复现在北京四区的CodeLab是免费的。
CodeLab简介
CodeLab是云化的JupyterLab,而JupyterLab是一个交互式的webIDE,JupyterLab是Jupyter Notebook的新一代交互式计算环境,旨在提供更强大的功能和更灵活的用户界面。与Jupyter Notebook不同,JupyterLab更像是一个完整的集成开发环境,用户可以在同一个窗口中同时打开多个笔记本、终端、文件浏览器和数据视图。这使得JupyterLab更适合于整个数据科学工作流程的管理和组织。
CodeLab和Notebook的区别,实际上就是云化的JupyterLab和云化的JupyterNotebook的区别,华为工程师给的回复如下:

ModelArts提供了CodeLab功能,一方面,一键进入开发环境,同时预置了免费的算力规格,可直接免费体验Notebook功能;另一方面,针对AI Gallery社区发布的Notebook样例(.ipynb格式文件),可直接在CodeLab中打开,查看他人分享的样例代码。
自启动后,免费规格默认可使用1小时,请注意右上角的剩余时长。
进入CodeLab并创建项目
在ModelArts控制台主页可以看到CodeLab的入口。

点击进去可以看到CodeLab的主页,和JupyterLab是相似的,其相关的常见功能与JupyterLab也相同。

点击第一个Conda-python3环境的Notebook,简单体验。

清除资源并关闭Notebook(CodeLab)实例
要在文件栏把测试创建的文件都删除干净后,再关闭CodeLab实例。
阶段小结
书写到此,已经在华为洛阳昇腾人工智能实验室实习12天,这些天除了出去跟着老师们跑项目,就是自己在学习。
首先说宏观的,对华为昇腾的认识。
华为在下一盘大棋,为了打破外国英伟达的AI算力垄断,华为从开发者到基层芯片全链条的在做自己的产品,是一件非常困难又伟大的事情。如果做成,中国的核心科研部门将做到AI开发到应用的全国产化,这对国家科技自立自强是极为重要的。
当然,也是困难重重,底层芯片上,华为的NPU等和国外还有差距,价格下不来、能力上不去;业务生态上,华为仍然要在AI整体的业务生态上加把劲,业态不成熟,开发者不多;就算有政府政策和资金的支持,但是作为开发者不愿意把已经维护好的系统转移到国产化的平台上,还有在地市推行AI赋能,但很多领导干部不懂AI甚至连业务员也技艺不精,大力推开是极为困难。
但是我认为华为的就是勇做开拓者的民族企业,还有很多人愿意把产品做好、愿意把产品推广出去,真正的落地产生效益产生对社会的推动力。为了在新科技领域的自立自强,前路漫漫亦灿灿。
再说自己的学习总结。
第一周主要在学习昇腾社区的在线课程,主要是听讲座和AI的理论基础。课程比较难,难在老师的讲解大都默认学生基础很好,或是分享技术或是介绍论文,而且多用英文注解。而且还有很大的问题是课程之间连接性不强、针对性不强,不能作为入门学习深度学习、人工智能的参考,适合作为拓展视野或者主线学习外的辅助。
但我依然学习到了很多知识,比如一些深度学习、人工智能中的基本概念和原理推导,还有一些著名的网络模型等。这里要详细阅读这一系列的01、02和03,具体可以参考每篇笔记的学习清单。
04、05、06、07就是在ModelArts上的实践,开始的时候看整体的流程图看不懂,直到跟着官网案例实验之后,才得以把前后知识映射起来。但是,依然是初学懵懵懂懂的状态。
计划之后两周,把官网的案例做完,再把老师发给我的案例做了。都做完之后,总结回顾所有案例,把需要的知识储备汇总起来逐个补习。同时,从HCIA-AI课程详情 (huawei.com)开始学习,学习到HCIP-AI-Ascend Developer课程详情 (huawei.com)。其余时间,把昇腾社区的公开课作为加餐。
如果有昇腾创新大赛要参赛就去努力打比赛。