一种神经网络的编译方法及装置制造方法及图纸

技术编号:37314864 阅读:10 留言:0更新日期:2023-04-21 22:56
本申请适用于人工智能技术领域,提供了一种神经网络的编译方法及装置,方法包括:根据神经网络的第一模型文件,得到第一模型;根据算子的计算精度和/或芯片的电路结构,将第一模型中的多个算子进行融合与拆分,得到第二模型,每个算子用于表征神经网络中的一个独立计算单元;根据预设的算子合并模式,对第二模型中的算子进行匹配,得到第三模型;根据第三模型中的每个算子的量化操作,在第三模型中写入每个算子的量化参数,得到第四模型;对第四模型进行编译,得到神经网络的第二模型文件,第二模型文件用于在芯片中执行。从而,可实现多个算子的联合优化,提高神经网络模型在芯片上的响应速度,降低算子的计算时间,提高算子的执行效率。执行效率。执行效率。

【技术实现步骤摘要】
一种神经网络的编译方法及装置


[0001]本申请属于人工智能
,尤其涉及一种神经网络的编译方法及装置。

技术介绍

[0002]随着神经网络在人工智能领域的广泛应用,神经网络编译器可对神经网络的模型文件进行量化和编译,并将量化和编译后的神经网络的模型文件部署到芯片中,使得神经网络能够在芯片中正常运用。
[0003]目前,通常采用神经网络编译器中的TVM(tensor virtual machine)编译器对神经网络的模型文件进行量化和编译。如图1所示,该量化和编译过程包括:TVM编译器根据一个经过训练的神经网络的模型文件,得到TVM模型,该TVM模型包括多个算子。TVM编译器通过自带的量化工具,在TVM模型中的每个算子的前后位置均插入一个空节点。TVM编译器分析每个空节点应该执行的量化操作以及获取该空节点的量化参数,并将量化操作和量化参数写入对应的空节点,得到量化后的TVM模型。TVM编译器对量化后的TVM模型进行编译,得到可在芯片上执行的TVM模型文件。
[0004]然而,上述量化和编译的过程中,需要在TVM模型的每个算子的前后位置均插入空节点,针对于每个算子分别进行量化,导致多个算子的量化过程复杂,多个算子的计算精度较低,计算时间较长。

技术实现思路

[0005]本申请实施例提供了一种神经网络的编译方法及装置,可以解决多个算子的量化过程复杂,多个算子的计算精度较低,计算时间较长的问题。
[0006]第一方面,本申请实施例提供了一种神经网络的编译方法,该方法包括:
>[0007]根据神经网络的第一模型文件,得到第一模型;
[0008]根据算子的计算精度和/或芯片的电路结构,将第一模型中的多个算子进行融合与拆分,得到第二模型,每个算子用于表征神经网络中的一个独立计算单元;
[0009]根据预设的算子合并模式,对第二模型中的算子进行匹配,得到第三模型;
[0010]根据第三模型中的每个算子的量化操作,在第三模型中写入每个算子的量化参数,得到第四模型;
[0011]对第四模型进行编译,得到神经网络的第二模型文件,第二模型文件用于在芯片中执行。
[0012]在一种可能的实现方式中,在第一模型包括第一算子和第二算子,第一算子包括多种计算方式时,根据算子的计算精度和/或芯片的电路结构,将第一模型中的多个算子进行融合与拆分,包括:
[0013]根据算子的计算精度,将第一算子中的部分计算方式对应的信息移动到所述第二算子中。
[0014]在一种可能的实现方式中,在第一模型包括第三算子和第四算子时,根据算子的
计算精度和/或芯片的电路结构,将第一模型中的多个算子进行融合与拆分,包括:
[0015]根据算子的计算精度,更改第三算子和所述第四算子在第一模型中的计算顺序。
[0016]在一种可能的实现方式中,在第一模型包括第五算子,第五算子包括多种计算方式时,根据算子的计算精度和/或芯片的电路结构,将第一模型中的多个算子进行融合与拆分,包括:
[0017]根据算子的计算精度,将第五算子拆分成第六算子和第七算子,第六算子或第七算子包括第五算子中的部分计算方式对应的信息。
[0018]在一种可能的实现方式中,在第一模型包括第八算子时,根据算子的计算精度和/或芯片的电路结构,将第一模型中的多个算子进行融合与拆分,包括:
[0019]在芯片的电路结构不适配第八算子时,将第八算子替换为第九算子。
[0020]在一种可能的实现方式中,根据预设的算子合并模式,对第二模型中的算子进行匹配,包括:
[0021]根据算子合并模式包含的全部算子,确定第二模型中的合并算子;
[0022]将第二模型中的合并算子进行合并。
[0023]在一种可能的实现方式中,根据预设的算子合并模式,对第二模型中的算子进行匹配,包括:
[0024]确定第二模型中的目标算子,目标算子为卷积算子和/或全连接算子;
[0025]将第二模型中的与目标算子相关的算子合并模式所包含的全部算子进行合并。
[0026]本申请实施例通过对多个算子进行融合与拆分,以及匹配算子合并模式的技术手段,解决了多个算子的量化过程复杂,多个算子的计算精度较低,计算时间较长的技术问题,达到了对多个算子进行联合量化,简化了多个算子的量化过程,提高了多个算子的计算精度和计算效率的技术效果。
[0027]第二方面,本申请实施例提供了一种神经网络的编译装置,该装置包括:
[0028]获取模块,用于根据神经网络的第一模型文件,得到第一模型;
[0029]融合与拆分模块,用于根据算子的计算精度和/或芯片的电路结构,将第一模型中的多个算子进行融合与拆分,得到第二模型,每个算子用于表征神经网络中的一个独立计算单元;
[0030]合并模块,用于根据预设的算子合并模式,对第二模型中的算子进行匹配,得到第三模型;
[0031]量化模块,用于根据第三模型中的每个算子的量化操作,在第三模型中写入每个算子的量化参数,得到第四模型;
[0032]编译模块,用于对第四模型进行编译,得到神经网络的第二模型文件,第二模型文件用于在芯片中执行。
[0033]第三方面,本申请实施例提供了一种处理器,该处理器包括存储器、控制器以及存储在存储器中并可在控制器上运行的计算机程序;该控制器执行计算机程序时,使得该处理器执行第一方面或第一方面的任一可能的实现方式中神经网络的编译方法。
[0034]第四方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行第一方面或第一方面的任一可能的实现方式中神经网络的编译方法。
等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0056]在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0057]基于图1的描述,结合图2,说明现有技术中TVM模型的量化过程。如图2所示,TVM模型的量化和编译过程包括:
[0058]假设TVM模型中包括二维卷积算子(conv2d)、激活函数(bias add)和线性整流函数(relu)这三个算子。输入的data的数据类型为32位单精度浮点型数据(float32)。
[0059]TVM编译器在conv2d、bias add和relu这三个算子中的每个算子之前插入一个空节点,以及在relu之后插入一个空节点,得到包括conv2d、bias add和relu这三本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种神经网络的编译方法,其特征在于,所述方法包括:根据神经网络的第一模型文件,得到第一模型;根据算子的计算精度和/或芯片的电路结构,将所述第一模型中的多个算子进行融合与拆分,得到第二模型,每个算子用于表征所述神经网络中的一个独立计算单元;根据预设的算子合并模式,对所述第二模型中的算子进行匹配,得到第三模型;根据所述第三模型中的每个算子的量化操作,在所述第三模型中写入每个算子的量化参数,得到第四模型;对所述第四模型进行编译,得到所述神经网络的第二模型文件,所述第二模型文件用于在所述芯片中执行。2.如权利要求1所述的方法,其特征在于,在所述第一模型包括第一算子和第二算子,所述第一算子包括多种计算方式时,根据算子的计算精度和/或芯片的电路结构,将所述第一模型中的多个算子进行融合与拆分,包括:根据算子的计算精度,将所述第一算子中的部分计算方式对应的信息移动到所述第二算子中。3.如权利要求1所述的方法,其特征在于,在所述第一模型包括第三算子和第四算子时,根据算子的计算精度和/或芯片的电路结构,将所述第一模型中的多个算子进行融合与拆分,包括:根据算子的计算精度,更改所述第三算子和所述第四算子在所述第一模型中的计算顺序。4.如权利要求1所述的方法,其特征在于,在所述第一模型包括第五算子,所述第五算子包括多种计算方式时,根据算子的计算精度和/或芯片的电路结构,将所述第一模型中的多个算子进行融合与拆分,包括:根据算子的计算精度,将所述第五算子拆分成第六算子和第七算子,所述第六算子或第七算子包括所述第五算子中的部分计算方式对应的信息。5.如权利要求1所述的方法,其特征在于,在所述第一模型包括第八算子时,根据算子的计算精度和/或芯片的电路结构,将所述第一模型中的多个算子进行融合与拆分,包括:在所述芯片的电路结构不适配所述第八算子时,将所述第八算子替换为第九算子。6...

【专利技术属性】
技术研发人员:赵锦曦蔡万伟
申请(专利权)人:深圳云天励飞技术股份有限公司
类型:发明
国别省市:

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

1