【技术实现步骤摘要】
数据处理方法、装置、计算机设备和存储介质
本公开涉及计算机
,特别是涉及一种神经网络量化方法、装置、计算机设备和存储介质。
技术介绍
神经网络(neuralnetwork,NN)是一种模仿生物神经网络的结构和功能的数学模型或计算模型。神经网络通过样本数据的训练,不断修正网络权值和阈值使误差函数沿负梯度方向下降,逼近期望输出。它是一种应用较为广泛的识别分类模型,多用于函数逼近、模型识别分类、数据压缩和时间序列预测等。神经网络被应用到图像识别、语音识别、自然语言处理等领域中,然而,随着神经网络复杂度提高,数据的数据量和数据维度都在不断增大,不断增大的数据量等对运算装置的数据处理效率、存储装置的存储容量及访存效率等提出了较大的挑战。相关技术中,采用固定位宽对神经网络的运算数据进行量化,即将浮点型的运算数据转换为定点型的运算数据,以实现神经网络的运算数据的压缩。但相关技术中针对整个神经网络采用相同的量化方案,但神经网络的不同运算数据之间可能存在较大的差异,往往会导致精度较低,影响数据运算结果。
技术实现思路
基于此,有必要针对上述技术问题,提供一种神经网络量化方法、装置、计算机设备和存储介质。根据本公开的一方面,提供了一种神经网络量化方法,应用于终端,所述终端用于运行神经网络以执行目标任务,所述方法包括:根据所述目标任务和/或所述终端的精度需求,从目标数据中确定多个待量化数据,各所述待量化数据均为所述目标数据的子集,所述目标数据为所述神经网络的待量化层的任意一种待量化的待运算数据,所 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。