本文分享自華爲雲社區《基於MindSpore的ResNet-50蘑菇「君」的識別應用體驗》,原文做者:Dasming。算法
摘要:基於華爲MindSpore框架的ResNet-50網絡模型,實現6714張共10類蘑菇圖片的識別分類訓練。
背靠全新的設計理念,華爲雲推出了 MindSpore深度學習實戰營,幫助小白更快的上手高性能深度學習框架,快速訓練ResNet-50,實現你的第一個手機App開發,學會智能新聞分類、籃球檢測和「猜你喜歡」模型!網絡
MindSpore深度學習實戰營,經過 21天的合理課程安排,不只提供目前大熱的移動端部署介紹,還有緊跟時事的趣味實踐,更有深度的底層開發講解,讓你從框架到算法到開發,都能一網打盡。框架
在MindSpore21天實戰第三堂課,由王輝老師分享了基於MindSpore的ResNet-50的識別推理模型,如何應用在「蘑菇’君’是否有毒?」的檢測場景。工具
ResNet以前的情況是:性能
CNN可以提取low/mid/high-level的特徵,網絡的層數越多,意味着可以提取到不一樣level的特徵越豐富。而且,越深的網絡提取的特徵越抽象,越具備語義信息。而實際隨着神經網絡層數的增長,梯度消失或者爆炸致使深層網絡很難訓練。學習
對於該問題的解決方法是正則化初始化和中間的正則化層(Batch Normalization),這樣的話能夠訓練幾十層的網絡。雖然經過上述方法可以訓練了,可是又會出現另外一個問題,就是退化問題,網絡層數增長,可是在訓練集上的準確率卻飽和甚至降低了。測試
ResNet提出了殘差結構,就是爲了解決梯度消失、爆炸或者訓練退化的問題。其經典結構以下圖所示:設計
以下圖所示,左側是普通層,而右側是ResNet;3d
以下圖所示,左側是普通層,而右側是ResNet;日誌
隨着網絡層數的大量增長,普通層的輸出H(X)愈來愈難以學習。而ResNet跨過卷積層將輸入X做爲最終輸出。F(X)被稱爲殘差。
深度殘差網絡有着相對低的複雜度和更深的網絡層數。曾獲多項比賽的第一名。
ResNet-50中的50,指的是該網絡的層數爲50層。
本堂課的體驗做業是基於華爲MindSpore框架的ResNet-50網絡模型,實現6714張共10類蘑菇圖片的識別分類訓練。算力是基於華爲雲ModelArts,網絡存儲使用華爲OBS對象存儲服務。大量圖片上傳OBS桶過程當中,使用了OBS-browser-plus套件工具,設置好OBS登陸權限和存儲目錄後,能夠本地拖放目錄操做,大量的數據文件能夠進入隊列自動上傳。
基於1*Ascend910 CPU的算力,整個訓練過程用時10.04minutes,數據集訓練精度平均損失0.569,輸出日誌以下圖所示。
對訓練生成的模型,經過Eval測試「蘑菇超人」圖片。
其分類結果爲「霍氏粉褶傘,傘菌目,粉褶菌科……」,測試日誌見下圖。也是查了一下霍氏粉褶傘的圖片,其餘且不說,顏色類似度仍是挺高的。
整個體驗過程簡單流暢,結合實例加深了對ResNet-50深度神經網絡的瞭解。