一、概述
eIQ Neutron神經(jīng)處理單元(NPU)是一種高度可擴(kuò)展的加速器核心架構(gòu),提供ML加速。與傳統(tǒng)MCU Kinetis、LPC系列相比,MCX N系列首次集成了恩智浦 eIQ Neutron神經(jīng)處理單元(NPU),用于機(jī)器學(xué)習(xí)(ML)加速。相比單獨(dú)的CPU核,eIQ Neutron NPU能夠提供高達(dá)42倍的機(jī)器學(xué)習(xí)推理性能,MCX N94x每秒可以執(zhí)行4.8 G次運(yùn)算,使其能夠高效地運(yùn)行在 MCX CPU和eIQ Neutron NPU上。 eIQPortal它是一個(gè)直觀的圖形用戶界面(GUI),簡(jiǎn)化了ML開(kāi)發(fā)。開(kāi)發(fā)人員可以創(chuàng)建、優(yōu)化、調(diào)試和導(dǎo)出ML模型,以及導(dǎo)入數(shù)據(jù)集和模型,快速訓(xùn)練并部署神經(jīng)網(wǎng)絡(luò)模型和ML工作負(fù)載。
在本文中,我們將探討如何訓(xùn)練一個(gè)有效的eIQ基本分類模型,并將其成功部署到MCX N947設(shè)備上。
硬件環(huán)境:
開(kāi)發(fā)板FRDM-MCXN947
顯示屏3.5" TFT LCD(P/N PAR-LCD-S035)
攝像頭OV7670
軟件環(huán)境:
eIQ Portal:eIQ MLSoftware Development Environment | NXP Semiconductors
MCUXpressoIDE v11.9.0
Application Code Hub Demo: Label CIFAR10 image
二、基本模型分類訓(xùn)練及部署
主要內(nèi)容分為三步:模型訓(xùn)練、模型轉(zhuǎn)換和模型部署。
1.數(shù)據(jù)集準(zhǔn)備
數(shù)據(jù)集為簡(jiǎn)單演示apple、banana兩分類,訓(xùn)練集、測(cè)試集比例為8:2,根據(jù)eIQ_Toolkit_UG.pdf提到的3.3.2 Structured folders dataset:
文件夾結(jié)構(gòu)如下:
注:數(shù)據(jù)集需按照以上文件夾格式設(shè)置
2. 創(chuàng)建工程及數(shù)據(jù)集導(dǎo)入eIQ
(1) 打開(kāi)eIQ Portal工具,點(diǎn)擊create project->import dataset:
(2) 以StructuredFolders導(dǎo)入:
(3) 點(diǎn)擊“IMPORT”后,選擇工程保存路徑,點(diǎn)擊“保存”:
3.選擇base models訓(xùn)練
(1)數(shù)據(jù)集導(dǎo)入后,點(diǎn)擊select model,選擇base models,修改input size為128,128,3:
(2)點(diǎn)擊start training。注:其他參數(shù)根據(jù)需要進(jìn)行設(shè)定即可,此處learning rate、batch size、epoch為默認(rèn)值,此處為演示,訓(xùn)練一輪,用戶可以根據(jù)需要訓(xùn)練模型達(dá)到應(yīng)用要求。訓(xùn)練完成如下:
如果精度一直不達(dá)標(biāo),可以通過(guò)修改各訓(xùn)練參數(shù),或者更新訓(xùn)練數(shù)據(jù),再次點(diǎn)擊CONTINUE TRAINING繼續(xù)進(jìn)行訓(xùn)練。
4.模型評(píng)估VALIDATE
(1) 點(diǎn)擊VALIDATE,進(jìn)入模型評(píng)估,設(shè)置參數(shù)Softmax,input DataType和output Data Type,目前MCXN系列Neutron NPU只支持int8類型,選擇Softmax函數(shù)的閾值是一個(gè)需要綜合考慮多種因素的過(guò)程,應(yīng)該根據(jù)具體的應(yīng)用場(chǎng)景和性能目標(biāo)來(lái)決定最合適的閾值,在實(shí)際操作中,需要通過(guò)多次實(shí)驗(yàn)和調(diào)整來(lái)找到最佳的閾值:
(2).設(shè)置完成后,點(diǎn)擊VALIDATE,等待生成混淆矩陣,通過(guò)混淆矩陣我們可以清晰看出不同類別的分類情況,圖中x軸是預(yù)測(cè)的標(biāo)簽,y軸是實(shí)際的標(biāo)簽,可以看到每一張圖片預(yù)測(cè)標(biāo)簽和實(shí)際標(biāo)簽的對(duì)應(yīng)情況:
5.模型導(dǎo)出TensorFlow Lite
(1) 點(diǎn)擊DEPLOY,設(shè)置Export file Type,input Data Type和output Data Type,打開(kāi)Export Quantized Model,然后點(diǎn)擊Export Model:
(2).設(shè)置模型保存位置,點(diǎn)擊保存:
6.轉(zhuǎn)換TensorFlow Lite for Neutron (.tflite)
(1) 保存完成后,點(diǎn)擊open model,可以查看模型結(jié)構(gòu):
(2) 點(diǎn)擊convert,選擇TensorFlow Lite for Neutron (.tflite):
(3) 選擇Neutron Target,點(diǎn)擊convert,設(shè)置保存路徑即可:
7.將模型部署到Label CIFAR10 image工程
此示例基于機(jī)器學(xué)習(xí)算法,由 MCXN947 提供支持, 它可以標(biāo)記來(lái)自相機(jī)的圖像,并在LCD底部顯示物體的類型。
該模型在數(shù)據(jù)集CIFAR10上進(jìn)行訓(xùn)練,它支持 10 類圖像:
“飛機(jī)”、“汽車”、“鳥(niǎo)”、“貓”、“鹿”、“狗”、“青蛙”、“馬”、“船”、“卡車”。
(1) 打開(kāi)MCUXpresso IDE,從Application Code Hub導(dǎo)入Label CIFAR10 image工程:
(2) 選擇工程,點(diǎn)擊GitHub Link->Next:
(3).設(shè)置保存路徑,Next->Next->Finish:
(4).導(dǎo)入成功后,點(diǎn)擊“source”文件夾->model文件夾,打開(kāi)model_data.s,將最后通過(guò)eiq轉(zhuǎn)換的模型文件復(fù)制到model文件下,在model_data.s修改導(dǎo)入模型的名稱(轉(zhuǎn)換模型的名稱):
注:工程中導(dǎo)入的模型是經(jīng)過(guò)多次訓(xùn)練得到的模型
(5) 點(diǎn)擊“source”文件夾->model文件夾->打開(kāi)labers.h文件,修改labers[ ],標(biāo)簽順序?yàn)閑IQ中數(shù)據(jù)集顯示的順序 :
(6) 編譯工程,下載到開(kāi)發(fā)板。
三、實(shí)驗(yàn)結(jié)果
四、總結(jié)
對(duì)于希望在MCX N系列邊緣設(shè)備上實(shí)現(xiàn)高效機(jī)器學(xué)習(xí)應(yīng)用的開(kāi)發(fā)人員來(lái)說(shuō),掌握這些技術(shù)和工具是至關(guān)重要的。
通過(guò)高效利用eIQ Neutron NPU的強(qiáng)大性能和eIQ Portal的便捷工具,開(kāi)發(fā)人員可以大大簡(jiǎn)化從模型訓(xùn)練到部署的整個(gè)過(guò)程。這不僅加速了機(jī)器學(xué)習(xí)應(yīng)用的開(kāi)發(fā)周期,還提升了應(yīng)用的性能和可靠性。
作者:王浩 楊聰哲
-
處理器
+關(guān)注
關(guān)注
68文章
19371瀏覽量
230420 -
mcu
+關(guān)注
關(guān)注
146文章
17194瀏覽量
351864 -
恩智浦
+關(guān)注
關(guān)注
14文章
5869瀏覽量
107870 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8428瀏覽量
132827 -
NPU
+關(guān)注
關(guān)注
2文章
286瀏覽量
18669
原文標(biāo)題:MCX N947:eIQ基本分類模型訓(xùn)練及部署
文章出處:【微信號(hào):NXP_SMART_HARDWARE,微信公眾號(hào):恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論