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