技術實踐丨基於MindSpore的ResNet-50蘑菇“君”的識別應用體驗


本文分享自華為雲社區《基於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;

如下圖所示,左側是普通層,而右側是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深度神經網絡的了解。

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM