当前位置: 首页 > 专利查询>清华大学专利>正文

神经网络模型部署方法、装置、电子设备及存储介质制造方法及图纸

技术编号:35031823 阅读:22 留言:0更新日期:2022-09-24 23:06
本公开涉及一种神经网络模型部署方法、装置、电子设备及存储介质,所述方法包括获取待部署到硬件设备上的原始神经网络模型所对应的原始计算图;将原始计算图转换为基于目标算子集构成的中间计算图,目标算子集为硬件设备支持的算子集;根据硬件设备对应的硬件约束条件,将中间计算图转换为适配硬件设备的目标计算图,硬件约束条件是基于硬件设备对应的数据精度、硬件资源以及目标算子集中的至少一种所确定的;基于目标计算图,确定硬件可执行文件,硬件可执行文件用于部署到硬件设备上。本公开实施例可实现将各种原始神经网络模型高效统一地转换成能部署到硬件设备上的硬件可执行文件。文件。文件。

【技术实现步骤摘要】
神经网络模型部署方法、装置、电子设备及存储介质


[0001]本公开涉及计算机
,尤其涉及一种神经网络模型部署方法、装置、电子设备及存储介质。

技术介绍

[0002]随着人工智能技术和非冯诺依曼硬件架构的发展,学术领域及产业领域中出现了诸多新型的硬件设备,例如多核芯片、众核芯片、深度学习加速器、神经形态芯片、类脑计算芯片等。
[0003]而基于目前的深度学习、类脑计算等技术下所创建的神经网络模型的算法框架,与上述新型硬件设备所支持的算法框架可能不同,不同算法框架下的神经网络模型可能无法直接在上述硬件设备中部署执行,这影响上述硬件设备的可用性和易用性。

技术实现思路

[0004]有鉴于此,本公开提出了一种神经网络模型部署方法、装置、电子设备及存储介质,以高效统一地将不同算法框架下的原始神经网络模型,转换成能部署到上述硬件设备上的硬件可执行文件。
[0005]根据本公开的一方面,提供了一种神经网络模型部署方法,包括:获取待部署到硬件设备上的原始神经网络模型所对应的原始计算图;将所述原始计算图转换为基于目标算子集构成的中间计算图,所述目标算子集为所述硬件设备支持的算子集;根据所述硬件设备对应的硬件约束条件,将所述中间计算图转换为适配所述硬件设备的目标计算图,所述硬件约束条件是基于所述硬件设备对应的数据精度、硬件资源以及所述目标算子集中的至少一种所确定的;基于所述目标计算图,确定硬件可执行文件,所述硬件可执行文件用于部署到所述硬件设备上。
[0006]在一种可能的实现方式中,所述将所述原始计算图转换为基于目标算子集构成的中间计算图,包括:利用所述目标算子集中的目标算子,替换所述原始计算图中的原始计算节点,得到与所述原始计算节点等价的中间计算节点;根据所述硬件设备对应的数据存储规则,生成与所述中间计算节点关联的中间存储节点,所述数据存储规则用于指示所述硬件设备支持的数据存储方式;根据所述原始计算图中各个节点之间的数据依赖关系,建立所述中间计算节点与所述中间存储节点之间的有向边,得到所述中间计算图,其中,所述数据依赖关系表征所述原始计算图中各个节点之间的关联关系。
[0007]在一种可能的实现方式中,所述将所述原始计算图转换为基于目标算子集构成的中间计算图,包括:利用所述目标算子集中的目标算子,替换所述原始计算图中的原始计算节点,得到与所述原始计算节点等价的中间计算节点;根据所述硬件设备对应的数据存储规则,生成与所述中间计算节点关联的中间存储节点,所述数据存储规则用于指示所述硬件设备支持的数据存储方式;根据所述原始计算图中各个节点之间的数据依赖关系,建立所述中间计算节点与所述中间存储节点之间的有向边,得到所述中间计算图,其中,所述数
据依赖关系表征所述原始计算图中各个节点之间的关联关系。
[0008]在一种可能的实现方式中,所述利用所述目标算子集中的目标算子,替换所述原始计算图中的原始计算节点,得到与所述原始计算节点等价的中间计算节点,包括:确定所述原始计算图中能被所述目标算子集中的目标算子等价替换的第一原始计算节点,以及确定所述原始计算图中不能被所述目标算子集中的目标算子等价替换的第二原始计算节点;将能等价替换所述第一原始计算节点的目标算子,作为与所述第一原始计算节点等价的计算节点;将不能被等价替换的所述第二原始计算节点转换成占位节点,并记录所述占位节点对应的第二原始计算节点的算子信息;其中,所述中间计算节点包括:与所述第一原始计算节点等价的计算节点以及所述第二原始计算节点转换成的占位节点。
[0009]在一种可能的实现方式中,所述原始计算图中包括多个第一原始计算节点,所述将能等价替换所述第一原始计算节点的目标算子,作为与所述第一原始计算节点等价的计算节点,包括:针对所述原始计算图中的任一个第一原始计算节点,在所述目标算子集中存在至少两个目标算子能等价替换所述第一原始计算节点的情况下,根据所述至少两个目标算子各自对应的计算效率和/或存储效率,确定与所述第一原始计算节点等价的计算节点。
[0010]在一种可能的实现方式中,在建立所述中间计算节点与所述中间存储节点之间的有向边之后,所述将所述原始计算图转换为基于目标算子集构成的中间计算图,还包括:在所述原始计算图中包括用于执行数据重排操作的第三原始计算节点的情况下,根据所述第三原始计算节点在所述原始计算图中的节点位置,将所述第三原始计算节点转换成数据重排信息,并将所述数据重排信息记录于与所述节点位置对应的有向边上;其中,所述数据重排操作包括用于改变数据排布且不产生计算的操作,所述数据重排信息用于指示所述数据重排操作。
[0011]在一种可能的实现方式中,在得到所述数据重排信息之后,所述将所述原始计算图转换为基于目标算子集构成的中间计算图,还包括:根据所述硬件设备对应的数据存储规则,消除冗余的数据重排信息,和/或,将同一有向边上的至少两个数据重排信息融合为单个数据重排信息。
[0012]在一种可能的实现方式中,所述中间计算节点包括:与第一原始计算节点等价的计算节点,所述第一原始计算节点是所述原始计算图中能被所述目标算子集中目标算子等价替换的节点;其中,在建立所述中间计算节点与所述中间存储节点之间的有向边之后,所述将所述原始计算图转换为基于目标算子集构成的中间计算图,还包括:根据所述硬件设备对应的算子计算规则,将满足所述算子计算规则且存在数据依赖关系的至少两个计算节点融合成单个计算节点,其中,所述硬件计算规则用于指示所述硬件设备能单次执行计算的至少两个目标算子。
[0013]在一种可能的实现方式中,所述硬件约束条件包括:所述硬件设备的数据精度需求、硬件资源限制以及所述目标算子集的完备性需求中的至少一种,其中,所述数据精度需求表征所述硬件设备对所述目标计算图的数据精度的需求,所述硬件资源限制表征所述硬件设备对所述目标计算图所需硬件资源的限制,所述完备性需求表征所述目标算子集中目标算子不能等价替换所述中间计算图中全部的原始计算节点;其中,所述根据所述硬件设备对应的硬件约束条件,将所述中间计算图转换为适配所述硬件设备的目标计算图,包括:在所述硬件约束条件包括所述数据精度需求的情况下,对所述中间计算图的精度进行转
换,得到满足所述数据精度需求的目标计算图;和/或,在所述硬件约束条件包括所述硬件资源限制的情况下,对所述中间计算图的结构进行优化,得到满足指定执行效率需求的目标计算图;和/或,在所述硬件约束条件包括所述目标算子集的完备性需求的情况下,根据所述目标算子集,生成与所述中间计算图近似等价的目标计算图。
[0014]在一种可能的实现方式中,所述中间计算图中包括由无法被所述目标算子集中目标算子等价替换的第二原始计算节点转换成的占位节点,所述占位节点对应所述第二原始计算节点的算子信息;其中,所述在所述硬件约束条件包括所述目标算子集的完备性需求的情况下,根据所述目标算子集,生成与所述中间计算图近似等价的目标计算图,包括:对所述中间计算图对应的中间神经网络模型进行知识蒸馏,得到与所述中间神经网络模型近似等价的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种神经网络模型部署方法,其特征在于,包括:获取待部署到硬件设备上的原始神经网络模型所对应的原始计算图;将所述原始计算图转换为基于目标算子集构成的中间计算图,所述目标算子集为所述硬件设备支持的算子集;根据所述硬件设备对应的硬件约束条件,将所述中间计算图转换为适配所述硬件设备的目标计算图,所述硬件约束条件是基于所述硬件设备对应的数据精度、硬件资源以及所述目标算子集中的至少一种所确定的;基于所述目标计算图,确定硬件可执行文件,所述硬件可执行文件用于部署到所述硬件设备上。2.根据权利要求1所述的方法,其特征在于,所述将所述原始计算图转换为基于目标算子集构成的中间计算图,包括:利用所述目标算子集中的目标算子,替换所述原始计算图中的原始计算节点,得到与所述原始计算节点等价的中间计算节点;根据所述硬件设备对应的数据存储规则,生成与所述中间计算节点关联的中间存储节点,所述数据存储规则用于指示所述硬件设备支持的数据存储方式;根据所述原始计算图中各个节点之间的数据依赖关系,建立所述中间计算节点与所述中间存储节点之间的有向边,得到所述中间计算图,其中,所述数据依赖关系表征所述原始计算图中各个节点之间的关联关系。3.根据权利要求2所述的方法,其特征在于,所述利用所述目标算子集中的目标算子,替换所述原始计算图中的原始计算节点,得到与所述原始计算节点等价的中间计算节点,包括:确定所述原始计算图中能被所述目标算子集中的目标算子等价替换的第一原始计算节点,以及确定所述原始计算图中不能被所述目标算子集中的目标算子等价替换的第二原始计算节点;将能等价替换所述第一原始计算节点的目标算子,作为与所述第一原始计算节点等价的计算节点;将不能被等价替换的所述第二原始计算节点转换成占位节点,并记录所述占位节点对应的第二原始计算节点的算子信息;其中,所述中间计算节点包括:与所述第一原始计算节点等价的计算节点以及所述第二原始计算节点转换成的占位节点。4.根据权利要求3所述的方法,其特征在于,所述原始计算图中包括多个第一原始计算节点,所述将能等价替换所述第一原始计算节点的目标算子,作为与所述第一原始计算节点等价的计算节点,包括:针对所述原始计算图中的任一个第一原始计算节点,在所述目标算子集中存在至少两个目标算子能等价替换所述第一原始计算节点的情况下,根据所述至少两个目标算子各自对应的计算效率和/或存储效率,确定与所述第一原始计算节点等价的计算节点。5.根据权利要求2或3所述的方法,其特征在于,在建立所述中间计算节点与所述中间存储节点之间的有向边之后,所述将所述原始计算图转换为基于目标算子集构成的中间计算图,还包括:
在所述原始计算图中包括用于执行数据重排操作的第三原始计算节点的情况下,根据所述第三原始计算节点在所述原始计算图中的节点位置,将所述第三原始计算节点转换成数据重排信息,并将所述数据重排信息记录于与所述节点位置对应的有向边上;其中,所述数据重排操作包括用于改变数据排布且不产生计算的操作,所述数据重排信息用于指示所述数据重排操作。6.根据权利要求5所述的方法,其特征在于,在得到所述数据重排信息之后,所述将所述原始计算图转换为基于目标算子集构成的中间计算图,还包括:根据所述硬件设备对应的数据存储规则,消除冗余的数据重排信息,和/或,将同一有向边上的至少两个数据重排信息融合为单个数据重排信息。7.根据权利要求2或3所述的方法,其特征在于,所述中间计算节点包括:与第一原始计算节点等价的计算节点,所述第一原始计算节点是所述原始计算图中能被所述目标算子集中目标算子等价替换的节点;其中,在建立所述中间计算节点与所述中间存储节点之间的有向边之后,所述将所述原始计算图转换为基于目标算子集构成的中间计算图,还包括:根据所述硬件设备对应的算子计算规则,将满足所述算子计算规则且存在数据依赖关系的至少两个计算节点融合成单个计算节点,其中,所述硬件计算规则用于指示所述硬件设备能单次执行计算的至少两个目标算子。8.根据权利要求1所述的方法,其特征在于,所述硬件约束条件包括:所述硬件设备的数据精度需求、硬件资源限制...

【专利技术属性】
技术研发人员:施路平曲环宇张伟豪
申请(专利权)人:清华大学
类型:发明
国别省市:

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

1