24小時聯(lián)系電話:18217114652、13661815404
中文
技術(shù)專題
針對嵌入式應(yīng)用優(yōu)化AI
基于AI的界面的需求-并且添加像face-id這樣的基于AI的界面來授權(quán)對機器的訪問乍看起來似乎是一個巨大的飛躍,但這并沒有就像您想的那樣困難。有大量可用的AI平臺,大量的培訓(xùn)選項甚至是開源應(yīng)用程序,例如face-id example。使用可以在PC上運行的原型,您可以快速啟動并進行測試。
約束條件
將訓(xùn)練有素的網(wǎng)絡(luò)遷移到嵌入式應(yīng)用程序似乎是另一個巨大的障礙。受PC或云訓(xùn)練的網(wǎng)絡(luò)在內(nèi)存使用或功耗方面沒有進行太多優(yōu)化。他們可能會使用浮點數(shù)或雙字進行網(wǎng)絡(luò)計算,并且在處理圖像上的滑動窗口時會嚴(yán)重依賴片外內(nèi)存訪問。對于在插入墻壁電源的高性能PC上運行的原型而言,這不是要擔(dān)心的問題,但是您需要在最終應(yīng)用程序中更加節(jié)儉,并且不影響性能。
優(yōu)化的要點
優(yōu)化的一個關(guān)鍵步驟稱為量化。將權(quán)重從浮點切換到固定點并減小固定點大?。ɡ?,從32位浮點更改為8位整數(shù))不僅會影響權(quán)重的大小,還會影響中間計算值。僅此一項就可以顯著減少內(nèi)存占用,在大多數(shù)情況下,對識別質(zhì)量的影響很小。
第二種操作是在最小的精度影響下利用權(quán)重的稀疏性。這種做法將利用權(quán)重接近零的優(yōu)勢,并將其舍入為零,同時密切關(guān)注準(zhǔn)確性的影響。權(quán)重用于乘以部分和,當(dāng)因素之一為零時,這是無意義的練習(xí),因此無需執(zhí)行該運算。
在實際的實現(xiàn)中,圖像是增量處理的,因此當(dāng)計算窗口在圖像上移動時,權(quán)重必須更新。那會帶來很多更新和大量流量。通過將大部分權(quán)重強制為零,可以壓縮權(quán)重數(shù)組,從而可以將所有或大部分?jǐn)?shù)組存儲在片上SRAM中,以根據(jù)需要進行解壓縮。從而最大程度地減少了訪問主存儲器的需求,從而提高了性能并降低了功耗。加載砝碼時,它還附帶減少了片上流量。較少的流量爭用意味著較高的吞吐量。
應(yīng)該考慮另外一個因素。像大多數(shù)復(fù)雜的應(yīng)用程序一樣,神經(jīng)網(wǎng)絡(luò)依賴于復(fù)雜的庫。您需要使用一個設(shè)計用于微控制器環(huán)境的庫,并將其編譯到您選擇的平臺。一個很好的起點可能是一個開源庫,例如TensorFlow Lite,但是為了充分利用微控制器,將需要專用的定制解決方案。
當(dāng)然,知道您必須做什么并不容易?,F(xiàn)在,您需要找到一個平臺,以簡化這些操作并提供硬件優(yōu)化的庫。
如何使它易于使用?
您需要的是一個流程,您可以在特定平臺(例如TensorFlow)上使用經(jīng)過培訓(xùn)的網(wǎng)絡(luò),并將其直接編譯到嵌入式解決方案中,而無需輸入一些基本要求。當(dāng)然,您還希望該選項能夠進一步手動優(yōu)化,也許在不同平面中設(shè)置不同的量化級別。也許嘗試權(quán)重閾值與片上存儲器大小的比較。并且您想要針對硬件進行優(yōu)化的庫以及針對庫進行優(yōu)化的硬件。
經(jīng)過驗證的AI平臺(如CEVA的CDNN)旨在提供這種類型的流程。CDNN提供了用于量化和運行時任務(wù)生成的離線處理器工具集,以及為CEVA DSP和客戶用戶的硬件加速器量身定制的運行時庫。CEVA的解決方案支持所有流行的AI模型格式,包括TensorFlow Lite,ONNX,Caffe等。