WO2023125815A1 - 一种数据处理方法、装置及边缘计算设备 - Google Patents

一种数据处理方法、装置及边缘计算设备 Download PDF

Info

Publication number
WO2023125815A1
WO2023125815A1 PCT/CN2022/143418 CN2022143418W WO2023125815A1 WO 2023125815 A1 WO2023125815 A1 WO 2023125815A1 CN 2022143418 W CN2022143418 W CN 2022143418W WO 2023125815 A1 WO2023125815 A1 WO 2023125815A1
Authority
WO
WIPO (PCT)
Prior art keywords
quantization
output data
layer
neural network
parameters
Prior art date
Application number
PCT/CN2022/143418
Other languages
English (en)
French (fr)
Inventor
陈汝丹
张渊
谢迪
浦世亮
Original Assignee
杭州海康威视数字技术股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 杭州海康威视数字技术股份有限公司 filed Critical 杭州海康威视数字技术股份有限公司
Publication of WO2023125815A1 publication Critical patent/WO2023125815A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请实施例提供了一种数据处理方法、装置及边缘计算设备,该方法包括:对神经网络的第一输入数据进行量化处理,得到第二输入数据;根据第二输入数据和神经网络中每个网络层的所有正向计算参数的量化参数,确定神经网络的第一输出数据;对第一输出数据进行量化处理,得到第二输出数据;在训练神经网络时,将第二输出数据输入预设损失函数,获得第一反向梯度;对第一反向梯度进行量化处理,得到第二反向梯度;根据第二反向梯度和神经网络中每个网络层的所有反向计算参数的量化参数,调整神经网络中的正向计算参数。应用本申请实施例提供的技术方案,可以减少该神经网络的计算量,扩大神经网络的应用场景。

Description

一种数据处理方法、装置及边缘计算设备
本申请要求于2021年12月31日提交中国专利局、申请号为202111671612.X发明名称为“一种数据处理方法、装置及边缘计算设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据处理方法、装置及边缘计算设备。
背景技术
随着计算机技术的发展,神经网络被广泛应用于图像降噪、人脸识别以及活体验证等应用场景。然而,神经网络的计算量特别大,巨大的计算量限制了神经网络的应用场景。
发明内容
本申请实施例的目的在于提供一种数据处理方法、装置及边缘计算设备,以减少神经网络的计算量,扩大神经网络的应用场景。具体技术方案如下:
第一方面,本申请实施例提供了一种数据处理方法,所述方法包括:
对神经网络的第一输入数据进行量化处理,得到第二输入数据;
根据所述第二输入数据和所述神经网络中每个网络层的所有正向计算参数的量化参数,确定所述神经网络的第一输出数据;
对所述第一输出数据进行量化处理,得到第二输出数据;
在训练所述神经网络时,将所述第二输出数据输入预设损失函数,获得第一反向梯度;
对所述第一反向梯度进行量化处理,得到第二反向梯度;
根据所述第二反向梯度和所述神经网络中每个网络层的所有反向计算参数的量化参数,调整所述神经网络中的正向计算参数。
可选的,所述正向计算参数包括权重,所述方法还包括:
针对所述神经网络中每个网络层,将该网络层的输出通道对应的权重划分为一组权重;
基于每组权重中的最大值,分别对每组权重进行量化处理,得到每组权重对应的量化参数和第一量化步长。
可选的,所述方法还包括:
针对每组权重对应的第一量化步长,按照定点步长表示法,分别对该第一量化步长进行量化处理,得到该第一量化步长对应的量化参数和第二量化步长。
可选的,所述正向计算参数包括偏置参数,所述方法还包括:
针对所述神经网络中每个网络层,基于该网络层的多个偏置参数中的最大值,按照定点步长表示法,对多个偏置参数进行量化处理,得到偏置参数对应的量化参数和第三量化步长。
可选的,所述方法还包括:
对于每个网络层的输出数据,将该网络层的输出数据归一化至预设范围内;
基于预设范围的边界值,按照定点步长表示法,对归一化后的输出数据进行量化处理,得到量化输出数据和第四量化步长;
其中,所述网络层的输出数据包括所述第一输出数据,当所述网络层的输出数据为所述第一输出数据时,所述量化输出数据为所述第二输出数据。
可选的,所述反向计算参数包括学习率、权重衰减参数、动量超参数、权重梯度、偏置参数梯度和激活值的边界值梯度中的一种或多种。
可选的,所述方法还包括:
对所述预设损失函数中的所有参数进行量化处理,得到损失函数对应的量化参数;
所述将所述第二输出数据输入预设损失函数,获得第一反向梯度的步骤,包括:
将所述第二输出数据输入预设损失函数,以基于所述第二输出数据和所述损失函数对应的量化参数,获得第一反向梯度。
可选的,所述网络层包括卷积层和设置在所述卷积层之后的BN(BatchNorm,批标准化)层;
在根据所述第二输入数据和所述神经网络中每个网络层的所有正向计算参数的量化参数,确定所述神经网络的第一输出数据之前,所述方法还包括:
将所述BN层与所述卷积层进行合并,得到合并网络层,所述合并网络层的权重为所述BN层的激活值系数与所述卷积层的原始权重的乘积,所述合并网络层的偏置参数为所述卷积层的原始偏置参数与所述BN层的激活值偏置系数的和值。
第二方面,本申请实施例提供了一种数据处理装置,所述装置包括:
第一量化单元,用于对神经网络的第一输入数据进行量化处理,得到第二输入数据;
确定单元,用于根据所述第二输入数据和所述神经网络中每个网络层的所有正向计算参数的量化参数,确定所述神经网络的第一输出数据;
第二量化单元,用于对所述第一输出数据进行量化处理,得到第二输出数据;
输入单元,用于在训练所述神经网络时,将所述第二输出数据输入预设损失函数,获得第一反向梯度;
第三量化单元,用于对所述第一反向梯度进行量化处理,得到第二反向梯度;
调整单元,用于根据所述第二反向梯度和所述神经网络中每个网络层的所有反向计算参数的量化参数,调整所述神经网络中的正向计算参数。
可选的,所述正向计算参数包括权重,所述装置还包括:
划分单元,用于针对所述神经网络中每个网络层,将该网络层的输出通道对应的权重划分为一组权重;
第四量化单元,用于基于每组权重中的最大值,分别对每组权重进行量化处理,得到每组权重对应的量化参数和第一量化步长。
可选的,所述第四量化单元,还用于:
针对每组权重对应的第一量化步长,按照定点步长表示法,分别对该第一量化步长进行量化处理,得到该第一量化步长对应的量化参数和第二量化步长。
可选的,所述正向计算参数包括偏置参数,所述装置还包括:
第五量化单元,用于针对所述神经网络中每个网络层,基于该网络层的多个偏置参数中的最大值,按照定点步长表示法,对多个偏置参数进行量化处理,得到偏置参数对应的量化参数和第三量化步长。
可选的,所述装置还包括:
归一化单元,用于对于每个网络层的输出数据,将该网络层的输出数据归一化至预设范围内;
第六量化单元,用于基于预设范围的边界值,按照定点步长表示法,对归一化后的输出数据进行量化处理,得到量化输出数据和第四量化步长;
其中,所述网络层的输出数据包括所述第一输出数据,当所述网络层的输出数据为所述第一输出数据时,所述量化输出数据为所述第二输出数据。
可选的,所述反向计算参数包括学习率、权重衰减参数、动量超参数、权重梯度、偏置参数梯度和激活值的边界值梯度中的一种或多种。
可选的,所述装置还包括:
第六量化单元,用于对所述预设损失函数中的所有参数进行量化处理,得到损失函数对应的量化参数;
所述输入单元,具体用于将所述第二输出数据输入预设损失函数,以基于所述第二输出数据和所述损失函数对应的量化参数,获得第一反向梯度。
可选的,所述网络层包括卷积层和设置在所述卷积层之后的BN层;所述装置还包括:
合并单元,用于在根据所述第二输入数据和所述神经网络中每个网络层的所有正向计算参数的量化参数,确定所述神经网络的第一输出数据之前,将所述BN层与所述卷积层进行合并,得到合并网络层,所述合并网络层的权重为所述BN层的激活值系数与所述卷积层的原始权重的乘积,所述合并网络层的偏置参数为所述卷积层的原始偏置参数与所述BN层的激活值偏置系数的和值。
第三方面,本申请实施例提供了一种边缘计算设备,包括支持训练的处理器和机器可读存储介质,所述处理器存储有神经网络,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使实现上述任一所述的数据处理方法步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被存储有神经网络的处理器执行时实现上述任一所述的数据处理方法步骤。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的数据处理方法步骤。
本申请实施例有益效果:
本申请实施例提供的技术方案中,对神经网络中每个网络层的所有正向计算参数和反向计算参数均进行了量化,对神经网络进行了较大程度的压缩,基于正向计算参数和反向计算参数全量化的神经网络,对输入数据进行处理,大大降低了神经网络的计算量,使得神经网络在计算资源或存储资源受限的情况下也能发挥很好的效用,扩大了神经网络的应用场景。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技 术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本申请实施例提供的神经网络的一种示意图;
图2为本申请实施例提供的数据处理方法的第一种流程示意图;
图3为本申请实施例提供的数据处理方法的第二种流程示意图;
图4为本申请实施例提供的权重量化的第一种流程示意图;
图5为本申请实施例提供的权重量化的第二种流程示意图;
图6为本申请实施例提供的神经网络的一种结构示意图;
图7为本申请实施例提供的数据处理装置的一种结构示意图;
图8为本申请实施例提供的边缘计算设备的一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
下面对本申请实施例中出现的词语进行解释说明。
量化:在计算机中,数值会按照整型或浮点型等不同类型,占用计算机不同的比特(bit)位宽来进行保存。例如,浮点型数值(简称浮点数)采用高精度的32bit或者64bit表示,在可允许的精度损失范围内,将高精度的浮点数用更少的比特(如4bit、8bit或16bit)位宽来表示行为称之为量化。
定点化:数据用整型数值(简称整数)进行存储和计算。
神经网络由一个或多个不同类型的网络层组成,不同类型的网络层执行不同的功能计算。目前,常见的网络层有卷积层、BN(BatchNorm,批标准化)层、以及relu层等,将这些网络层按照一定的顺序和数量组合起来,就构成了一个神经网络,如图1所示。
随着计算机技术的发展,神经网络被广泛应用于图像降噪、人脸识别以及活体验证等应用场景。然而,神经网络的计算量特别大,巨大的计算量限制了神经网络的应用场景。
在神经网络的计算资源或存储资源受限的情况下,可以使用量化处理方法进一步减少神经网络的计算量。
量化处理是一种将数值离散化的方法。也就是说,边缘计算设备将落在一定范围内的连续数值统一设置成指定的离散数值。例如,量化处理前的数值的范围可以为0~1.5等,量化处理后的数值可以为0.2、1、1.5等。
这样做的目的在于,量化处理后的数值的个数是有限的。例如,边缘计算设备使用比特位宽为4bit的量化处理方法对数值进行量化处理,只需要用16个数值就可以表示量化处理前的一定范围内的所有数值。这种量化处理方法可以大大减少神经网络的计算量。
神经网络中参数的数值分布存在一定的冗余,即参数的一些数值并不会影响神经网络最终输出的结果,或者说神经网络对于误差存在一定的容忍性,改变了一些数值也不影响最终的结果,所以在神经网络技术领域,量化处理的操作是可行的,但是目标肯定是尽可能的减少这种量化误差。
目前,量化处理方法包括浮点步长表示法。该浮点步长表示方法的具体步骤如下:若一个浮点数X f属于某个取值空间,边缘计算设备对这个取值空间进行量化,边缘计算设备可以按照指定的比特位宽b(如b=4bit)来计算量化空间中用来表示数值的个数2b,其中,b为指定的比特位宽。边缘计算设备用取值空间的最大值除以2b,可以得出量化空间中两个数值之间的差距,这种差距也称为该量化空间的量化步长step。X f除以step,并对所得的商进行向上取整就能得到一个整数X int,整数X int可以称为定点数,得到X int的过程可以称为量化处理过程。
整数X int含义是指定的比特位宽能够表示的2b个数值中,它是第几个数值。在取值空间中,X int对应的量化处理后的数值为X int*step,X int*step可以称为反量化值,得到X int*step的过程也可以称为反量化处理过程。
另外,量化处理方法还包括定点步长表示法(即Fixed Point),该定点步长表示方法与浮点步长表示法的区别在于,并不是通过取值空间中的最大值除以2b获得step,而是按照以下公式求得step:
step=2 -FL                             (1)
其中,FL=b-ceil(log 2Y f)                  (2)
上式中,FL表示浮点数小数位的比特位宽,b表示指定的比特位宽,Y f表示取值空间中的最大值,ceil()函数为向上取整函数。
上述公式表示将一个浮点数看成整数和小数两个部分,小数的含义就是量化步长step,整数的含义就是定点数X int。按照浮点数的小数的比特位宽FL,得到step,以此来对浮点数做量化处理。这样,X int*step变成了X int*2 -FL,而2的指数可以直接通过二进制移位进行计算,大大减少了神经网络的计算量。
相关技术中公开了使用量化处理方法,减少神经网络的计算量,但其关注的量化参数一般为权重和激活值,这对神经网络的计算量的降低是有限的。
为解决上述问题,本申请实施例提供了一种数据处理方法,如图2所示,该方法可以部署于支持训练的处理器、或者带训练功能的边缘计算设备。该边缘计算设备可以为摄像机、路由器等边缘设备。为方便理解,下面以边缘计算设备为执行主体进行说明,并不起限定作用。该数据处理方法包括如下步骤:
步骤S21,对神经网络的第一输入数据进行量化处理,得到第二输入数据。
本申请实施例中,神经网络可以为卷积神经网络、深度卷积神经网络或者其他神经网络,对此不做限定。
边缘计算设备获取神经网络的输入数据,作为第一输入数据。边缘计算设备对第一输入数据进行量化处理,得到第二输入数据。第二输入数据为整型数据,因此,利用第二输入数据,可以达到降低深度神经网络的计算量。
步骤S22,根据第二输入数据和神经网络中每个网络层的所有正向计算参数的量化参数,确定神经网络的第一输出数据。
本申请实施例中,正向计算参数可以包括但不限于权重、激活值、偏置参数和激活值的边界值等。
神经网络包括一个或多个网络层。边缘计算设备将第二输入数据输入神经网络的首个 网络层,基于该网络层的权重的量化参数、偏置参数的量化参数,对第二输入数据进行处理,得到该网络层的输出数据,该输出数据即为输出激活值,获得该输出数据的量化参数,作为下一个网络层的输入数据,并循环执行基于该网络层的权重的量化参数、偏置参数的量化参数,对第二输入数据进行处理,得到该网络层的输出数据,获得该输出数据的量化参数的步骤,直至获得该神经网络的最后一个网络层的输出数据,将最后一个网络层的输出数据作为第一输出数据。
本申请实施例中,对上述权重、激活值、偏置参数和激活值的边界值等正向计算参数的量化方法,下面会进行详细介绍,此处不做展开说明。
步骤S23,对第一输出数据进行量化处理,得到第二输出数据。
本申请实施例提供的技术方案中,边缘计算设备对神经网络中每个网络层的所有正向计算参数均进行了量化,对神经网络进行了较大程度的压缩,基于正向计算参数全量化的神经网络,对输入数据进行处理,大大降低了神经网络的计算量,使得神经网络在计算资源或存储资源受限的情况下也能发挥很好的效用,扩大了神经网络的应用场景。
本申请实施例提供的技术方案中,边缘计算设备对神经网络的输出数据进行了量化,这降低了神经网络的输出数据所需的存储空间,在计算资源或存储资源受限的情况下,进一步发挥了神经网络的效用。
本申请实施例中,上述步骤S21-S23为正向计算过程,在神经网络训练完成后,执行上述步骤S21-S23即可。而在训练神经网络时,还需要进行反向计算,以更新神经网络中的正向计算参数。反向计算的流程可以参见图3所示,图3为本申请实施例提供的数据处理方法的第二种流程示意图,该方法可以包括步骤S31-S36。其中,步骤S31-S33与上述步骤S21-S23相同,此处不再赘述。
步骤S34,将第二输出数据输入预设损失函数,获得第一反向梯度。
本申请实施例中,为实现神经网络的训练,在神经网络的末尾连接一个损失函数,即预设损失函数。
对于神经网络输出的第二输出数据,边缘计算设备将第二输出数据输入预设损失函数,预设损失函数对第二输出数据进行处理后,得到第一反向梯度,该第一反向梯度即为神经网络的最后一个网络层的输出数据梯度,即输出激活值梯度。
本申请实施例中,为了提高训练速率,边缘计算设备可以对预设损失函数中的所有参数(如归一化参数、目标真值参数和损失值等)进行量化处理,得到损失函数对应的量化参数。这种情况下,上述步骤S34可以为:将第二输出数据输入预设损失函数,以基于第二输出数据和损失函数对应的量化参数,获得第一反向梯度。
本申请实施例中,该量化参数为整型数据,所有参数进行量化处理后的预设损失函数为整型的损失函数。利用整型的损失函数对应的量化参数,对第二输出数据进行处理,可以大大提高损失函数的计算效率,进而提高神经网络的训练速率。
步骤S35,对第一反向梯度进行量化处理,得到第二反向梯度。
本申请实施例中,网络层的激活值梯度(即第一反向梯度)为该网络层的输入激活值梯度,该第一反向梯度为该网络层的输出激活值梯度与该网络层的权重的卷积计算得到。第一反向梯度的尺寸为N×C in×H×W。其中,N表示样本批量数(batchsize),C in表示 网络层的输入通道数,H表示输出数据的高,W表示输出数据的宽。
边缘计算设备可以采用定点步长表示法,对第一反向梯度进行量化处理。具体为,边缘计算设备找到N×C in×H×W个第一反向梯度中的最大值max dA,然后将max dA代入公式(2),求出浮点数小数位的比特位宽可以为FL dA=b-ceil(log 2max dA)。若考虑到需要用1bit表示数符,则将max dA代入公式(2),求出浮点数小数位的比特位宽可以为FL dA=b-ceil(log 2max dA)-1。
在确定浮点数小数位的比特位宽FL dA后,将FL dA带入上述公式(1),可以得到第一反向梯度对应的量化步长
Figure PCTCN2022143418-appb-000001
本申请实施例中,不同网络层的第一反向梯度对应的量化步长
Figure PCTCN2022143418-appb-000002
可以相同,也可以不同,边缘计算设备利用每个网络层的
Figure PCTCN2022143418-appb-000003
得到每个网络层第一反向梯度对应的量化参数,即第二反向梯度dA int,即
Figure PCTCN2022143418-appb-000004
其中,dA表示第一反向梯度。
本申请实施例中,第一反向梯度可以量化为8bit的第二反向梯度,即第一反向梯度的量化位宽可以为8bit。以第一反向梯度的量化位宽为8bit为例,第一反向梯度可以量化表示为
Figure PCTCN2022143418-appb-000005
步骤S36,根据第二反向梯度和神经网络中每个网络层的所有反向计算参数的量化参数,调整神经网络中的正向计算参数。
本申请实施例中,反向计算参数可以包括但不限于权重梯度、激活值梯度、偏置参数梯度和激活值的边界值梯度等。
神经网络包括一个或多个网络层。边缘计算设备将第二反向梯度输入神经网络反向的首个网络层,基于该网络层的权重梯度、激活值梯度、偏置参数梯度和激活值的边界值梯度等,对第二反向梯度进行处理,得到该网络层的输入数据梯度,该输入数据梯度即为输入激活值梯度,获得该输入数据梯度的量化参数,作为下一个网络层的输出数据梯度,循环执行基于该网络层的权重梯度、激活值梯度、偏置参数梯度和激活值的边界值梯度等,对第二反向梯度进行处理,得到该网络层的输入数据梯度,获得该输入数据梯的量化参数,作为下一个网络层的输出数据梯度的步骤,直至获得该神经网络反向的最后一个网络层的输入数据梯度。
在上述每个网络层对第二反向梯度进行处理的过程中,边缘计算设备会基于该网络层的第二反向梯度,以及该网络层的权重梯度、激活值梯度、偏置参数梯度和激活值的边界值梯度等,调整该网络层的正向计算参数。
本申请实施例中,对上述权重梯度、激活值梯度、偏置参数梯度和激活值的边界值梯度等反向计算参数的量化方法,下面会进行详细介绍,此处不做展开说明。
本申请实施例提供的技术方案中,边缘计算设备对神经网络中每个网络层的所有正向计算参数和反向计算参数均进行了量化,对神经网络进行了较大程度的压缩,基于正向计算参数和反向计算参数全量化的神经网络,对数据进行处理(包括对反向梯度进行处理),大大降低了神经网络的计算量,使得神经网络在计算资源或存储资源受限的情况下也能发挥很好的效用,扩大了神经网络的应用场景。
下面对本申请实施例中正向计算参数的量化过程进行详细说明。
首先介绍权重的量化过程,如图4所示,为本申请实施例提供的权重量化方法的一种 流程示意图,该方法可以包括如下步骤:
步骤S41,针对神经网络中每个网络层,将该网络层的输出通道对应的权重划分为一组权重。
本申请实施例中,一个网络层具有多个输出通道,一个输出通道对应的权重被划分为一组。例如,一个网络层的权重的尺寸可以表示为C out×C in×K H×K W。其中,C out表示该网络层的输出通道数,C in表示该网络层的输入通道数,K H表示该卷积核的高,K W表示该卷积核的宽。考虑到神经网络通道的特异性,可以将网络层的所有权重按照输出通道的方向进行分组,可以分为C out个组,每组权重的个数为C in×K H×K W,每组C in×K H×K W个权重共用一个第一量化步长α。
步骤S42,基于每组权重中的最大值,分别对每组权重进行量化处理,得到每组权重对应的量化参数和第一量化步长。
本申请实施例中,边缘计算设备可以利用浮点步长表示法、或定点步长表示法,对每组权重进行量化处理,对量化处理方法并不进行具体限定。
可选的,以量化处理方法采用定点步长表示法为例,边缘计算设备找到每组权重中的最大值max W,然后将max W代入公式(2),求出浮点数小数位的比特位宽FL W=b-ceil(log 2max W)。若考虑到需要用1bit表示数符,则将max W代入公式(2),求出浮点数小数位的比特位宽可以为FL W=b-ceil(log 2max W)-1。
在确定浮点数小数位的比特位宽FL W后,将FL W带入上述公式(1),可以得到一组权重对应的第一量化步长α为
Figure PCTCN2022143418-appb-000006
边缘计算设备利用每个网络层的第一量化步长α,得到每个网络层的权重对应的量化参数W int,即W int=W/α,其中,W表示权重。
边缘计算设备还可以采用浮点步长表示法,对每组权重进行量化处理,此时,得到的第一量化步长为浮点数。为了进一步减少神经网络的计算量,对神经网络进行进一步压缩,本申请实施例提供了一种权重量化方法,如图5所示,该方法可以包括步骤S51-S53,其中,步骤S51-S52与上述步骤S41-S42相同。
步骤S53,针对每组权重对应的第一量化步长,按照定点步长表示法,分别对该第一量化步长进行量化处理,得到该第一量化步长对应的量化参数和第二量化步长。
本申请实施例中,第一量化步长α可以是浮点数,为了减少神经网络的计算量,边缘计算设备可以对α进行量化处理。针对每组权重,边缘计算设备将该组权重对应的第一量化步长α代入公式(2),求出浮点数小数位的比特位宽FL α=b-ceil(log 2α)。若考虑到需要用1bit表示数符,则将第一量化步长α代入公式(2),求出浮点数小数位的比特位宽可以为FL α=b-ceil(log 2α)-1。
在确定浮点数小数位的比特位宽FL α后,将FL α带入上述公式(1),可以得到第一量化步长α对应的第二量化步长
Figure PCTCN2022143418-appb-000007
边缘计算设备利用每个网络层的第二量化步长
Figure PCTCN2022143418-appb-000008
得到第一量化步长α对应的量化参数α int,即
Figure PCTCN2022143418-appb-000009
本申请实施例中,权重可以量化为4bit或8bit等的权重,即权重的量化位宽可以为4bit或8bit等。第一量化步长可以量化为16bit或32bit等的量化步长,即第一量化步长的量化位宽可以为16bit。以权重的量化位宽为4bit,第一量化步长的量化位宽为16bit为例,权重可以量化表示为
Figure PCTCN2022143418-appb-000010
对偏置参数的量化过程,如下:
针对神经网络中每个网络层,基于该网络层的多个偏置参数中的最大值,按照定点步长表示法,对多个偏置参数进行量化处理,得到偏置参数对应的量化参数和第三量化步长。
本申请实施例中,偏置参数的尺寸一般是C out,偏置参数的个数较少,所以量化方式比较简单,可以直接采用定点步长表示法进行量化处理。具体为,边缘计算设备找到C out个偏置参数中的最大值max bias,然后将max bias代入公式(2),求出浮点数小数位的比特位宽FL bias=b-ceil(log 2max bias)。若考虑到需要用1bit表示数符,则将max bias代入公式(2),求出浮点数小数位的比特位宽可以为FL bias=b-ceil(log 2max bias)-1。
本申请实施例中,每个网络层的多个偏置参数共用一个第三量化步长
Figure PCTCN2022143418-appb-000011
在确定浮点数小数位的比特位宽FL bias后,将FL bias带入上述公式(1),可以得到偏置参数对应的第三量化步长
Figure PCTCN2022143418-appb-000012
边缘计算设备利用每个网络层的
Figure PCTCN2022143418-appb-000013
得到偏置参数对应的量化参数bias int
Figure PCTCN2022143418-appb-000014
其中,bias表示偏置参数。
本申请实施例中,由于偏置参数的数量较少,所以偏置参数的量化位宽可以为16bit或32bit。以偏置参数的量化位宽为16bit为例,偏置参数可以量化表示为
Figure PCTCN2022143418-appb-000015
对每个网络层的输出激活值(即输出数据)的量化过程,如下:
本申请实施例中,每个网络层的输入数据即为上一个网络层的输出数据。因此,对神经网络中每个网络层的输出数据进行量化处理即可。
对于每个网络层的输出数据,可以将该网络层的输出数据归一化至预设范围内;基于预设范围的边界值,按照定点步长表示法,对归一化后的输出数据进行量化处理,得到量化输出数据和第四量化步长;其中,网络层的输出数据包括上述第一输出数据,当网络层的输出数据为上述第一输出数据时,量化输出数据即为第二输出数据。
对于一个参数量为C out×C in×K H×K W的卷积层,它的输出数据(即激活值)的尺寸一般为N×C out×H×W,其中,N表示样本批量数batchsize,H表示输出数据的高,W表示输出数据的宽。在这里,针对网络层的所有输出数据边缘计算设备使用同一量化步长。
本申请实施例中,边缘计算设备可以将输出数据归一化至预设范围内。也就是,增加一个边界值clip_val,也可以称为激活值的边界值。clip_val的用处是将所有的输出数据取值限制在一个范围内,也就是说给输出数据数值分别预设了一个上下界,这种方法可以称为范围裁剪方法。
边缘计算设备将输出数据归一化至预设范围内的公式如下:
Figure PCTCN2022143418-appb-000016
其中,x可以理解为N×C out×H×W个输出数据中的某一个值,f(x)为将输出数据归一化后所得的值,clip_val是激活值的边界值,即预设范围的边界值。clip_val可以根据实际需求进行设定,只要满足clip_val与-clip_val在输出数据的取值范围内即可,对此不进行限定。
在将网络层的输出数据归一化至预设范围内后,该网络层的输出数据的最大值为clip_val。这种情况下,边缘计算设备基于预设范围的边界值,按照定点步长表示法,对归 一化后的输出数据进行量化处理,得到量化输出数据和第四量化步长;
边缘计算设备将clip_val代入公式(2),求出浮点数小数位的比特位宽FL A=b-ceil(log 2max A)。若考虑到需要用1bit表示数符,则将clip_val代入公式(2)求出浮点数小数位的比特位宽可以为FL A=b-ceil(log 2max A)-1。
本申请实施例中,每个网络层的输出数据共用一个第四量化步长
Figure PCTCN2022143418-appb-000017
在确定浮点数小数位的比特位宽FL A后,将FL A带入上述公式(1),可以得到输出数据对应的第四量化步长
Figure PCTCN2022143418-appb-000018
边缘计算设备利用每个网络层的
Figure PCTCN2022143418-appb-000019
得到输出数据对应的量化参数A int(即量化输出数据),
Figure PCTCN2022143418-appb-000020
其中,A表示输出数据。
本申请实施例中,由于增加了一个范围裁剪操作,反向计算梯度时,需要计算该操作的梯度,如下:
Figure PCTCN2022143418-appb-000021
Figure PCTCN2022143418-appb-000022
通过上述实施例,输出数据的量化效果较好。
本申请实施例中,输出数据的量化位宽可以为8bit或16bit等。以输出数据的量化位宽为8bit为例,输出数据可以量化表示为
Figure PCTCN2022143418-appb-000023
本申请实施例中,边缘计算设备还可以直接对输出数据进行量化。即从多个输出数据中找到最大值,将最大值带入上述公式(1)和(2),可以得到输出数据对应的第四量化步长。边缘计算设备利用每个网络层的第四量化步长,得到输出数据对应的量化参数A int。本申请实施例对输出数据的量化过程不进行限定。
下面对本申请实施例中反向计算参数的量化过程进行详细说明。
对于反向激活值梯度的量化过程,可参见上述步骤S35部分的相关描述,此处不再赘述。
边缘计算设备中预先设置了优化器。边缘计算设备利用该优化器,基于反向激活值梯度、学习率、权重衰减参数和动量超参数等,更新正向计算参数。
优化器中,正向计算参数的更新算法可以包括但不限于SGD(Stochastic Gradient Descent,随机梯度下降)算法、或ADAM(Adaptive Momentum Estimation,自适应动量估计)算法等,对此不进行限定。
以SGD算法为例,SGD算法的公式如下:
W t=W t-1+lr×dW t                      (6)
dW t=dW+wd×W t-1+momentum×dW t-1          (7)
其中,W t表示t时刻网络层的正向计算参数,W t-1表示(t-1)时刻网络层的正向计算参数,dW t表示t时刻网络层的正向计算参数的梯度,dW t-1表示(t-1)时刻网络层的正向计算参数的梯度,dW为网络层的正向计算参数的梯度。
当正向计算参数为权重时,dW可以通过网络层的输出数据梯度dA与输入数据的卷积 计算得出。当正向计算参数为偏置参数时,dW可以通过网络层的输出数据梯度dA求和计算得到,lr为学习率,wd为权重衰减参数,momentum为动量超参数。
正向计算参数可以为权重、偏置参数或激活值的边界值。边缘计算设备基于公式(6)和公式(7),可以利用神经网络的学习率、权重衰减参数和动量超参数,分别对网络层的权重、偏置参数和激活值的边界值等正向计算参数进行更新。
对于学习率的量化过程,如下:
边缘计算设备将lr代入公式(2),求出浮点数小数位的比特位宽FL lr=b-ceil(log 2lr)。若考虑到需要用1bit表示数符,则将lr代入公式(2)求出浮点数小数位的比特位宽可以为FL lr=b-ceil(log 2lr)-1。
在确定浮点数小数位的比特位宽FL lr后,将FL lr带入上述公式(1),可以得到学习率对应的量化步长
Figure PCTCN2022143418-appb-000024
边缘计算设备利用每个网络层的
Figure PCTCN2022143418-appb-000025
得到学习率对应的量化参数lr int,即
Figure PCTCN2022143418-appb-000026
对权重衰减参数的量化过程,如下:
边缘计算设备将wd代入公式(2),求出浮点数小数位的比特位宽FL wd=b-ceil(log 2wd)。若考虑到需要用1bit表示数符,则将wd代入公式(2)求出浮点数小数位的比特位宽可以为FL wd=b-ceil(log 2wd)-1。
在确定浮点数小数位的比特位宽FL wd后,将FL wd带入上述公式(1),可以得到权重衰减参数对应的量化步长
Figure PCTCN2022143418-appb-000027
边缘计算设备利用每个网络层的
Figure PCTCN2022143418-appb-000028
得到权重衰减参数对应的量化参数wd int,即
Figure PCTCN2022143418-appb-000029
对动量超参数的量化过程,如下:
边缘计算设备将momentum代入公式(2),求出浮点数小数位的比特位宽FL mom=b-ceil(log 2mom)。若考虑到需要用1bit表示数符,则将momentum代入公式(2)求出浮点数小数位的比特位宽可以为FL mom=b-ceil(log 2mom)-1。
在确定浮点数小数位的比特位宽FL mom后,将FL mom带入上述公式(1),可以得到动量超参数对应的量化步长
Figure PCTCN2022143418-appb-000030
边缘计算设备利用每个网络层的
Figure PCTCN2022143418-appb-000031
得到动量超参数对应的量化参数momentum int,即
Figure PCTCN2022143418-appb-000032
本申请实施例中,学习率、权重衰减参数和动量超参数的量化位宽可以为16bit或32bit等。以学习率、权重衰减参数和动量超参数的量化位宽为16bit为例,学习率、权重衰减参数和动量超参数可以量化表示为
Figure PCTCN2022143418-appb-000033
其中,C为lr、wd或momentum。
对于权重梯度的量化过程,如下:
权重梯度的尺寸与权重的尺寸相同,为C out×C in×K H×K W,C out×C in×K H×K W个权重梯度共用一个量化步长。
具体量化过程为:边缘计算设备找到C out×C in×K H×K W个权重梯度中的最大值max dW,然后将max dW代入公式(2)求出浮点数小数位的比特位宽FL dW=b-ceil(log 2max dW)。若考虑到需要用1bit表示数符,则将max dW代入公式(2)求出浮点数小数位的比特位宽可以为FL dW=b-ceil(log 2max dW)-1。
在确定浮点数小数位的比特位宽FL dW后,将FL dW带入上述公式(1),可以得到权重梯度对应的量化步长
Figure PCTCN2022143418-appb-000034
边缘计算设备利用每个网络层的
Figure PCTCN2022143418-appb-000035
得到权重梯度对应 的量化参数dW int,即
Figure PCTCN2022143418-appb-000036
其中,dW表示权重梯度。
本申请实施例中,权重梯度的量化位宽可以为16bit或32bit等。以权重梯度的量化位宽为16bit为例,权重梯度可以量化表示为
Figure PCTCN2022143418-appb-000037
对偏置参数梯度的量化过程,如下:
偏置参数的梯度更新方式与权重相同,具体的偏置参数梯度的量化过程参见上述权重梯度的更新。
本申请实施例中,偏置参数梯度的量化位宽可以为32bit或64bit等。以偏置参数梯度的量化位宽为32bit为例,偏置参数梯度可以量化表示为
Figure PCTCN2022143418-appb-000038
其中,dbias int32表示偏置参数梯度对应的量化参数,
Figure PCTCN2022143418-appb-000039
表示偏置参数梯度对应的量化步长。
对激活值的边界值梯度的量化过程,如下:
激活值的边界值(如上述clip_val)梯度更新方式与权重相同,具体的激活值的边界值梯度的量化过程参见上述权重梯度的更新。
本申请实施例中,激活值的边界值梯度的量化位宽可以为32bit或64bit等。以激活值的边界值梯度的量化位宽为32bit为例,偏置参数梯度可以量化表示为
Figure PCTCN2022143418-appb-000040
其中,dclip int32表示激活值的边界值梯度对应的量化参数,
Figure PCTCN2022143418-appb-000041
表示激活值的边界值梯度对应的量化步长。
基于上述学习率、权重衰减参数、动量超参数、权重梯度、偏置参数梯度和激活值的边界值梯度的量化,上述步骤S36可以为:根据第二反向梯度、以及神经网络中每个网络层的学习率、权重衰减参数、动量超参数、权重梯度、偏置参数梯度和激活值的边界值梯度的量化参数,调整神经网络中每个网络层的权重、偏置参数和/或激活值的边界值。
在本申请的一个实施例中,若神经网络部署了卷积层,且卷积层之后部署了BN层。为了减少对BN层的量化,降低量化损失,在步骤S22之前,合并BN层与卷积层,得到合并网络层,其中,合并网络层的权重为BN层的激活值系数与卷积层的原始权重的乘积,合并网络层的偏置参数为卷积层的原始偏置参数与BN层的激活值偏置系数的和值。
本申请实施例中,在BN层中的计算方式如下:
Figure PCTCN2022143418-appb-000042
其中,y是BN层的输出数据,也可以称为输出激活值,x是BN层的输入数据,也可以称为输入激活值,α和β是预设系数,mean是激活值的均值,std是激活值的方差。
边缘计算设备对神经网络进行训练,在训练完成后,神经网络的BN层中的α、β、mean和std成为固定值。此时,公式(8)就相当于一个线性变换,也就是,公式(8)可以变换成如下公式:
Figure PCTCN2022143418-appb-000043
上述公式(9)中,α/std可以称为BN层的激活值系数。边缘计算设备将BN层的激活值系数直接与卷积层的原始权重相乘,可以得到合并网络层的权重。
上述公式(9)中,-(α×mean)/std+β为BN层的激活值偏置系数。边缘计算设备将BN层的激活值偏置系数直接与卷积层的原始偏置参数相加,可以得到合并网络层的偏置参数。
本申请实施例中提供的技术方案中,由于BN层中的激活值系数、以及激活值偏置系数是固定值,边缘计算设备将卷积层中的原始权重和原始偏置参数与BN层中的激活值系数、以及激活值偏置系数进行合并,相当于,边缘计算设备将BN层合并入该卷积层中。这样,神经网络对数据进行处理时,省略BN层的计算,降低了神经网络的计算量,扩大了神经网络的应用场景。
另外,边缘计算设备将BN层合并入该卷积层中。这种情况下,若边缘计算设备对神经网络的参数进行量化处理,以进一步降低神经网络的计算量,由于BN层合并入卷积层,边缘计算设备可以在不降低计算效率的同时,减少对BN层的量化处理,降低了量化损失,从而保证了神经网络所需的训练性能精度。
下面结合图6所示的神经网络的结构示意图,对本申请实施例提供的数据处理方法进行详细说明。图6中Q表示量化处理操作,a为输入数据或输出数据,W表示权重,da表示输入数据梯度或输出数据梯度,dW表示权重梯度,W buffern表示量化处理后的卷积参数。
前向计算部分:神经网络的输入数据a l-1在前向计算部分,经过量化处理操作后,结合同样经过量化处理的权重W l在卷积层进行卷积操作,得到该层的输出数据a l。边缘计算设备将a l作为下一网络层的输入数据,依次进行上述操作,直至在神经网络的输出层,得到神经网络的输出数据a n
反向计算部分:边缘计算设备将a n输入损失函数Loss E中,得到a n对应的反向计算部分中的输出数据梯度da n。边缘计算设备对da n进行量化处理之后,将量化处理后的da n与网络层的权重进行卷积处理,得到该网络层的输入数据对应的输入数据梯度。边缘计算设备将输入数据梯度作为下一网络层的输出数据对应的输出数据梯度,依次进行上述操作,直到在神经网络的输出层输出输入梯度。
其中,在神经网络的每一层中,都有梯度更新。在梯度更新部分,边缘计算设备根据神经网络的学习率、权重衰减参数和动量超参数,更新网络层的权重。
基于图6所示的实施例,本申请实施例对神经网络计算中涉及到的所有参数都进行了量化,实现了全网络低比特量化。这不仅可以对神经网络进行较大程度的压缩,同时可以提高神经网络的训练效率,并且保持所需的训练性能精度。
与上述数据处理方法对应,本申请实施例还提供了一种数据处理装置,如图7所示,该装置包括:
第一量化单元701,用于对神经网络的第一输入数据进行量化处理,得到第二输入数据;
确定单元702,用于根据第二输入数据和神经网络中每个网络层的所有正向计算参数的量化参数,确定神经网络的第一输出数据;
第二量化单元703,用于对第一输出数据进行量化处理,得到第二输出数据;
输入单元704,用于在训练神经网络时,将第二输出数据输入预设损失函数,获得第 一反向梯度;
第三量化单元705,用于对第一反向梯度进行量化处理,得到第二反向梯度;
调整单元706,用于根据第二反向梯度和神经网络中每个网络层的所有反向计算参数的量化参数,调整神经网络中的正向计算参数。
可选的,正向计算参数包括权重,上述数据处理装置还可以包括:
划分单元,用于针对神经网络中每个网络层,将该网络层的输出通道对应的权重划分为一组权重;
第四量化单元,用于基于每组权重中的最大值,分别对每组权重进行量化处理,得到每组权重对应的量化参数和第一量化步长。
可选的,第四量化单元,还可以用于:
针对每组权重对应的第一量化步长,按照定点步长表示法,分别对该第一量化步长进行量化处理,得到该第一量化步长对应的量化参数和第二量化步长。
可选的,正向计算参数包括偏置参数,上述数据处理装置还可以包括:
第五量化单元,用于针对神经网络中每个网络层,基于该网络层的多个偏置参数中的最大值,按照定点步长表示法,对多个偏置参数进行量化处理,得到偏置参数对应的量化参数和第三量化步长。
可选的,上述数据处理装置还可以包括:
归一化单元,用于对于每个网络层的输出数据,将该网络层的输出数据归一化至预设范围内;
第六量化单元,用于基于预设范围的边界值,按照定点步长表示法,对归一化后的输出数据进行量化处理,得到量化输出数据和第四量化步长;
其中,网络层的输出数据包括第一输出数据,当网络层的输出数据为第一输出数据时,量化输出数据为第二输出数据。
可选的,反向计算参数包括学习率、权重衰减参数、动量超参数、权重梯度、偏置参数梯度和激活值的边界值梯度中的一种或多种。
可选的,上述数据处理装置还可以包括:
第六量化单元,用于对预设损失函数中的所有参数进行量化处理,得到损失函数对应的量化参数;
输入单元704,具体可以用于将第二输出数据输入预设损失函数,以基于第二输出数据和损失函数对应的量化参数,获得第一反向梯度。
可选的,网络层包括卷积层和设置在卷积层之后的BN层;这种情况下,上述数据处理装置还可以包括:
合并单元,用于在根据第二输入数据和神经网络中每个网络层的所有正向计算参数的量化参数,确定神经网络的第一输出数据之前,将BN层与卷积层进行合并,得到合并网络层,合并网络层的权重为BN层的激活值系数与卷积层的原始权重的乘积,合并网络层的偏置参数为卷积层的原始偏置参数与BN层的激活值偏置系数的和值。
本申请实施例中提供的技术方案中,对神经网络中每个网络层的所有正向计算参数和反向计算参数均进行了量化,对神经网络进行了较大程度的压缩,基于正向计算参数和反 向计算参数全量化的神经网络,对输入数据进行处理,大大降低了神经网络的计算量,使得神经网络在计算资源或存储资源受限的情况下也能发挥很好的效用,扩大了神经网络的应用场景。
与上述数据处理方法对应,本申请实施例还提供了一种边缘计算设备,如图8所示,包括支持训练的处理器801和机器可读存储介质802,处理器801存储有神经网络,机器可读存储介质802存储有能够被处理器801执行的机器可执行指令,处理器801被机器可执行指令促使:实现上述任一数据处理方法步骤。
机器可读存储介质可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者固态硬盘Solid State Disk(SSD)等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、边缘计算设备、存储介质和计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (17)

  1. 一种数据处理方法,其特征在于,所述方法包括:
    对神经网络的第一输入数据进行量化处理,得到第二输入数据;
    根据所述第二输入数据和所述神经网络中每个网络层的所有正向计算参数的量化参数,确定所述神经网络的第一输出数据;
    对所述第一输出数据进行量化处理,得到第二输出数据;
    在训练所述神经网络时,将所述第二输出数据输入预设损失函数,获得第一反向梯度;
    对所述第一反向梯度进行量化处理,得到第二反向梯度;
    根据所述第二反向梯度和所述神经网络中每个网络层的所有反向计算参数的量化参数,调整所述神经网络中的正向计算参数。
  2. 根据权利要求1所述的方法,其特征在于,所述正向计算参数包括权重,所述方法还包括:
    针对所述神经网络中每个网络层,将该网络层的输出通道对应的权重划分为一组权重;
    基于每组权重中的最大值,分别对每组权重进行量化处理,得到每组权重对应的量化参数和第一量化步长。
  3. 根据权利要求2所述的方法,其特征在于,所述方法还包括:
    针对每组权重对应的第一量化步长,按照定点步长表示法,分别对该第一量化步长进行量化处理,得到该第一量化步长对应的量化参数和第二量化步长。
  4. 根据权利要求1所述的方法,其特征在于,所述正向计算参数包括偏置参数,所述方法还包括:
    针对所述神经网络中每个网络层,基于该网络层的多个偏置参数中的最大值,按照定点步长表示法,对多个偏置参数进行量化处理,得到偏置参数对应的量化参数和第三量化步长。
  5. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    对于每个网络层的输出数据,将该网络层的输出数据归一化至预设范围内;
    基于预设范围的边界值,按照定点步长表示法,对归一化后的输出数据进行量化处理,得到量化输出数据和第四量化步长;
    其中,所述网络层的输出数据包括所述第一输出数据,当所述网络层的输出数据为所述第一输出数据时,所述量化输出数据为所述第二输出数据。
  6. 根据权利要求1所述的方法,其特征在于,所述反向计算参数包括学习率、权重衰减参数、动量超参数、权重梯度、偏置参数梯度和激活值的边界值梯度中的一种或多种。
  7. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    对所述预设损失函数中的所有参数进行量化处理,得到损失函数对应的量化参数;
    所述将所述第二输出数据输入预设损失函数,获得第一反向梯度的步骤,包括:
    将所述第二输出数据输入预设损失函数,以基于所述第二输出数据和所述损失函数对应的量化参数,获得第一反向梯度。
  8. 根据权利要求1所述的方法,其特征在于,所述网络层包括卷积层和设置在所述卷积层之后的批标准化BN层;
    在根据所述第二输入数据和所述神经网络中每个网络层的所有正向计算参数的量化参数,确定所述神经网络的第一输出数据之前,所述方法还包括:
    将所述BN层与所述卷积层进行合并,得到合并网络层,所述合并网络层的权重为所述BN层的激活值系数与所述卷积层的原始权重的乘积,所述合并网络层的偏置参数为所述卷积层的原始偏置参数与所述BN层的激活值偏置系数的和值。
  9. 一种数据处理装置,其特征在于,所述装置包括:
    第一量化单元,用于对神经网络的第一输入数据进行量化处理,得到第二输入数据;
    确定单元,用于根据所述第二输入数据和所述神经网络中每个网络层的所有正向计算参数的量化参数,确定所述神经网络的第一输出数据;
    第二量化单元,用于对所述第一输出数据进行量化处理,得到第二输出数据;
    输入单元,用于在训练所述神经网络时,将所述第二输出数据输入预设损失函数,获得第一反向梯度;
    第三量化单元,用于对所述第一反向梯度进行量化处理,得到第二反向梯度;
    调整单元,用于根据所述第二反向梯度和所述神经网络中每个网络层的所有反向计算参数的量化参数,调整所述神经网络中的正向计算参数。
  10. 根据权利要求9所述装置,其特征在于,所述正向计算参数包括权重,所述装置还包括:
    划分单元,用于针对所述神经网络中每个网络层,将该网络层的输出通道对应的权重划分为一组权重;
    第四量化单元,用于基于每组权重中的最大值,分别对每组权重进行量化处理,得到每组权重对应的量化参数和第一量化步长。
  11. 根据权利要求10所述装置,其特征在于,所述第四量化单元,还用于:
    针对每组权重对应的第一量化步长,按照定点步长表示法,分别对该第一量化步长进行量化处理,得到该第一量化步长对应的量化参数和第二量化步长。
  12. 根据权利要求9所述装置,其特征在于,所述正向计算参数包括偏置参数,所述装置还包括:
    第五量化单元,用于针对所述神经网络中每个网络层,基于该网络层的多个偏置参数中的最大值,按照定点步长表示法,对多个偏置参数进行量化处理,得到偏置参数对应的量化参数和第三量化步长。
  13. 根据权利要求9所述装置,其特征在于,所述装置还包括:
    归一化单元,用于对于每个网络层的输出数据,将该网络层的输出数据归一化至预设范围内;
    第六量化单元,用于基于预设范围的边界值,按照定点步长表示法,对归一化后的输出数据进行量化处理,得到量化输出数据和第四量化步长;
    其中,所述网络层的输出数据包括所述第一输出数据,当所述网络层的输出数据为所述第一输出数据时,所述量化输出数据为所述第二输出数据。
  14. 根据权利要求9所述装置,其特征在于,所述反向计算参数包括学习率、权重衰减参数、动量超参数、权重梯度、偏置参数梯度和激活值的边界值梯度中的一种或多种。
  15. 根据权利要求9所述装置,其特征在于,所述装置还包括:
    第六量化单元,用于对所述预设损失函数中的所有参数进行量化处理,得到损失函数对应的量化参数;
    所述输入单元,具体用于将所述第二输出数据输入预设损失函数,以基于所述第二输出数据和所述损失函数对应的量化参数,获得第一反向梯度。
  16. 根据权利要求9所述装置,其特征在于,所述网络层包括卷积层和设置在所述卷积层之后的批标准化BN层;所述装置还包括:
    合并单元,用于在根据所述第二输入数据和所述神经网络中每个网络层的所有正向计算参数的量化参数,确定所述神经网络的第一输出数据之前,将所述BN层与所述卷积层进行合并,得到合并网络层,所述合并网络层的权重为所述BN层的激活值系数与所述卷积层的原始权重的乘积,所述合并网络层的偏置参数为所述卷积层的原始偏置参数与所述BN层的激活值偏置系数的和值。
  17. 一种边缘计算设备,其特征在于,包括支持训练的处理器,所述处理器存储有神经网络,所述神经网络为基于权利要求1-8任一所述的方法步骤生成的网络。
PCT/CN2022/143418 2021-12-31 2022-12-29 一种数据处理方法、装置及边缘计算设备 WO2023125815A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111671612.XA CN116432735A (zh) 2021-12-31 2021-12-31 一种数据处理方法、装置及边缘计算设备
CN202111671612.X 2021-12-31

Publications (1)

Publication Number Publication Date
WO2023125815A1 true WO2023125815A1 (zh) 2023-07-06

Family

ID=86998015

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/143418 WO2023125815A1 (zh) 2021-12-31 2022-12-29 一种数据处理方法、装置及边缘计算设备

Country Status (2)

Country Link
CN (1) CN116432735A (zh)
WO (1) WO2023125815A1 (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200134448A1 (en) * 2018-10-31 2020-04-30 Google Llc Quantizing neural networks with batch normalization
WO2021179587A1 (zh) * 2020-03-10 2021-09-16 北京迈格威科技有限公司 神经网络模型量化方法、装置、电子设备及计算机可读存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200134448A1 (en) * 2018-10-31 2020-04-30 Google Llc Quantizing neural networks with batch normalization
WO2021179587A1 (zh) * 2020-03-10 2021-09-16 北京迈格威科技有限公司 神经网络模型量化方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN116432735A (zh) 2023-07-14

Similar Documents

Publication Publication Date Title
US11275986B2 (en) Method and apparatus for quantizing artificial neural network
CN111353579B (zh) 利用反向传播为深度神经网络选择量化参数的方法和系统
CN109002889B (zh) 自适应迭代式卷积神经网络模型压缩方法
US10491239B1 (en) Large-scale computations using an adaptive numerical format
US20210027195A1 (en) Systems and Methods for Compression and Distribution of Machine Learning Models
CN112149797A (zh) 神经网络结构优化方法和装置、电子设备
CN110309904B (zh) 一种神经网络压缩方法
KR102092634B1 (ko) Ldpc 부호 복호기 및 복호 방법
Chmiel et al. Logarithmic unbiased quantization: Simple 4-bit training in deep learning
WO2023125815A1 (zh) 一种数据处理方法、装置及边缘计算设备
CN110491398B (zh) 编码方法、编码装置以及记录介质
WO2023125785A1 (zh) 一种数据处理、网络训练方法、电子设备及存储介质
CN116634162A (zh) 率失真优化的图像压缩神经网络训练后量化方法
WO2020177863A1 (en) Training of algorithms
CN113554097B (zh) 模型量化方法、装置、电子设备和存储介质
JP2019212111A (ja) 分散学習方法及び分散学習装置
US20210174815A1 (en) Quantization method of latent vector for audio encoding and computing device for performing the method
CN114841325A (zh) 神经网络模型的数据处理方法、介质及电子设备
CN115705486A (zh) 量化模型的训练方法、装置、电子设备和可读存储介质
CN114372553A (zh) 一种神经网络的量化方法及装置
US11843397B2 (en) Compression of data that exhibits mixed compressibility
CN109766993B (zh) 一种适合硬件的卷积神经网络压缩方法
CN113505049A (zh) 基于萤火虫算法与bp神经网络的云计算平台负载预测方法
CN116472538A (zh) 用于量化神经网络的方法和系统
JP3203609B2 (ja) ベクトル量子化器の設計方法およびベクトル量子化器

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22915064

Country of ref document: EP

Kind code of ref document: A1