使用 ModelArts,轻松玩转手写数字识别【玩转华为云】
前言
最近有个新功能,需要完成手抄数据的录入功能,现写功能肯定来不及。
想起来之前写我与ModelArts的故事时,体验过的ModelArts的功能里,除了数据标注,还有手写数字识别,正好做下调研,看能不能借助ModelArts,快速实现业务需求。
又见ModelArts
ModelArts,是华为云提供的一个面向AI开发者的一站式开发平台.
ModelArts提供海量数据预处理及半自动化标注、大规模分布式训练、自动化模型生成,以及端-边-云模型按需部署能力,帮助用户快速创建和部署模型管理全周期AI工作流。
ModelArts具有数据准备效率高、模型训练耗时少、一键部署云/边/端、自动学习等优点,支持应用到图像分类、物体检测、视频分析、语音识别、产品推荐、异常检测等多种AI应用场景。
手写数字识别体验
什么是手写数字识别
手写数字识别,即手写数字图像识别,是华为云AI开发平台ModelArts提供的基于自定义算法构建模型。用户可以在ModelArts平台上训练作业、部署推理模型并预测。
ModelArts产品文档中提供了详细的流程手册,为用户提供如何将本地的自定义算法通过简单的代码适配,实现在ModelArts上进行模型训练与部署的全流程指导。
接下来,让我们一起开启这个有趣的实验。
手写数字识别实验的官方文档地址:使用自定义算法构建模型(手写数字识别)。
前置工作
开始前,我们还需要做一些简单的前置工作:
- 已注册华为帐号并开通华为云;
- 使用华为云帐号登录ModelArts管理控制台,检查ModelArts帐号状态,帐号不能处于欠费或冻结状态。
操作流程
步骤1:准备训练数据
第一步需要下载MNIST数据集,数据集是本次体验必须的基础数据。
数据集的来子MNIST官网,从官网讲数据集下载至本地。
官网有四个文件分别是训练集的压缩包文件、训练集标签的压缩包文件、验证集的压缩包文件、验证集标签的压缩包文件。验证集标签。
这四个文件均需要下载:
步骤2:准备训练文件和推理文件
本地新增三个文件train.py、customize_service.py和config.json,它们分别是该实验需使用的训练脚本、推理脚本和推理配置文件。每个文件的具体内容见文档。
步骤3:创建OBS桶并上传文件
1、登录OBS管理控制台,创建OBS桶。
区域:华北-北京四
桶名称:obs-modelarts-test(注意如果重复可加后缀)
其他保持默认,点击"立即创建"。
2、在新增的BOS桶中新增文件。
- 新增文件pytorch。
- 在pytorch文件下新增三个文件:mnist-data、mnist-code、mnist-output。
- 在mnist-data下上传之前下载的好的训练数据集。
- 在mnist-code下上传之前的本地文件train.py,并新增文件:infer。
- 在infer中上传之前的本地文件customize_service.py和config.json。
步骤4:创建训练作业
1、登录ModelArts管理控制台,选择和OBS桶相同的区域。
2、在左侧导航栏的“训练管理”-> “训练作业”中,单击“创建训练作业”。
- 填写创建训练作业相关信息,其他项保持默认(如下截图)。
- 单击“提交”,确认训练作业的参数信息,确认无误后单击“确定”。
2、检查训练结果
- 页面自动返回“训练作业”列表页,当训练作业状态变为“已完成”时,即完成了模型训练过程。
- 单击训练作业名称,进入作业详情界面。
查看训练作业日志信息。
注:观察日志是否有明显的Error信息,如果有则表示训练失败,请根据日志提示定位原因并解决。
- 在训练详情页左下方单击训练输出路径,跳转到OBS目录。
- 在OBS目录页,查看是否存在model文件夹,且model文件夹中是否有生成训练模型。
注:如果未生成model文件夹或者训练模型,可能是训练输入数据不完整导致,请检查训练数据上传是否完整,并重新训练。
步骤5:推理部署
1、创建AI应用
- 在ModelArts管理控制台,击左侧导航栏中的“AI应用管理>AI应用”,进入“我的AI应用”页面,单击“创建”。
- 在“创建AI应用”页面,填写相关参数(如下截图),然后单击“立即创建”。
- 在AI应用列表页面,查看AI应用状态,当状态变为“正常”时,表示AI应用创建成功。
- 单击AI应用名称左侧的小三角,打开此AI应用下的所有版本。在对应版本所在行,单击操作列“部署>在线服务”,将AI应用部署为在线服务。
- 在“部署”页面,参考下图填写参数,然后根据界面提示完成在线服务创建。本案例适用于CPU规格,节点规格需选择CPU。
- 完成服务部署后,返回在"线服务页面列表"页,等待服务部署完成,当服务状态显示为“运行中”,表示服务已部署成功。
步骤6:预测结果
1、在"线服务页面列表"页,单击"预测",进入预测页。
2、请求类型选择“multipart/form-data”,请求参数填写“image”,单击“上传”按钮上传示例图片,然后单击“预测”。
示例图片:
预测结果:
步骤7:清除资源
如果不再需要使用此模型及在线服务,建议清除相关资源,避免产生不必要的费用。
需要清除的资源包括在线服务、AI应用、训练作业、OBS 桶及文件夹:
- 在“在线服务”页面,“停止”或“删除”刚创建的在线服务。
- 在“AI应用管理”页面,“删除”刚创建的AI应用。
- 在“训练作业”页面,“删除”运行结束的训练作业。
- 进入OBS,删除本示例使用的OBS 桶及文件夹,以及文件夹的文件。
总结
这次的手写数字识别实验就完成了。
先来说体验感受:
- 整体感觉是流程顺畅,步骤清晰简便,基本上没有遇到阻塞的地方。
- 产品文档讲解的十分详细,需要特别注意的地方给了文字提示,所以实验基本没耗费太长时间。
- 无论是模型训练,还是手写数字识别,都十分快速。
体验中,唯一的不方便的地方,就是这个实验要求预测的图片尽量与训练集中的图片相似,有些局限性。对相似的界定在哪呢?手写数字的纸张样式还是水性笔的型号?
比如我写了一组数据,有些可以识别正确,有些却识别错了,且最常被错误识别成数字“2”。
这里希望对于有固定要求的方面,能够要求更明确一些,比如明确一下手写数字的大小、字体的粗细。
而,文档中还有一个很友好的提示:
ModelArts的AI Gallery中提供了常见的精度较高的算法和相应的训练数据集,用户可以在AI Gallery的资产集市中获取。
我准备找些精读高的训练数据集,继续进行实验。
- 点赞
- 收藏
- 关注作者
评论(0)