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