缓冲步骤以加载AI模型
当我们执行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库中。
为了保护其模型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库中。
- 电话:0755-29796190
- 陈经理 17727576190 QQ:2330223425 Email:xiao@jepsun.com
- 陆经理 18038104190 QQ:2065372476 Email:tao@jepsun.com
- 李经理 13316946190 QQ:2057469664 Email:ys@jepsun.com
- 聂经理 18923485199 QQ:2215069954 Email:momo@jepsun.com
- 地址:深圳市宝安区翻身路富源大厦1栋7楼
-
