我們?cè)谶M(jìn)行CNN模型推理的時(shí)候,需要預(yù)先從DDR或者ROM中加載AI模型。大家平時(shí)一般用的是create from file的形式,為了保護(hù)自己的模型IP,一般會(huì)在模型上面做一些混淆。下面我們介紹另外一種方式,create from buffer。在編譯算法sdk的階段,可以將AI模型作為機(jī)器碼編譯進(jìn)so中,算法加載的時(shí)候從棧內(nèi)存進(jìn)行加載就可以。這樣模型的參數(shù)和定義就不會(huì)暴露在用戶層面,目前MNN、NCNN和RKNN等都提供了create from buffer的類似接口,非常方便用戶們進(jìn)行使用。
使用的方式也非常的簡單,分如下三步進(jìn)行操作:(1)生成十六進(jìn)制模型文件 (2)制作頭文件和cpp文件 (3)采用create from buffer進(jìn)行模型加載
一、生成十六進(jìn)制模型文件
可以采用linux提供的xdd工具進(jìn)行十六進(jìn)制模型文件的生成。假設(shè)你有編譯好的mnn模型或者rknn模型,只要執(zhí)行如下操作就可以生成十六進(jìn)制的模型文件:
xxd -i face\_det.mnn face\_det.cpp
二、制作頭文件和cpp文件
cpp文件由xdd工具生成,文件形式如下(文件太大,只截取頭尾兩部分):
三、采用create from buffer接口實(shí)現(xiàn)模型加載
我們采用MNN的接口為例,核心代碼塊如下:
這樣成功進(jìn)行編譯后,就可以將AI模型固化到算法sdk的so庫當(dāng)中了。
責(zé)任編輯人:CC
-
AI
+關(guān)注
關(guān)注
87文章
30728瀏覽量
268886 -
buffer
+關(guān)注
關(guān)注
2文章
120瀏覽量
30048
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論