数据处理方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:26731499 阅读:21 留言:0更新日期:2020-12-15 14:34
本公开涉及一种数据处理方法、装置、计算机设备和存储介质。其所公开的板卡包括:存储器件、接口装置和控制器件以及包括数据处理装置的人工智能芯片;其中,人工智能芯片与存储器件、控制器件以及接口装置分别连接;存储器件,用于存储数据;接口装置,用于实现人工智能芯片与外部设备之间的数据传输;控制器件,用于对人工智能芯片的状态进行监控。本公开实施例所提供的数据处理方法、装置、计算机设备和存储介质,利用对应的量化参数对待量化数据进行量化,在保证精度的同时,减小了存储数据所占用的存储空间,保证了运算结果的准确性和可靠性,且能够提高运算的效率。

【技术实现步骤摘要】
数据处理方法、装置、计算机设备和存储介质
本公开涉及计算机
,特别是涉及一种神经网络量化方法、装置、计算机设备和存储介质。
技术介绍
神经网络(neuralnetwork,NN)是一种模仿生物神经网络的结构和功能的数学模型或计算模型。神经网络通过样本数据的训练,不断修正网络权值和阈值使误差函数沿负梯度方向下降,逼近期望输出。它是一种应用较为广泛的识别分类模型,多用于函数逼近、模型识别分类、数据压缩和时间序列预测等。神经网络被应用到图像识别、语音识别、自然语言处理等领域中,然而,随着神经网络复杂度提高,数据的数据量和数据维度都在不断增大,不断增大的数据量等对运算装置的数据处理效率、存储装置的存储容量及访存效率等提出了较大的挑战。相关技术中,采用固定位宽对神经网络的运算数据进行量化,即将浮点型的运算数据转换为定点型的运算数据,以实现神经网络的运算数据的压缩。但相关技术中针对整个神经网络采用相同的量化方案,但神经网络的不同运算数据之间可能存在较大的差异,往往会导致精度较低,影响数据运算结果。
技术实现思路
基于此,有必要针对上述技术问题,提供一种神经网络量化方法、装置、计算机设备和存储介质。根据本公开的一方面,提供了一种神经网络量化方法,应用于终端,所述终端用于运行神经网络以执行目标任务,所述方法包括:根据所述目标任务和/或所述终端的精度需求,从目标数据中确定多个待量化数据,各所述待量化数据均为所述目标数据的子集,所述目标数据为所述神经网络的待量化层的任意一种待量化的待运算数据,所述待运算数据包括输入神经元、权值、偏置、梯度中的至少一种;将各所述待量化数据分别根据对应的量化参数进行量化,得到与各所述待量化数据对应的量化数据;根据与各所述待量化数据对应的量化数据得到所述目标数据的量化结果,以使所述待量化层根据所述目标数据的量化结果进行运算。根据本公开的另一方面,提供了一种神经网络量化装置,,应用于终端,所述终端用于运行神经网络以执行目标任务,所述装置包括:数据确定模块,根据所述目标任务和/或所述终端的精度需求,从目标数据中确定多个待量化数据,各所述待量化数据均为所述目标数据的子集,所述目标数据为所述神经网络的待量化层的任意一种待量化的待运算数据,所述待运算数据包括输入神经元、权值、偏置、梯度中的至少一种;数据量化模块,将各所述待量化数据分别根据对应的量化参数进行量化,得到与各所述待量化数据对应的量化数据;结果确定模块,根据与各所述待量化数据对应的量化数据得到所述目标数据的量化结果,以使所述待量化层根据所述目标数据的量化结果进行运算。根据本公开的另一方面,提供了一种人工智能芯片,其特征在于,所述芯片包括上述神经网络量化装置。根据本公开的另一方面,提供了一种电子设备,所述电子设备包括上述人工智能芯片。根据本公开的另一方面,提供了一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及上述人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述神经网络量化方法。本公开实施例所提供的神经网络量化方法、装置、计算机设备和存储介质,该方法包括:根据所述目标任务和/或所述终端的精度需求,从所述待量化层的目标数据中确定多个待量化数据,各所述待量化数据均为所述目标数据的子集,所述目标数据为所述神经网络的待量化层的任意一种待量化的待运算数据,所述待运算数据包括输入神经元、权值、偏置、梯度中的至少一种;将各所述待量化数据分别根据对应的量化参数进行量化,得到与各所述待量化数据对应的量化数据;根据与各所述待量化数据对应的量化数据得到所述目标数据的量化结果,以使所述待量化层根据所述目标数据的量化结果进行运算。本公开实施例所提供的神经网络量化方法、装置、计算机设备和存储介质,根据目标任务和/或终端的精度需求从目标数据中确定多个待量化数据,利用对应的量化参数对待量化数据进行量化,在保证精度的同时,减小了存储数据所占用的存储空间,保证了运算结果的准确性和可靠性,且能够提高运算的效率,且量化同样缩减了神经网络模型的大小,降低了对运行该神经网络模型的终端的性能要求。通过权要中的技术特征进行推导,能够达到对应
技术介绍
中的技术问题的有益效果。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。附图说明包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。图1示出根据本公开实施例的神经网络量化方法的处理器的示意图。图2示出根据本公开实施例的神经网络量化方法的流程图。图3示出根据本公开实施例的对称的定点数表示的示意图。图4示出根据本公开实施例的引入偏移量的定点数表示的示意图。图5示出根据本公开实施例的神经网络量化方法的流程图。图6示出根据本公开一实施例的神经网络量化装置的框图。图7示出根据本公开实施例的板卡的结构框图。具体实施方式下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。随着神经网络运算复杂度的提高,数据的数据量和数据维度也在本文档来自技高网
...

【技术保护点】
1.一种神经网络量化方法,其特征在于,应用于终端,所述终端用于运行神经网络以执行目标任务,所述方法包括:/n根据所述目标任务和/或所述终端的精度需求,从目标数据中确定多个待量化数据,各所述待量化数据均为所述目标数据的子集,所述目标数据为所述神经网络的待量化层的任意一种待量化的待运算数据,所述待运算数据包括输入神经元、权值、偏置、梯度中的至少一种;/n将各所述待量化数据分别根据对应的量化参数进行量化,得到与各所述待量化数据对应的量化数据;/n根据与各所述待量化数据对应的量化数据得到所述目标数据的量化结果,以使所述待量化层根据所述目标数据的量化结果进行运算。/n

【技术特征摘要】
20190612 CN 2019105052397;20190614 CN 2019105153551.一种神经网络量化方法,其特征在于,应用于终端,所述终端用于运行神经网络以执行目标任务,所述方法包括:
根据所述目标任务和/或所述终端的精度需求,从目标数据中确定多个待量化数据,各所述待量化数据均为所述目标数据的子集,所述目标数据为所述神经网络的待量化层的任意一种待量化的待运算数据,所述待运算数据包括输入神经元、权值、偏置、梯度中的至少一种;
将各所述待量化数据分别根据对应的量化参数进行量化,得到与各所述待量化数据对应的量化数据;
根据与各所述待量化数据对应的量化数据得到所述目标数据的量化结果,以使所述待量化层根据所述目标数据的量化结果进行运算。


2.根据权利要求1所述的方法,其特征在于,根据所述目标任务和/或所述终端的精度需求,从目标数据中确定多个待量化数据,包括以下至少一项:
根据所述目标任务和/或所述终端的精度需求,将一层或多层待量化层中的目标数据确定为一个待量化数据;
根据所述目标任务和/或所述终端的精度需求,将一层或多层待量化层中的同一种待运算数据确定为一个待量化数据;
根据所述目标任务和/或所述终端的精度需求,将对应待量化层的目标数据中一个或多个通道中的数据确定为一个待量化数据;
根据所述目标任务和/或所述终端的精度需求,将对应待量化层的目标数据中一个或多个批数的数据确定为一个待量化数据;
根据所述目标任务和/或所述终端的精度需求确定划分数据的划分尺寸,将对应待量化层中的目标数据按照所述划分尺寸划分为一个或多个待量化数据。


3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
根据所述目标任务和/或所述终端的精度需求,确定待量化数据对应的数据位宽;
根据各所述待量化数据和对应的数据位宽计算得到对应的量化参数。


4.根据权利要求3所述的方法,其特征在于,所述根据各所述待量化数据和对应的数据位宽计算得到对应的量化参数,包括:
当所述量化参数不包括偏移量时,根据各所述待量化数据中的绝对值最大值和对应的数据位宽,得到各所述待量化数据的第一类点位置。


5.根据权利要求3所述的方法,其特征在于,所述根据各所述待量化数据和对应的数据位宽计算得到对应的量化参数,包括:
当所述量化参数不包括偏移量时,根据各所述待量化数据和对应的数据位宽得到量化后数据的最大值;
根据各所述待量化数据中的绝对值最大值和所述量化后数据的最大值,得到各所述待量化数据的第一类缩放系数。


6.根据权利要求3所述的方法,其特征在于,所述根据各所述待量化数据和对应的数据位宽计算得到对应的量化参数,包括:
当所述量化参数包括偏移量时,根据各所述待量化数据中的最大值、最小值和对应的数据位宽,得到各所述待量化数据的第二类点位置。


7.根据权利要求3所述的方法,其特征在于,所述根据各所述待量化数据和对应的数据位宽计算得到对应的量化参数,包括:
当所述量化参数包括偏移量时,根据各所述待量化数据和对应的数据位宽得到量化后数据的最大值;
根据各所述待量化数据中的最大值、最小值和量化后数据的最大值,得到各所述待量化数据的第二类缩放系数。


8.根据权利要求3所述的方法,其特征在于,所述根据各所述待量化数据和对应的数据位宽计算得到对应的量化参数,包括:
根据各所述待量化数据中的最大值和最小值,得到各所述待量化数据的偏移量。


9.根据权利要求1至8中任一项所述的方法,其特征在于,所述方法还包括:
根据各所述待量化数据和各所述待量化数据对应的量化数据,确定各所述待量化数据对应的量化误差;
根据各所述待量化数据对应的量化误差和误差阈值,调整各所述待量化数据对应的数据位宽,得到各所述待量化数据对应的调整位宽;
将各所述待量化数据对应的数据位宽更新为对应的调整位宽,根据各所述待量化数据和对应的调整位宽计算得到对应的调整量化参数,以使各所述待量化数据根据所述对应的调整量化参数进行量化。


10.根据权利要求9所述的方法,其特征在于,所述根据各所述待量化数据对应的量化误差和误差阈值,调整各所述待量化数据对应的数据位宽,得到各所述待量化数据对应的调整位宽,包括:
当所述量化误差大于第一误差阈值时,增加所述对应的数据位宽,得到所述对应调整位宽。


11.根据权利要求9或10所述的方法,其特征在于,所述方法还包括:
根据各所述待量化数据和对应的调整位宽计算各所述待量化数据调整后的量化误差;
根据所述调整后的量化误差和所述第一误差阈值继续增加所述对应的调整位宽,直至所述调整后的量化误差小于或等于所述第一误差阈值。


12.根据权利要求9或10所述的方法,其特征在于,所述根据各所述待量化数据对应的量化误差和误差阈值,调整各所述待量化数据对应的数据位宽,得到各所述待量化数据对应的调整位宽,包括:
当所述量化误差小于第二误差阈值时,增加所述对应的数据位宽,得到所述对应调整位宽,所述第二误差阈值小于所述第一误差阈值。


13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
根据所述调整位宽和所述待量化数据计算所述待量化数据调整后的量化误差;
根据所述调整后的量化误差和所述第二误差阈值继续减少所述调整位宽,直至根据调整位宽和所述待量化数据计算得到的调整后的量化误差大于或等于所述第二误差阈值。


14.根据权利要求1至13中任一项所述的方法,其特征在于,在所述神经网络运算的微调阶段和/或训练阶段,所述方法还包括:
获取当前迭代以及历史迭代中待量化数据的数据变动幅度,所述历史迭代为所述当前迭代之前的迭代;
根据所述待量化数据的数据变动幅度,确定所述待量化数据对应的目标迭代间隔,以使所述待量化层根据所述目标迭代间隔更新所述待量化数据的量化参数,所述目标迭代间隔包括至少一次迭代。


15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
根据所述待量化数据在所述当前迭代的数据位宽,确定所述待量化数据在所述目标迭代间隔内的迭代对应的数据位宽,以使所述神经网络根据所述待量化数据在所述目标迭代间隔内的迭代对应的数据位宽,确定量化参数。


16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
根据所述待量化数据在所述当前迭代对应的点位置,确定所述待量化数据在所述目标迭代间隔内的迭代对应的点位置,所述点位置包括第一类点位置和/或第二类点位置。


17.根据权利要求14所述的方法,其特征在于,所述获取当前迭代以及历史迭代中待量化数据的数据变动幅度,包括:
根据待量化数据在当前迭代的点位置,和根据历史迭代间隔确定的与所述当前迭代对应的历史迭代的点位置,计算待量化数据对应各迭代间隔的点位置的滑动平均值,所述点位置包括第一类点位置和/或第二类点位置;
根据所述待量化数据在当前迭代的点位置的第一滑动平均值,以及在上一迭代间隔对应迭代的点位置的第二滑动平均值,得到第一数据变动幅度;
所述根据所述待量化数据的数据变动幅度,确定所述待量化数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述待量化数据的量化参数,包括:
根据所述第一数据变动幅度,确定所述待量化数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述待量化数据的量化参数。


18.根据权利要求17所述的方法,其特征在于,所述根据所述待量化数据在当前迭代的点位置的第一滑动平均值,以及在上一迭代间隔对应迭代的点位置的第二滑动平均值,得到第一数据变动幅度,包括:
计算所述第一滑动平均值和所述第二滑动平均值的差值;
将所述差值的绝对值确定为第一数据变动幅度。


19.根据权利要求18所述的方法,其特征在于,所述方法还包括:
根据在当前迭代所述待量化数据和所述待量化数据对应的量化数据,得到第二数据变动幅度;
所述根据所述待量化数据的数据变动幅度,确定所述待量化数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述待量化数据的量化参数,包括:
根据所述待量化数据的第一数据变动幅度和所述第二数据变动幅度,确定所述待量化数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述待量化数据的量化参数。


20.根据权利要求19所述的方法,其特征在于,所述根据在当前迭代所述待量化数据和所述待量化数据对应的量化数据,得到第二数据变动幅度,包括:
计算在当前迭代所述待量化数据和所述待量化数据对应的量化数据之间的误差;
将所述误差的平方确定为所述第二数据变动幅度。


21.根据权利要求19所述的方法,其特征在于,所述根据所述待量化数据的第一数据变动幅度和所述第二数据变动幅度,确定所述待量化数据对应的目标迭代间隔,包括:
根据所述第一数据变动幅度和所述第二数据变动幅度中的最大值,确定所述待量化数据对应的目标迭代间隔。


22.根据权利要求14至21中任一项所述的方法,其特征在于,所述获取当前迭代以及历史迭代中待量化数据的数据变动幅度,包括:
在当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中待量化数据的数据变动幅度,所述更新周期包括至少一个迭代。


23.根据权利要求14至22中任一项所述的方法,其特征在于,所述方法还包括:
在当前迭代位于预设周期内时,根据当前迭代、在所述预设周期的下一周期中与所述当前迭代对应的迭代以及当前迭代对应的迭代间隔,确定周期间隔;
根据所述待量化数据在当前迭代对应的数据位宽,确定在所述周期间隔内的迭代中所述待量化数据的数据位宽;或
根据所述待量化数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述待量化数据的点位置。


24.一种神经网络量化装置,其特征在于,应用于终端,所述终端用于运行神经网络以执行目标任务,所述装置包括:
数据确定模块,根据所述目标任务和/或所述终端的精度需求,从目标数据中确定多个待量化数据,各所述待量化数据均为所述目标数据的子集,所述目标数据为所述神经网络的待量化层的任意一种待量化的待运算数据,所述待运算数据包括输入神经元、权值、偏置、梯度中的至少一种;
数据量化模块,将各所述待量化数据分别根据对...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:安徽寒武纪信息科技有限公司
类型:发明
国别省市:安徽;34

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

1