从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进行模型加载
一、生成十六进制模型文件
可以采用linux提供的xdd工具进行十六进制模型文件的生成。假设你有编译好的mnn模型或者rknn模型,只要执行如下操作就可以生成十六进制的模型文件:
xxd -i face_det.mnn face_det.cpp
二、制作头文件和cpp文件

cpp文件由xdd工具生成,文件形式如下(文件太大,只截取头尾两部分):


三、采用create from buffer接口实现模型加载
我们采用MNN的接口为例,核心代码块如下:

这样成功进行编译后,就可以将AI模型固化到算法sdk的so库当中了。
四、最后
欢迎大家留言、关注专栏,谢谢大家!
-
上一篇
魔塔在线中文AI模型开源社区
-
下一篇
上图为用 MegaPortal 加载不同的 Stable Diffusion 模型,然后输入关于钢铁侠的提示语生成的图片。
The figure above shows images generated by inputting prompts about Iron Man using different Stable Diffusion models loaded with MegaPortal.
友情广告 / Advertisement
财经-研发-大前端-支付正在火热招聘中 ???
由于抖音电商和本地生活服务等业务的快速发展,2022年支付业务在承受压力的情况下,支付渗透率也相应地快速攀升。在 2023 年,支付业务将面临更大的挑战和机遇,我们希望您能加入我们,与我们一起打造备受用户喜爱、令人自豪的国民级支付产品!欲了解详情,可访问下方链接联系:
MegaPortal-为苹果设备设计的易用AI模型加载工具