zoukankan      html  css  js  c++  java
  • 手把手教你使用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。

    打开后,具体内容如下:

    {"annotation":[{"name":"Cortinarius","type":"modelarts/image_classification","creation-time":"2020-11-11 11:07:34","annotated-by":"human/zhanghui_china/zhanghui_china"}],"usage":"train","source":"s3://mindspore-21day-tutorials/resnet-50-2/mushrooms/train/Agaricus/import_1605064037231/219_m7t5mnXvmsw.jpg","id":"0008324d2a2933fa17ef490e8413edc1","sample-type":0}

    其中将图片和类别的关系标注在JSON中。

    第二步,我们来建立一个自动学习的任务。

    打开自动学习菜单。

    点击创建项目,输入名称: exeML-dumogu,选择”已有数据集“并选中刚才创建的dataset-dumogu数据集。

    然后打开建好的项目exeML-dumogu,点击右边红色的开始训练:

    系统弹出以下菜单,输入训练验证比例未0.8,0.2,确定后开始模型训练。

    确认配置后提交,

    系统就开始进行模型训练:

    训练完毕后,会提示精确率,准确率,召回率等值,关键看准确率吧——94%,还可以。

    点击上图的部署按钮们开始进行部署。

    下一步:

    点击提交后,

    耐心等待,也可以在”部署上线“-”在线服务“菜单看到部署的进度。

    部署完毕后,出现以下画面:

    可以点击”上传“,上传一些待预测的图片。

    比如上图,55%的机率是Agaricus...

     

    我们上传一个真的Agaricus

    得分1.0. 完全准确。

     

     

     

     

     

     

     

    以上都是从数据集里面直接拿的图片,得分不是1.00就是0.99,飞常准。

    张小白再从网上找一些毒蘑菇的图片:

     

     

     

    这就有高有低了。

    再找几张可以吃的,如金针菇和香菇:

    好,我们回过头来看看这9个分类的具体含义:

    label_list = ["Agaricus双孢蘑菇,伞菌目,蘑菇科,蘑菇属,广泛分布于北半球温带,无毒",
                  "Amanita毒蝇伞,伞菌目,鹅膏菌科,鹅膏菌属,主要分布于我国黑龙江、吉林、四川、西藏、云南等地,有毒",
                  "Boletus丽柄牛肝菌,伞菌目,牛肝菌科,牛肝菌属,分布于云南、陕西、甘肃、西藏等地,有毒",
                  "Cortinarius掷丝膜菌,伞菌目,丝膜菌科,丝膜菌属,分布于湖南等地(夏秋季在山毛等阔叶林地上生长)",
                  "Entoloma霍氏粉褶菌,伞菌目,粉褶菌科,粉褶菌属,主要分布于新西兰北岛和南岛西部,有毒",
                  "Hygrocybe浅黄褐湿伞,伞菌目,蜡伞科,湿伞属,分布于香港(见于松仔园),有毒",
                  "Lactarius松乳菇,红菇目,红菇科,乳菇属,广泛分布于亚热带松林地,无毒",
                  "Russula褪色红菇,伞菌目,红菇科,红菇属,分布于河北、吉林、四川、江苏、西藏等地,无毒",
                  "Suillus乳牛肝菌,牛肝菌目,乳牛肝菌科,乳牛肝菌属,分布于吉林、辽宁、山西、安徽、江西、浙江、湖南、四川、贵州等地,无毒",
                  ]

    自己找的几个毒蘑菇图片,分别被识别为:

    Russula,无毒
    Amanita,有毒
    Lactarius,无毒
    Amanita,有毒
    Hygrocybe,有毒
    Amanita,有毒
    Lactarius,无毒
    ---------白雪公主的中毒率为 3/7.

    而张小白找的那2张食用菇的图片,分别被识别为:

    Lactarius,无毒
    Lactarius,无毒
    ---------白雪公主吃到美食的概率是 100%。

    看来,7个小矮人还是有必要出现的,至少可以帮白雪公主试7次毒。

    至于在实战营得到的一个关键知识,也需要在这里强调下:ResNet卷积神经网络,肯定会给一张并没有分类的图片搞个分类的,即便它不属于任何分类,也会强分一下,只不过得分会稍微低一点,比如0.5,0.6,0.7之类的。这个并不是这个网络的无能,而是在深度学习这块,现在就只能到这里了。

    所以,张小白认为,如果在得分特别低的情况下,咱就暂且在应用上不将其归类就是了。(或者写上得分,让别人看到,反正真的不是也是个概率问题,也不能怪ResNet。说了这些,张小白感觉这个好像天气预报的概率指数啊。)

    好了,关于ModelArts自动学习完成毒蘑菇图片识别的介绍暂时讲到这里吧。其实本文只是学习MindSpore的一个副产品。张小白的本意是想检查下,这个数据集进行训练,是否真的如MindSpore训练结束后那样不是很令人满意,结果倒是较为满意的。这样子反而让张小白无可奈何了。看来还是要细究下ResNet在MindSpore的应用里面,到底出了啥问题。

    本文分享自华为云社区《张小白教你如何使用ModelArts的自动学习对毒蘑菇进行分类》,原文作者:张辉。

    点击关注,第一时间了解华为云新鲜技术~

  • 相关阅读:
    剑指offer--38.左旋转字符串
    剑指offer--37.和为S的两个数字
    剑指offer--35.数组中只出现一次的数字
    剑指offer--34.数字在排序数组中出现的次数
    剑指offer--33.丑数
    SSIS包定时执行
    在SSIS 的 64 位版本中不支持 Excel 连接管理器[转]
    sql中的sp_helptext、sp_help 、sp_depends
    SQL去除回车符,换行符,空格和水平制表符
    SQL Server中bcp命令的用法以及数据批量导入导出
  • 原文地址:https://www.cnblogs.com/huaweiyun/p/13969386.html
Copyright © 2011-2022 走看看