当我们执行CNN模型推断时,我们需要预先从DDR或ROM加载AI模型。
人们通常使用createfromfile的形式。
为了保护其模型IP,他们通常会对模型产生一些困惑。
下面我们介绍另一种方法createfrombuffer。
在编译算法SDK的阶段,可以将AI模型编译为机器码,并且可以在加载算法时从堆栈存储器中加载算法。
这样,模型的参数和定义将不会暴露给用户级别。
目前,MNN,NCNN和RKNN都提供了一个类似的createfrombuffer接口,非常方便用户使用。
使用方法也非常简单。
该操作分为以下三个步骤:(1)生成十六进制模型文件(2)生成头文件和cpp文件(3)使用createfrombuffer加载模型1。
生成十六进制模型该文件可以使用linux提供的xdd工具来完成。
生成十六进制模型文件。
假设您具有已编译的mnn模型或rknn模型,则只要执行以下操作,就可以生成一个十六进制模型文件:xxd-iface _det.mnnface _det.cpp 2.生成头文件和cpp文件cpp文件是由xdd创建该工具已生成,文件格式如下(文件太大,仅前两个部分被截取):3.使用createfrombuffer接口实现模型加载。
我们以MNN接口为例。
核心代码块如下:成功编译后,可以将AI固定到模型SDK的so库中。