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