一种低资源算力的嵌入式设备部署模型的推理方法技术

技术编号:41683132 阅读:59 留言:0更新日期:2024-06-14 15:35
本发明专利技术公开了一种低资源算力的嵌入式设备部署模型的推理方法,包括:将输入的深度学习运行模型转换为中间模型ONNX;python前端的模型编译:将所述ONNX模型转换为TinyNN模型并序列化,包括:解析所述ONNX模型,推断模型的维度,将计算图优化,进行内存调度分配,对模型数据进行序列化打包存储和C后端代码的自动生成;最后进行模型的C后端推理。本发明专利技术解决了现有推理框架的兼容性差、设计复杂且灵活性低、扩展成本高,不适用于低资源算力的嵌入式设备的问题。

【技术实现步骤摘要】

本专利技术涉及模型推理,尤其涉及一种低资源算力的嵌入式设备部署模型的推理方法


技术介绍

1、当前推理框架大部分采用c++开发,针对arm a系列架构的处理器做出了比较深层的汇编级优化,有着十分丰富和完善的算子和功能支持,在移动端有着十分良好的表现。但当面对的平台为更低资源算力的嵌入式设备时,几个比较大的问题就会暴露出来:(1)并非所有嵌入式平台的编译器都能同步支持框架开发所采用的c++标准,部分框架由于采用的c++标准太新而导致框架在目标平台上无法完成正常编译;(2)过于完备的系统功能导致框架设计复杂,灵活性降低,大部分的框架都有着复杂的自定义模型数据组织结构以及在其数据结构基础之上进行的功能开发,所以开发者在项目移植部署过程中往往因为一些简单问题而不得不面临框架底层复杂数据结构的限制无法灵活快速的实现和解决实际问题,学习和开发成本偏高;(3)框架体积偏大,大部分的推理框架应用的目标平台都是移动端设备,如手机平板等,即使部分框架做了框架可裁剪设计,但其最终编译出的可执行文件的体积仍然有兆级别的大小,且空间换时间的内存分配管理策略本身就是一种使用系统资源换本文档来自技高网...

【技术保护点】

1.一种低资源算力的嵌入式设备部署模型的推理方法,其特征在于,包括:

2.根据权利要求1所述的低资源算力的嵌入式设备部署模型的推理方法,其特征在于,所述步骤S21包括:从ONNX的graph中收集input,output,value_info,以及TensorProto;将ONNX中的TensorProto类型转为自定义的Tensor类型,把Tensor类型存储至graph全局的tensormap字典中;遍历ONNX中Graph中的Node,将ONNX中的NodeProto转换成自定义的Node类,转换完成之后会把每个Node存储在Graph全局的nodemap中。

<...

【技术特征摘要】

1.一种低资源算力的嵌入式设备部署模型的推理方法,其特征在于,包括:

2.根据权利要求1所述的低资源算力的嵌入式设备部署模型的推理方法,其特征在于,所述步骤s21包括:从onnx的graph中收集input,output,value_info,以及tensorproto;将onnx中的tensorproto类型转为自定义的tensor类型,把tensor类型存储至graph全局的tensormap字典中;遍历onnx中graph中的node,将onnx中的nodeproto转换成自定义的node类,转换完成之后会把每个node存储在graph全局的nodemap中。

3.根据权利要求1所述的低资源算力的嵌入式设备部署模型的推理方法,其特征在于,所述步骤s22包括:首先设置更新模型的输入维度信息,然后依次遍历nodemap中的node,每一个node都有独立的shape_infer,执行shape_infer更新输出tensor的输出维度信息,以及处理tensor的dtype信息。

4.根据权利要求1所述的低资源算力的嵌入式设备部署模型的推理方法,其特征在于,步骤s23中,包括算子融合、算子消除和算子交换;所述算子融合包括:将计算图中相邻的多个算子合并到一个算子中;所述算子消除包括:将计算图中不参与计算或者重复计算的算子进行删除;所述算子交换包括:将计算图中相邻的两个算子进行顺序交换。

5.根据权利要求1所述的低资源算力的嵌入式设备部署模型的推理方法,其特征在于,所述步骤s25包括:遍历graph中的每一个node,然后将node中每一个输入tensor和输出tensor的相关信息进行提取,再将node自身的attributes属性数据以及initializer数据进行提取,再汇总每一个node的存储大小和整个graph的存储大小,进行序列化存储到文件中。

6.根据权利要求5所述的低资源算力的嵌入式设备部署模型的推理方法,其特征在于,所述步骤s25得到的计算图序列化的存储结构包括g_head和多个node,所述g_head为整个graph的头信息,包括模型标识信息magic、整个计算图节点数量node_num、模型输入tensor数量input_num、模型输出tensor数量output_num、graph运行时最大内存需求max_buf和保持head32字节对齐的空值填充fill;g_body为整个graph的实体数据,包括node_head和node_body,其中,所述node_head...

【专利技术属性】
技术研发人员:张何猛雷军军龙章罗治毕晓猛胡泽超欧阳健李茂平刘超
申请(专利权)人:中大智能科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1