【技术实现步骤摘要】
一种兼容多框架的深度学习模型导出至ONNX的方法和装置
[0001]本专利技术涉及计算机
,具体涉及一种兼容多框架的深度学习模型导出至ONNX的方法和装置。
技术介绍
[0002]目前,深度学习模型部署大都采用转换为一个中间表示ONNX(Open Neural Network Exchange,开放神经网络交换)来实现,然后通过推理引擎ONNX Runtime进行推理,也有通过TensorRT进行部署的。然而,ONNX已经占据深度学习部署的大部分市场,各个深度学习框架厂商纷纷将其所采用的的框架转换到ONNX。
[0003]目前,用于将各个框架依次转换到ONNX的工具有很多,例如,ensorFlow2ONNX、Keras2ONNX、Paddle2ONNX。上述这些工具均具有对应于其特定的一套转换规则。例如,TensorFlow2ONNX是将TensorFlow算子一一对应到ONNX的算子,然后再将整个TensorFlow模型计算图转换为对应的ONNX的图,然后导出ONNX模型。
[0004]由于各个框架之 ...
【技术保护点】
【技术特征摘要】
1.一种兼容多框架的深度学习模型导出至ONNX的方法,其特征在于,所述方法包括:获取目标模型的每个层的层信息,以及广度优先搜索规则,所述目标模型为深度学习统一编程框架模型,所述目标模型能够兼容多个采用不同转换规则的框架;根据所述目标模型的每个层的层信息,以及广度优先遍历规则,对所述目标深度学习模型的每个层依序进行层遍历,得到对应的模型拓扑结构;根据所述模型拓扑结构,对所述目标模型的每个层依序进行映射,以将模型节点映射至开放神经网络交换ONNX;根据将模型节点映射到ONNX的映射结果和多个关键函数,通过创建ONNX计算图和创建ONNX模型,生成包括所述ONNX模型的模型文件。2.根据权利要求1所述的方法,其特征在于,所述获取目标模型的每个层的层信息,包括:获取模块节点的各项属性信息,模块节点的各项属性信息包括神经网络层、当前层神经网络层输入节点、当前层神经网络层输出节点、当前层神经网络层输入值、当前层神经网络层输出值、以及当前网络层节点名称;通过调用所述模块节点执行一次前向传播,获取目标模型的每个层的层信息,所述目标模型的每个层的层信息包括目标神经网络层、任意一层作为当前层所对应当前层神经网络层输入节点、任意一层作为当前层所对应的当前层神经网络层输出节点、任意一层作为当前层所对应的当前层神经网络层输入值、任意一层作为当前层所对应的当前层神经网络层输出值和任意一层作为当前层所对应的当前网络层节点名称。3.根据权利要求1所述的方法,其特征在于,所述根据所述模型拓扑结构,对所述目标模型的每个层依序进行映射,以将模型节点映射至开放神经网络交换ONNX,包括:获取所述模型拓扑结构;根据所述模型拓扑结构确定对应的拓扑排序方式;根据拓扑排序方式,依序对每个层进行映射处理,得到对应的ONNX算子组合,以将模型节点映射至ONNX。4.根据权利要求1所述的方法,其特征在于,所述多个关键函数至少包括用于创建ONNX计算图的第一函数和用于创建ONNX模型的第二函数,所述根据将模型节点映射到ONNX的映射结果和多个关键函数,通过创建ONNX计算图和创建ONNX模型,生成包括所述ONNX模型的模型文件,包括:获取将模型节点映射到O...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。