怎样从Buffer加载AI模型

我们在进行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进行模型加载

1. 生成十六进制模型文件

可以采用linux提供的xdd工具进行十六进制模型文件的生成。假设你有编译好的mnn模型或者rknn模型,只要执行如下操作就可以生成十六进制的模型文件:

xxd -i test.mnn test.cpp

2. 制作头文件和cpp文件

在这里插入图片描述
cpp文件由xdd工具生成,文件形式如下(文件太大,只截取头尾两部分):
在这里插入图片描述

3. 采用create from buffer接口实现模型加载

我们采用MNN的接口为例,核心代码块如下:
在这里插入图片描述
这样成功进行编译后,就可以将AI模型固化到算法sdk的so库当中了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值