【技术实现步骤摘要】
本专利技术涉及模型推理,尤其涉及一种低资源算力的嵌入式设备部署模型的推理方法。
技术介绍
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全局的node
<...【技术特征摘要】
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...
【专利技术属性】
技术研发人员:张何猛,雷军军,龙章,罗治,毕晓猛,胡泽超,欧阳健,李茂平,刘超,
申请(专利权)人:中大智能科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。