本文將介紹基于米爾電子MYD-LR3576開發(fā)平臺(tái)部署超輕量級(jí)推理框架方案:TinyMaix摘自優(yōu)秀創(chuàng)作者-短笛君![]()
關(guān)鍵特性 核心代碼少于 400行 (tm_layers.c+tm_model.c+arch_cpu.h), 代碼段(.text)少于3KB
低內(nèi)存消耗
支持 INT8/FP32/FP16 模型,實(shí)驗(yàn)性地支持 FP8 模型,支持 keras h5 或 tflite 模型轉(zhuǎn)換
支持多種芯片架構(gòu)的專用指令優(yōu)化: ARM SIMD/NEON/MVEI,RV32P, RV64V
友好的用戶接口,只需要 load/run 模型
支持全靜態(tài)的內(nèi)存配置(無需 malloc ) 同樣地也可以部署到MPU平臺(tái)上 RK3576平臺(tái)相較于RK3588其主要縮減了四個(gè)A76大核改成了A72
GPU也由原來的G610 MC4減為了G52MC3
NPU功能保持變不變,均為6Tops
視頻編解碼也略有縮減
其余各接口也砍掉了一部分
主打極致性價(jià)比方案 說回正題,要運(yùn)行TinaMaix 只需要簡單幾個(gè)步驟即可運(yùn)行。
首先確保系統(tǒng)安裝了cmake gcc make工具: 克隆存儲(chǔ)庫[GitHub - sipeed/TinyMaix: TinyMaix is a tiny inference library for microcontrollers (TinyML).] 運(yùn)行mnist手寫數(shù)字識(shí)別任務(wù) - cd examples/mnist
- mkdir build
- cd build
- cmake ..
- make
- ./mnist
復(fù)制代碼
![]() ![]()
整個(gè)流程跑完僅僅需要0.14ms 可以看到soc平臺(tái)強(qiáng)大的算力 mbnet
是適用于移動(dòng)手機(jī)設(shè)備的簡單圖像分類模型,不過對單片機(jī)來說也稍微困難了些。
例程里的模型是 mobilenet v1 0.25,輸入 128x128x3 的RGB圖像,輸出1000 分類的預(yù)測。
它需要至少 128KB SRAM 和 512KB Flash。 - mkdir build
- cd build
- cmake ..
- make
- ./mbnet
復(fù)制代碼
![]() ![]()
運(yùn)行1000分類,耗費(fèi)資源如下:
param “481,9 KB,0PS13,58 M0PS, buffer 96 0 KB ![]()
vww測試,主要是將圖片信息轉(zhuǎn)化為數(shù)組格式提供給網(wǎng)絡(luò)輸入。 ![]()
手寫數(shù)字識(shí)別的例程也是十分簡單,只需要: ![]() ![]() ![]()
庫文件已經(jīng)是高度封裝且兼容,所以很輕松地就可以在linux以及其它平臺(tái)上移植,在RK3576這種高性能soc的加持下,可以發(fā)揮出更大的優(yōu)勢。
|