手把手教你使用 ModelArts 的自动学习识别毒蘑菇分类
摘要:本文介绍了 ModelArts 如何通过自动学习进行毒蘑菇的识别。
想当年,白雪公主吃了毒蘑菇,换来了白马王子的一吻。如果白雪公主没有吃毒蘑菇,还会遇到白马王子吗?张小白觉得不见得——说不定她会遇到张小白。张小白给她 AI MindSpore Lite 推理了一下,她就不会中毒,也就会钟情于张小白的 AI 的神奇,也就不会移情给白马王子了。
为了早日给白雪公主安利一下毒蘑菇的知识点,张小白今天就写下了这篇通过 ModelArts 自动学习进行毒蘑菇分类的文字,希望白雪公主能够看到,并关注点个赞什么的。
ModelArts 的自动学习功能也就几步:
(1)准备毒蘑菇数据集
(2)创建自动学习项目,进行数据标注
(3)对数据集进行模型训练
(4)将训练好的模型部署上线
(5)测试已部署上线的服务,进行蘑菇图片的推理。
先来创建数据集:首先把毒蘑菇的数据集准备好,点击以下链接下载 zip 包:
文件有 951M,耐心下载。下载完毕后将其解压,
打开 mushrooms/train 文件夹,下面存放了毒蘑菇图片的 9 个分类。
将这些图片(带目录)上传到自己的 OBS 桶中。
张小白上传的 OBS 路径为是 obs://mindspore-21day-tutorials/resnet-50-2/mushrooms/train/
然后,新建一个 dataset-dumogu 数据集:
由于 OBS 里面是按照目录分类的,可以先导入第一个目录,如上图所示。
输入:/mindspore-21day-tutorials/resnet-50-2/mushrooms/train/Agaricus/
输出:/mindspore-21day-tutorials/resnet-50-2/output-mindspore/
创建后,可以先将目前导入的图片全部标注为 Agaricus。
标注完这一类之后,可以在这个数据集上面点击”导入“
填入第二个分类的 OBS 位置:
点击确定。
系统会进行该目录数据集的导入任务。
导入完毕,可以当看到 已标注的个数和整个数据集的数量:
本次导入的图片(数据集)会是未标注状态:
此时可将点击图片下方每页显示的最大数量跳到最大(目前是 60),然后再选择”选择当前页“.
并在标签名中输入这类未标注的图片的标签,如 Suillus,点击确认。
可看到未标注的数量在减少,而已标注为 Suillus 的图片数量在增加:
如此反复标注 未标注的图片,直到未标注的图片全部标注完毕,然后再进行其他目录(其他类别)的数据集的导入和标注。如此反复,直到标注完全结束。
(这确实是一个体力活,人称”数据标注工程师“。)
好了,我们的数据集就准备好了。
在标注完之后,ModelArts 会在 前面设置的输出目录下生成以下目录:
这之下又有 5 个目录:
其中 annotation 目录是标注文件目录,里面内容为:
V002.manifest。
打开后,具体内容如下:
其中将图片和类别的关系标注在 JSON 中。
第二步,我们来建立一个自动学习的任务。
打开自动学习菜单。
点击创建项目,输入名称: exeML-dumogu,选择”已有数据集“并选中刚才创建的 dataset-dumogu 数据集。
然后打开建好的项目 exeML-dumogu,点击右边红色的开始训练:
系统弹出以下菜单,输入训练验证比例未 0.8,0.2,确定后开始模型训练。
确认配置后提交,
系统就开始进行模型训练:
点击上图的部署按钮们开始进行部署。
下一步:
点击提交后,
耐心等待,也可以在”部署上线“-”在线服务“菜单看到部署的进度。
部署完毕后,出现以下画面:
可以点击”上传“,上传一些待预测的图片。
比如上图,55%的机率是 Agaricus...
我们上传一个真的 Agaricus
得分 1.0. 完全准确。
以上都是从数据集里面直接拿的图片,得分不是 1.00 就是 0.99,飞常准。
张小白再从网上找一些毒蘑菇的图片:
这就有高有低了。
再找几张可以吃的,如金针菇和香菇:
好,我们回过头来看看这 9 个分类的具体含义:
自己找的几个毒蘑菇图片,分别被识别为:
而张小白找的那 2 张食用菇的图片,分别被识别为:
看来,7 个小矮人还是有必要出现的,至少可以帮白雪公主试 7 次毒。。。
至于在实战营得到的一个关键知识,也需要在这里强调下:ResNet 卷积神经网络,肯定会给一张并没有分类的图片搞个分类的,即便它不属于任何分类,也会强分一下,只不过得分会稍微低一点,比如 0.5,0.6,0.7 之类的。这个并不是这个网络的无能,而是在深度学习这块,现在就只能到这里了。
所以,张小白认为,如果在得分特别低的情况下,咱就暂且在应用上不将其归类就是了。(或者写上得分,让别人看到,反正真的不是也是个概率问题,也不能怪 ResNet。说了这些,张小白感觉这个好像天气预报的概率指数啊。)
好了,关于 ModelArts 自动学习完成毒蘑菇图片识别的介绍暂时讲到这里吧。其实本文只是学习 MindSpore 的一个副产品。张小白的本意是想检查下,这个数据集进行训练,是否真的如 MindSpore 训练结束后那样不是很令人满意,结果倒是较为满意的。这样子反而让张小白无可奈何了。看来还是要细究下 ResNet 在 MindSpore 的应用里面,到底出了啥问题。
本文分享自华为云社区《张小白教你如何使用 ModelArts 的自动学习对毒蘑菇进行分类》,原文作者:张辉。
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/27cbf3ec5d75dac8c01871ec9】。文章转载请联系作者。
评论