神经网络模型的编译方法、编译器及存储介质与流程

文档序号:36891260发布日期:2024-02-02 21:24阅读:13来源:国知局
神经网络模型的编译方法、编译器及存储介质与流程

本发明涉及神经网络领域,具体而言,涉及一种神经网络模型的编译方法、编译器及计算机可读存储介质。


背景技术:

1、目前人工智能(artificial intelligence,简称ai)领域技术突飞猛进,适用于识别、检测和跟踪等复杂任务的深度神经网络应用于各行各业之中,为了在边缘端部署ai算法,实现端云协同,嵌入式神经网络处理器技术快速发展。由于神经网络在众多应用上的优异表现,其终端应用成了学术和市场都很热门的一个话题。而终端所需要的低功耗引发了神经网络专用芯片的发展。

2、神经网络模型在加速器中进行应用时,需要经过编译器对神经网络模型进行编译,然而当前的编译过程首选需要将神经网络模型转换为特定的神经网络交换格式,且编译后必须通过特定的导入器生成加速器可以识别的编译结果,过程较为繁杂,导致神经网络模型的编译效率较低。


技术实现思路

1、本发明的目的在于提供一种神经网络模型的编译方法、编译器及计算机可读存储介质,能够提升神经网络模型的编译效率。

2、第一方面,本申请实施例提供了一种神经网络模型的编译方法,包括:获取目标神经网络模型和目标加速器;以操作元素为节点、操作元素之间的依赖关系为边,生成所述目标神经网络对应的第一有向图,所述操作元素包括操作类型和所述操作类型的附带参数;根据所述目标加速器支持的软硬件信息对所述第一有向图进行修订,生成第二有向图;根据所述第二有向图生成所述目标神经网络模型的编译结果。

3、本申请实施例所提供的神经网络模型的编译方法中,在目标神经网络模型的编译过程中,生成目标神经网络对应的第一有向图后,根据目标加速器支持的软硬件信息对产生的第一有向图进行修订,根据第一有向图修订得到的第二有向图生成目标神经网络模型的编译结果,由于第二有向图为根据目标加速器支持的软硬件信息修订得到,对第二有向图进行编译得到的编译结果可以直接应用于目标加速器,无需再对编译结果进行特殊处理即可直接应用于目标加速器,从而提升神经网络模型的编译效率。

4、在可选的实施例中,所述根据所述目标加速器支持的软硬件信息对所述第一有向图进行修订前,所述神经网络模型的编译方法还包括:对所述第一有向图进行优化;所述根据所述目标加速器支持的软硬件信息对所述第一有向图进行修订,包括:根据所述目标加速器支持的软硬件信息对优化后的所述第一有向图进行修订;所述对所述第一有向图进行优化,包括:自所述第一有向图中获取完全相同的第一子图和第二子图,所述第一子图和所述第二子图均包括多个所述节点和所述边;将所述第一子图和所述第二子图转换为子图节点。将第一有向图中完全相同、且包括多个节点和边的第一子图和第二子图转换为子图节点,从而将多个节点和边简化为单个子图节点,减少第一有向图中的节点数量,简化第一有向图的结构,根据目标加速器支持的软硬件信息对优化后的第一有向图进行修订时,优化后的、结构更简单的第一有向图进行修订时的效率也更高。

5、在可选的实施例中,所述对所述第一有向图进行优化,还包括:获取所述目标加速器的扩展api(应用程序编程接口),所述扩展api中包括多个目标函数;关联功能相同的所述目标函数与所述节点。预先将目标加速器的扩展api中的目标函数根据功能与第一有向图中的节点进行关联,可以提升后续根据目标加速器支持的软硬件信息对优化后的第一有向图进行修订时的修订效率。

6、在可选的实施例中,所述关联功能相同的所述目标函数与所述节点,包括:对可以实现多个功能的单个所述节点进行拆分;或者,对可以实现单个功能的多个所述节点进行合并;或者,对可以实现多个功能的单个所述节点进行拆分并对可以实现单个功能的多个所述节点进行合并,得到新的节点;。根据功能对单个节点进行拆分以及对多个节点进行合并,可以使每个节点关联一个单独的目标函数。

7、在可选的实施例中,所述对所述第一有向图进行优化,还包括:对各个所述节点中的所述附带参数进行精度转换。对各个节点中的附带参数进行精度转换,可以适应不同应用场景下对数据精度的不同需求,提升适用性。

8、在可选的实施例中,所述根据所述目标加速器支持的软硬件信息对所述第一有向图进行修订,包括:获取所述目标加速器的支持的存储格式;将所述附带参数的数据格式修改为所述存储格式。

9、在可选的实施例中,所述根据所述目标加速器支持的软硬件信息对所述第一有向图进行修订,包括:获取所述目标加速器支持的操作类型合并方案;根据所述操作类型合并方案对所述节点进行合并。

10、在可选的实施例中,所述根据所述第二有向图生成所述目标神经网络模型的编译结果,包括:根据所述第二有向图中的各个所述节点的顺序生成c语言代码作为所述编译结果;或者,根据所述第二有向图中的各个所述节点的顺序生成二进制模型文件作为所述编译结果;或者,根据所述第二有向图中的各个所述节点的顺序生成所述c语言代码和所述二进制模型文件作为所述编译结果。

11、第二方面,本申请实施例提供了一种神经网络模型的编译器,包括:输入模块,所述输入模块用于获取目标神经网络模型和目标加速器;转换模块,所述转换模块用于以操作元素为节点、操作元素之间的依赖关系为边,生成所述目标神经网络对应的第一有向图,所述操作元素包括操作类型和所述操作类型的附带参数;修订模块,所述修订模块用于根据所述目标加速器支持的软硬件信息对所述第一有向图进行修订,生成第二有向图;编译模块,所述编译模块用于根据所述第二有向图生成所述目标神经网络模型的编译结果。

12、第三方面,本申请实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行实现前述的神经网络模型的编译方法。



技术特征:

1.一种神经网络模型的编译方法,其特征在于,包括:

2.根据权利要求1所述的神经网络模型的编译方法,其特征在于,所述根据所述目标加速器支持的软硬件信息对所述第一有向图进行修订前,所述神经网络模型的编译方法还包括:

3.根据权利要求2所述的神经网络模型的编译方法,其特征在于,所述对所述第一有向图进行优化,还包括:

4.根据权利要求3所述的神经网络模型的编译方法,其特征在于,所述关联功能相同的所述目标函数与所述节点,包括:

5.根据权利要求2所述的神经网络模型的编译方法,其特征在于,所述对所述第一有向图进行优化,还包括:

6.根据权利要求1所述的神经网络模型的编译方法,其特征在于,所述根据所述目标加速器支持的软硬件信息对所述第一有向图进行修订,包括:

7.根据权利要求1所述的神经网络模型的编译方法,其特征在于,所述根据所述目标加速器支持的软硬件信息对所述第一有向图进行修订,包括:

8.根据权利要求1所述的神经网络模型的编译方法,其特征在于,所述根据所述第二有向图生成所述目标神经网络模型的编译结果,包括:

9.一种神经网络模型的编译器,其特征在于,包括:

10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行实现权利要求1至8中任意一项所述的神经网络模型的编译方法。


技术总结
本发明涉及神经网络领域,具体而言,公开了一种神经网络模型的编译方法、编译器及计算机可读存储介质。其中,神经网络模型的编译方法,包括:获取目标神经网络模型和目标加速器;以操作元素为节点、操作元素之间的依赖关系为边,生成所述目标神经网络对应的第一有向图,所述操作元素包括操作类型和所述操作类型的附带参数;根据所述目标加速器支持的软硬件信息对所述第一有向图进行修订,生成第二有向图;根据所述第二有向图生成所述目标神经网络模型的编译结果。本申请实施例所提供的神经网络模型的编译方法、编译器及计算机可读存储介质,具有能够提升神经网络模型的编译效率的优点。

技术研发人员:张扬
受保护的技术使用者:芯原微电子(北京)有限公司
技术研发日:
技术公布日:2024/2/1
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1