版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
NNCU(NNtoolkitforMCU)主要致謝:,,,NNCU(NNtoolkitforMCU)提供了的工具,使您可以方便地在NXPCortex-MMCU上運行神經(jīng)網(wǎng)絡(luò),包括i.MXRT,LPC,Kinetis。NNCU有以下主要功能: 如您所見,我們已經(jīng)提供了一些轉(zhuǎn)換好的模型。咱們先選 我們也預(yù)制了一些測試文件。確保您選擇了與模型相對應(yīng)的測試文件。這里,我們選現(xiàn)在我們選好了轉(zhuǎn)換后的模型文件和測試向量文件,可以點擊”干活!”按鈕了,這會把它們MCU測試工程下,并重命名為”model.nncu.c”和”tv.nctv.c”,它們將會被編譯并到測試用的固件中。點擊“干活!”按鈕后,一個命令窗口一閃而過即已完成。Testoni.MXRT1050/60i.MXRT1050/60EVK板為例。按下圖配置EVK:打開一個終端仿真軟件,例如putty, 于.\test_mcu\boards\evkmimxrt1060\demo_apps\nncie_stub\mdk\nncie_stub.uvprojx的KEIL工程,生成并代碼(默認是到SDRAM。進入調(diào)試會話后,按”F5”按鈕來運試程序,下圖是一個:MCU測試工程(.nncu,MCU測試工程(.nncu,制作測試向量文件(.nctv,制作測試向量文件(.nctv,獲取預(yù)訓(xùn)練的模型(.h5,獲取預(yù)訓(xùn)練的模型(.h5,測試當(dāng)發(fā)現(xiàn)更好在當(dāng)前最好模型(.nncu,更新MCU測試工程測試當(dāng)發(fā)現(xiàn)更好在當(dāng)前最好模型(.nncu,更新MCU測試工程 主要使用卷積層并且有30%的隨機丟棄率。頻變換后得到的時域信號的頻譜圖,亦或是任何以圖像方式處理的多筆時域數(shù)據(jù)。NNCU已經(jīng)支持了幾種常但只支持某段的估算,如18歲至39歲。Logistic/陽性判別:根據(jù)“分界線概率”使用Logistic回歸的方式判定還是陽性,其實是127表達為[0,1-1/128]步幅為1/128。 通常在1分鐘內(nèi)即可轉(zhuǎn)換完畢并且這個窗口自動,您也可以在nncuGUI 制上面生成令行再粘貼進來手動執(zhí)行,以完整觀察命令行上都跑了些啥。 會調(diào)用另一個pythonscript:test_file_gen.py,我在它退出前截下了圖: 式定義的二進制內(nèi)容以便應(yīng)用在C工程中,共同鏈入固件并燒到Flash中直接使用。提到了。這個工作其實就是把.nncu.c和.nctv.c到MCU測試工程下并按以下方式改名:xxx.nncu.c->model.nncu.cxxx.nctv.c-> NNCUGUI(.\nncu_pc\nncuguiset.ini),下次啟動時此外,您也可以把設(shè)置到指定的配置文件中,通過點擊“另存為…”即可,NNCU自動以數(shù)據(jù)集的名稱若要“來真的”,您需要用實時的數(shù)據(jù)來替換.nctv.c測試文件中的離線數(shù)據(jù)(雖然也可以是真分用滿寶貴的256等級分辨能力。量化后表達范圍與分辨粒度的關(guān)系如下:表達范圍128/2shift_index分辨粒度(步長)1適的移位指數(shù)是3。修改.\nncu_pc\loaddata.py“<datasetname>_load_data”函數(shù),返回部分?jǐn)?shù)據(jù)樣本. 。如果您查看loaddata.py,會看到已經(jīng)寫好的cifar10_load_data函數(shù)。表示測試樣本上的精度為81.78%。集,這是另一種“過擬合”呢!因此,最好使測試向量不要過少,例如500個以上,層數(shù)越多,有個經(jīng)驗是需要“300+需要量化的層數(shù)*10”個。凡是數(shù)學(xué)上會輸出無限值域的層,都算是“需層時,移位指數(shù)不需要小于7。Tanh也是如出一轍。考“附錄A:模型量化專題注:以下內(nèi)容需要您有少量的Python基礎(chǔ)即可理解并照貓畫虎,實在沒有的話不妨花大半天一下5.25.2.1。。對接到NNCU的測試向量制作,建議提取的數(shù)據(jù)制作成2個numpy數(shù)組文件(“.npy”),例如x.npy和y.npy,分別對應(yīng)輸入數(shù)據(jù)和。importnumpyasfromkeras.importnumpyasfromkeras.datasetsimportdefifnot#ifminidatasetisnotyetexistthendownloadwholesetandmakemini(1,2),(xtest,ytest)=cifar10.loaddata()a=make_shuffle_int_array(len(y_test))x2=xtest[:5000];y2=yforiinx2[i]=xtest[a[i]];y2[i]=ytest[a[i]]np.save('../datasets/cifar10/c10x.npy',x2)np.save('../datasets/cifar10/c10y.npy',y2)num_classes=x_test=np_load('../datasets/cifar10/c10x.npy').astype('int32')y_test=np_load('../datasets/cifar10/c10y.npy').astype('int32')#Normalizedatato(-1,1)asmodelexpectedx_test=x_test.astype('float32')/128-#Convertclassvectorstobinaryclassmatrices.y_test=to_categorical(y_test,num_classes)returnxtest,ytest這個先是判斷有沒有已經(jīng)存在的迷你數(shù)據(jù)集(“datasets/cifar10/c10x.npy”),若沒有則使用值得注意的是,為了便于訓(xùn)練模型,尤其是輸入圖像的時候,常常把原始數(shù)據(jù)歸一化到(-1,1)之間。以不做歸一化。例如,另一個電機控制異常檢測的迷你數(shù)據(jù)集mcad就沒有:defdefmcadloadx_test=np_load('../datasets/mcad/x_test.npy').astype('int32')ytest=npload('../datasets/mcad/ytest.npy')returnx_test,在test_file_gen.py中添加測試樣本制作函數(shù)并在主程序test_file_gen.py-ds迷你數(shù)據(jù)集名稱 t測試向量數(shù)目[-c](生成C數(shù)組形式的源代defdefcifar10_gen_test(cnt=20,tvGen:NNTestGen=None,isWrCArray=False):num_classes=10x_test=np_load('../datasets/cifar10/c10x.npy').astype('int32')ytest=npload('../datasets/cifar10/c10y.npy').astype('int32')xLen=len(x_test)#substractmeanvaluewithamplificaitonof2power7:[0,256)->[128,127):[-1,1]*2**727次方倍:[0256128,12711*2**7xtest=xtest.astype('int32')-128#shuffletheorder打亂數(shù)據(jù)順序, a=settestvectorsize.ForCIFAR10itis32x32RGB:32x32x3=3072bytes#設(shè)置測試向量長度。對于CIFAR10,是32x32RGB:32x32x3=3072字節(jié)tvGen.SetTestDataSize(xtest[0].shape[0]*xtest[0].shape[1]*xforiinx=x_test[a[i]];y=#invokeAddTestVecmethodoftvGen,withwidth,height,channels,vector,anditslabeltvGen.AddTestVec(x.shape[0],x.shape[1],x.shape[2],x,#tvGen.WriteFilewith'.'(currentpath)writes<datasetname>.nctv#tvGen.WriteFile可以在'.'(當(dāng)前 )下寫入<迷你數(shù)據(jù)集名>.nctv和<迷你數(shù)據(jù)集名>.nctv.ctvGen.WriteFile('.',isWrCArray)printprint('Generating%dtestsamplesfor%s'%(cnt,tvGen=NNTestGen('%s.nctv'%sDS,cnt,0,0,1,i tTV=False)ifsDS=='cifar10':tvGen.SetOutType(tvGen.OUTTYPECLS,10)cifar10_gen_test(cnt,tvGen=tvGen,isWrCArray=args.c_ary)elifsDS=='cifar100':tvGen.SetOutType(tvGen.OUTTYPECLS,100)tdefsDS=args.dataset;cntelifelifsDS=='age': gentest(cnt,w=96,sType='age',age0=18,numclasses=22,tvGen=tvGen,isWrCArray=args.cary)elifsDS=='agefull':tvGen.SetOutType(tvGen.OUTTYPERGRCLS,1) _gen_test(cnt,w=96,sType='agefull',age0=15,num_classes=40,tvGen=tvGen,elifsDS==' gentest(cnt,w=96, ',numclasses=2,tvGen=tvGen,isWrCArray=args.celifsDS=='mfn':mfngentest(cnt,tvGen=tvGen,isWrCArray=args.cary)tvGen.SetOutType(tvGen.OUTTYPE_ANG,128)elifsDS=='pqkws':tvGen.SetOutType(tvGen.OUTTYPECLS,10)elifsDS=='gesture':tvGen.SetOutType(tvGen.OUTTYPECLS,3)elifsDS=='malaria':elifsDS=='lenet':elifsDS=='fraud':fraudgentest(cnt,tvGen=tvGen,isWrCArray=args.celifsDS=='mcad':mcadgentest(cnt,tvGen=tvGen,isWrCArray=args.cprint('unsupported%s'%Logistic回歸(基于概率判定/陽此需要2倍的樣本數(shù)量。的API通過nncie.h提供。只要集成了解釋器和命令列表數(shù)據(jù),就具備了解算模型的基本條件了。 RT10x0上使用。它有配套的頭文件”nncie.h”#include#include"nncie.h"#includeWEAKvoid*CIPort_Malloc(size_t{void*pv=malloc(size);if(pv)while(1){}}WEAKvoid (void*{}bytes,void*pvBuf){return}intintprimask=get_PRIMASK();if(nest==0){s_primask=}return}WEAKintreturn-1L;if(0==nest){}return}這里的”CIPort_DefaultReadData”用于從文件系統(tǒng)中一層一層地模型。如果您的確把模型放在文 對于使用單個.nncu.c的情況,調(diào)用NNCU 條API:intintCIRunModelXIP(constvoid*pcvModel,constvoid*pcvIn,void是”model1”。在nncie.h中已為您了對應(yīng)的extern常量,所以對于單個模型您無需。intintCI_RunModelXIP_MTSafe(constvoid*pvModel,constvoid*pcvIn,void并發(fā)調(diào)用,將會存在多個模型解算上下文對象,每個約320字節(jié)。如要改動模型的名字,請打開對應(yīng)的.nncu.c文件,把”model1”改為其它的即可。齊導(dǎo)致的hardfault。
下2條API:intintCI_zzCreateContextNonXIP(uint32_tmodelHandle,CI_UserContext*pUserCtx,“zzAPI無NNCU為測試樣本同樣提供類似的API來使用。這些API以源代碼的方式放置于測試工程的”o_world.c”中。intintTestVecCreateCtxXIP(constvoid*pcvTestData,TestCtx_t*pcvTestData:指向一個數(shù)據(jù)塊,表示測試向量集合,也就是在.nctv.c中定義的數(shù)組名,默認是“test1intTestVecCreateCtx(constchar*intT
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年酒店、廚房設(shè)備用品項目融資計劃書
- 2023年消化系統(tǒng)用藥項目融資計劃書
- 2023年全自動金屬帶鋸床超精密加工機床項目融資計劃書
- 【虎嘯】2024年虎嘯年度洞察報告-3C家電行業(yè)
- 機械制圖考試題+答案
- 養(yǎng)老院老人生活娛樂制度
- 養(yǎng)老院老人健康監(jiān)測人員表彰制度
- 《稅務(wù)稽查實務(wù)課堂》課件
- 托管合作協(xié)議書(2篇)
- 播種收割合同(2篇)
- 園林工程測量 園林植物種植放樣(園林測量)
- 【超星爾雅學(xué)習(xí)通】《老子》《論語》今讀網(wǎng)課章節(jié)答案
- 地理人教版高中必修一(2019年新編)-5-1 植被課件
- 安全生產(chǎn)保證措施-
- MEMS加速度傳感器的地原理與構(gòu)造
- 壓型鋼板底模砼樓承板施工交底培訓(xùn)課件
- 課件《中國式現(xiàn)代化》
- 食用油相關(guān)企業(yè)質(zhì)量管理制度
- GA 1808-2022軍工單位反恐怖防范要求
- GB/T 4802.2-2008紡織品織物起毛起球性能的測定第2部分:改型馬丁代爾法
- 0861理工英語4 國家開放大學(xué)機考題庫及答案
評論
0/150
提交評論