手把手教你使用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的自動學習對毒蘑菇進行分類》,原文作者:張輝。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4548/viewspace-2796342/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 手把手教你 python 人臉識別自動開機Python
- 影像分類學習:X光胸片診斷識別----遷移學習遷移學習
- 手把手教你運用深度學習構建影片人臉識別模型(Python實現)深度學習模型Python
- 手把手教你使用LabVIEW OpenCV dnn實現影像分類(含原始碼)ViewOpenCVDNN原始碼
- 手把手教你在Modelarts平臺上進行視訊推理
- 手把手教你快速構建自定義分類器
- 手把手教你運用深度學習構建視訊人臉識別模型(Python實現)深度學習模型Python
- AppUI 自動化中的影像識別的使用APPUI
- VR垃圾分類體驗系統:學習垃圾分類知識科普VR
- 利用OpenCV和深度學習來實現人類活動識別OpenCV深度學習
- 實戰四:手把手教你實現數字識別
- 手把手教你實現人臉識別,有手就行
- 機器學習框架ML.NET學習筆記【4】多元分類之手寫數字識別機器學習框架筆記
- 手把手教你用DGL框架進行批次圖分類框架
- 手把手教你用DGL框架進行批量圖分類框架
- Arctime自動分軸怎麼用? Arctime語音識別自動加字幕的技巧
- 影像識別垃圾分類app的製作APP
- 模式識別與機器學習——概率分佈模式機器學習概率分佈
- MongoDB資料庫手把手教你來學習MongoDB資料庫
- 手把手教你學Python之基本資料型別Python資料型別
- 手把手教你使用LabVIEW OpenCV DNN實現手寫數字識別(含原始碼)ViewOpenCVDNN原始碼
- hanlp中文智慧分詞自動識別文字提取例項HanLP分詞
- 基於口罩識別模型,探索機器學習自動化的技術應用模型機器學習
- 手把手教你實現pynq-z2條形碼識別
- 機器學習演算法(九): 基於線性判別模型的LDA手寫數字分類識別機器學習演算法模型LDA
- 手把手教你用Python實踐深度學習Python深度學習
- 深度學習——性別識別深度學習
- 強化學習分類強化學習
- 手把手教你認識OPTIMIZER_TRACE
- [手把手教你] 1分鐘搭建Hyperf
- PHP 手冊 (類與物件) 學習筆記四:類的自動載入PHP物件筆記
- API智慧識別平臺,API介面自動識別API
- 教你使用SQLite Autoincrement(自動遞增)SQLiteREM
- 【MongoDB學習筆記】手把手教你配置Python操作MongoDBMongoDB筆記Python
- 模式識別與機器學習筆記專欄之貝葉斯分類決策(一)模式機器學習筆記
- BIM自動識別三維地圖-Revit模型自動識別三維地圖-IFC模型自動識別三維地圖製作地圖模型
- 機器學習--有監督學習--分類演算法(預測分類)機器學習演算法
- 手把手教你搭建自己的Raneto知識庫(二)