CN109740737A - 卷积神经网络量化处理方法、装置及计算机设备 - Google Patents
卷积神经网络量化处理方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN109740737A CN109740737A CN201811644575.1A CN201811644575A CN109740737A CN 109740737 A CN109740737 A CN 109740737A CN 201811644575 A CN201811644575 A CN 201811644575A CN 109740737 A CN109740737 A CN 109740737A
- Authority
- CN
- China
- Prior art keywords
- weight
- bit position
- value
- convolutional layer
- position accuracy
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Landscapes
- Image Analysis (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请提供了一种卷积神经网络量化处理方法、装置及计算机设备,本申请采用双精度量化处理方法,来提高量化后的准确率,具体的,获取卷积神经网络中卷积层的最大权值及最大偏差量,分别计算最大权值的动态比特位精度值,及最大偏差量的动态比特位精度值,之后,利用这两个动态比特位精度值实现卷积计算,由于本申请从卷积层的权值和偏差值两方面进行量化,避免了单精度量化,容易导致权值或偏差值精度损失,影响量化准确性的情况发生。
Description
技术领域
本申请主要涉及神经网络应用领域,更具体地说是涉及一种卷积神经网络量化处理方法、装置及计算机设备。
背景技术
近年来,AI(Artificial Intelligence,人工智能)的应用已经渗透到很多方面,如人脸识别、游戏对战、图像处理、仿真模拟等等,虽然提高了处理准确性,但由于神经网络包含很多层和大量参数,需要非常大的计算代价和存储空间。
对此,技术人员提出了神经网络压缩处理方案,即通过改变网络结构或利用量化、近似的方法来减少网络的参数或存储空间,在不大影响神经网络性能的情况下,降低网络代价和存储空间。
其中,量化的压缩方法是将原本具有无限种可能的网络参数,约束到少数几种网络参数中,再对这些网络参数进行重用,达到减少网络存储开销的目的。然而,目前神经网络的量化是采用预设的精度值,同时对卷积层的权值和偏差值进行量化,往往无法兼顾权值和偏差值这两个精度要求,会使得量化后的偏差量或权值精度损失较大,导致量化准确性较低。
发明内容
有鉴于此,本申请提供了一种卷积神经网络量化处理方法、装置及计算机设备,采用双精度量化方式,分别实现了对各卷积层的权值和偏差值的量化,同时满足了卷积层的权值和偏差值这两个参数的精度要求,提高了量化准确性。
为了实现上述发明目的,本申请提供了以下技术方案:
本申请提供了一种卷积神经网络量化处理方法,所述方法包括
获取卷积神经网络中各卷积层的最大权值及最大偏差量;
计算所述最大权值的第一动态比特位精度值,及最大偏差量的第二动态比特位精度值,所述第一动态比特位精度值与所述第二动态比特位精度值不同;
利用各卷积层对应的所述第一动态比特位精度值和所述第二动态比特位精度值,对相应卷积层的权值和偏差量进行量化;
基于各卷积层中量化后的权值及量化后的偏差量,得到所述卷积神经网络的卷积结果。
可选的,所述利用各卷积层对应的所述第一动态比特位精度值和所述第二动态比特位精度值,对相应卷积层的权值和偏差量进行量化,包括:
按照浮点数-定点数转换规则,以所述第一动态比特精度值为阶码,将相应卷积层中的浮点数格式的各权值转换为定点数格式的权值;
按照所述浮点数-定点数转换规则,以所述第二动态比特精度值为阶码,将相应卷积层中的浮点数格式的各偏差值转换为定点数格式的偏差值。
可选的,所述基于各卷积层中量化后的权值及量化后的偏差量,得到所述卷积神经网络的卷积结果,包括:
基于所述第一动态比特位精度值,对相应卷积层中量化后的各权值进行移位处理,并基于所述第二动态比特位精度值,对相应卷积层中量化后的各偏差量进行移位处理;
对各层卷积层中移位处理后的权值求和,得到相应卷积层的总权值,并对各层卷积层中移位处理后的偏差值进行求和,得到相应卷积层的总偏差值;
对同一层卷积层的总权值和总偏差值进行求和,得到相应卷积层的卷积结果。
可选的,所述基于所述第一动态比特位精度值,对相应卷积层中量化后的各权值进行移位处理,包括:
如果所述第一动态比特位精度值大于零,将相应卷积层中的各权值向第一方向移动所述第一动态比特位精度值比特位;
如果第一动态比特位精度值小于零,将相应卷积层中的各权值向第二方向移动所述第一动态比特位精度值比特位,所述第二方向与所述第一方向是移动方向相反的两个移动方向;
所述基于所述第二动态比特位精度值,对相应卷积层中量化后的各偏差量进行移位处理,包括:
如果所述第二动态比特位精度值大于零,将相应卷积层中的各偏差值向所述第一方向移动所述第二动态比特位精度值比特位;
如果第二动态比特位精度值小于零,将相应卷积层中的各偏差值向所述第二方向移动所述第二动态比特位精度值比特位。
可选的,所述计算所述最大权值的第一动态比特位精度值,及最大偏差量的第二动态比特位精度值,包括:
获取所述最大权值的整数值,以及所述最大偏差值的整数值;
计算预设比特值与所述最大权值的整数值的差值,得到第一动态比特位精度值;
计算所述预设比特值与所述最大偏差值的整数值的差值,得到第二动态比特位精度值。
可选的,所述方法还包括:
验证所述最大权值与最大偏差量是否相匹配;
如果不匹配,执行步骤所述计算所述最大权值的第一动态比特位精度值,及最大偏差量的第二动态比特位精度值。
可选的,所述验证所述最大权值与最大偏差量是否相匹配,包括:
对所述最大权值的整数值与所述最大偏差值的整数值进行比较;
所述不匹配是指所述最大权值的整数值与所述最大偏差值的整数值不相同。
可选的,所述方法还包括:
获取样本数据;
将所述样本数据输入卷积神经网络,并利用反向传播算法,对所述样本数据在所述卷积神经网络中进行传输计算,确定所述卷积神经网络中各层卷积层的权值和偏差值。
本申请还提供了一种卷积神经网络量化处理装置,所述装置包括
数据获取模块,用于获取卷积神经网络中各卷积层的最大权值及最大偏差量;
双精度计算模块,用于计算所述最大权值的第一动态比特位精度值,及最大偏差量的第二动态比特位精度值,所述第一动态比特位精度值与所述第二动态比特位精度值不同;
量化模块,用于利用各卷积层对应的所述第一动态比特位精度值和所述第二动态比特位精度值,对相应卷积层的权值和偏差量进行量化;
卷积计算模块,用于基于各卷积层中量化后的权值及量化后的偏差量,得到所述卷积神经网络的卷积结果。
本申请还提供了一种计算机设备,所述计算机设备包括:
通信接口;
存储器,用于储存实现如上述的卷积神经网络量化处理方法的程序;
处理器,用于加载并执行所述存储器存储的程序,以实现如上述的卷积神经网络量化处理方法的各个步骤。
由此可见,与现有技术相比,本申请提供了一种卷积神经网络量化处理方法、装置及计算机设备,本申请采用双精度量化处理方法,来提高量化后的准确率,具体的,获取卷积神经网络中卷积层的最大权值及最大偏差量,分别计算最大权值的动态比特位精度值,及最大偏差量的动态比特位精度值,之后,利用这两个动态比特位精度值实现卷积计算,由于本申请从卷积层的权值和偏差值两方面进行量化,避免单方面量化,导致另一方面精度的损失,提高了量化准确率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1a为卷积神经网络中卷积层的权值分布示意图;
图1b为卷积神经网络中卷积层的偏差值分布示意图;
图2为本申请实施例提供的一种卷积神经网络量化处理方法的流程示意图;
图3为本申请实施例提供的另一种卷积神经网络量化处理方法的流程示意图;
图4为本申请实施例提供的又一种卷积神经网络量化处理方法的流程示意图;
图5为本申请实施例提供的一种卷积神经网络量化处理装置的结构示意图;
图6为本申请实施例提供的另一种卷积神经网络量化处理装置的结构示意图;
图7为本申请实施例提供的又一种卷积神经网络量化处理装置的结构示意图;
图8为本申请实施例提供的一种计算机设备的硬件结构示意图。
具体实施方式
卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,人工神经元可以响应周围单元,进行大型图像处理,卷积神经网络可以包括卷积层和池化层,本申请主要对该卷积层的量化处理过程进行优化处理。
其中,每一层的卷积层通常由若干卷积单元组成,每个卷积单元的参数可以通过反向传播算法最佳化得到,卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征,如边缘、线条和角等层级的特征,更多层的网络能从低级特征中迭代提取更复杂的特征。
在实际应用中,如利用卷积神经网络对图像数据进行处理的应用中,为为了减少计算量,提高处理速度,通常会对卷积神经网络进行压缩处理,本申请主要对利用量化方式实现压缩处理的方法进行说明。
关于卷积神经网络的量化处理,主要是针对卷积层的参数的量化处理,具体是针对每一层的卷积层的权值weight和偏差量bias这两个参数进行量化处理,通常情况,经过反向传播计算后,该权值和偏差量可以根据,以满足数据处理要求。
发明人注意到,现有技术通常是采用单精度,实现对卷积层的权值和偏差量的量化处理,即对每层的卷积层的权重和偏差量进行量化处理时,采用预设的固定动态比特位精度值m实现,但是,参照图1a所示的权值的分布图,图1b所示的偏差量的分布图,这卷积层的权值和偏差量这两个参数的分布特点并不相同。若主要针对卷积层的权值来设置m,那么,量化后偏差量的精度损失会比较多,且量化后的卷积神经网络模型的正确率会有多余的损失。
可见,现有这种针对权值和偏差量,采用相同的动态比特位精度值m,实现卷积层的量化处理,无法兼顾卷积层这两个参数的精度要求,将会降低量化准确率,进而降低卷积神经网络对输入数据进行处理,得到的输出结果的准确性。
为了改善上述问题,发明人提出,根据实际场景的需求,针对卷积层的权值和偏差值这两个参数,分别配置对应的动态比特位精度值,从而使这两个参数利用各自的动态比特位精度值进行量化处理,保证了这两个参数精度,提高了卷积层的量化准确率,进而提高了卷积神经网络对输入数据的处理精度及可靠性。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图2,为本申请实施例提供的一种卷积神经网络量化处理方法的流程示意图,本申请提出的是适用于卷积神经网络的卷积层的,一种新的量化处理方法,该方法可以适用于计算机设备,如终端或服务器等,如图2所示,该方法可以包括但并不局限于以下步骤:
步骤S11,获取卷积神经网络中各卷积层的最大权值及最大偏差量;
在实际应用中,经过卷积神经网络的训练后,可以得到该卷积神经网络中每一层卷积层的每个卷积核的权值和偏差量,之后,本实施例可以从每层卷积层的多个权值中选择出最大权重,并从该层卷积层的多个偏差量中选择出最大偏差量,以便据此计算这两个参数进行量化,各自所需要的动态比特位精度值。
其中,卷积神经网络的训练原理通常为:利用链式求导,计算损失函数对每个权值的偏导数(梯度),然后根据梯度下降公式更新权值,训练算法仍然是利用反向传播算法。基于此,本申请可以在获得应用卷积神经网络的应用场景下的样本数据,如图像数据等,可以将该样本数据输入该卷积神经网络,并利用反向传播算法,对样本数据在所述卷积神经网络中进行传输计算,得到卷积神经网络中各层卷积层的权值和偏差值。
需要说明,本申请对在不同应用场景下,如何利用样本数据进行神经网络训练,得到各卷积层中的至少一个权值和至少一个偏差值的训练过程不作限定。对于同一应用场景,训练得到神经网络模型,即确定各卷积层中的权值和偏差值后,并按照本实施例提供的量化方法,完成对卷积层的权值和偏差量化后,对该应用场景的不同输入数据,可以直接利用量化后的权值和偏差值进行卷积计算,之后,经过卷积神经网络的其他层的处理,得到所需的预测数据,不用每次获取该应用场景下的数据,都重新训练卷积神经网络模型及量化处理。
而对于不同应用场景下的输入数据,需要重新进行卷积神经网络模型的训练,并基于训练得到的卷积神经网络模型,完成对卷积层的权值和偏差值的量化处理,优化该卷积神经网络模型,以提高对该应用场景下的输入数据的处理速度和准确性。
步骤S12,计算最大权值的第一动态比特位精度值,及最大偏差量的第二动态比特位精度值;
本实施例中,步骤S12中的第一动态比特位精度值与第二动态比特位精度值不同,以保证卷积层的权值量化的精度,以及偏差量量化的精度。
需要说明,利用本实施例提供的量化处理方法完成的卷积计算,实际上是将浮点数据转换为定点数据,从而使卷积神经网络对卷积层输出结果的后续处理,是对定点数据继续进行处理,显然,这相对传统方案直接对浮点数据进行处理,减小了计算量,提高了处理效率。
可选的,若获取的卷积层的最大权值为Wmax,最大偏差量为Bmax,本实施例可以利用以下公式,分别计算得到这两个参数各自对应的动态比特位精度值m1和m2。
m1=8-ceil(log2Wmax) (1)
m2=8-ceil(log2Bmax) (2)
其中,ceil()函数表示返回大于或等于指定表达式(即log2Wmax或log-2Bmax)的最小整数,返回的数值是双精度浮点类型,log2()表示以2为底的对数函数,8可以表示预设比特值8bit,即要求得到8位数。
由上述公式(1)和公式(2)可以得知,本实施例可以通过ceil(log2Wmax)这种计算方式,得到Wmax的整数部分,由预设比特值减去该整数部分,可以得到相应的小数部分,由此可见,上述m1和m2实际上可以是最大权值的小数部分,及最大偏差值的小数部分。
本实施例中,对于卷积神经网络的每一层的卷积层,可以按照上述方式计算出该层卷积层的权值的第一动态比特位精度值m1,及偏差量的第二动态比特位精度值m2,通常情况下,各卷积层的权值的第一动态比特位精度值m1、偏差量的第二动态比特位精度值m2是不同的,但是每一层卷积层内部的各卷积核的权值的第一动态比特位精度值m1、偏差量的第二动态比特位精度值m2是相同的。
步骤S13,利用各卷积层对应的第一动态比特位精度值和第二动态比特位精度值,对相应卷积层的权值和偏差量进行量化;
可选的,本实施例步骤S13的量化处理可以是将浮点数转换为定点数,以提高数据处理速度。
在实际应用中,浮点数格式可以为:V=(-1)s×M×2E。定点数可以由0、1表示。
其中,s表示符号位,当s=0,V为正数;当s=1,V为负数;M表示尾数,2>M>=1;E表示阶码。
基于此,上述步骤S13可以按照以下公式,对权值W和偏差值B进行量化处理,将将浮点数格式的权值W和偏差值B,转换成定点数格式的权值W和偏差值B。其中,浮点数与定点数的转换规则可以是以下公式:
Wq=round(W*2m1) (3)
Bq=round(B*2m2) (4)
上述公式(3)和公式(4)中,round()函数可以表示四舍五入运算,W可以表示量化前的权值,B可以表示量化前的偏差值;Wq可以表示表示量化后的权值,Bq可以表示量化后的偏差值。
步骤S14,基于各卷积层中量化后的权值及量化后的偏差量,得到卷积神经网络的卷积结果。
在本实施例中,对各卷积层中的各权值和偏差值进行量化处理后,将利用量化后的权值和量化后的偏差值进行移位叠加处理,得到相应卷积层的卷积结果,且前一层卷积层得到的卷积结果可以传输至下一层卷积层,继续按照本实施例提供的方式进行量化处理,得到该层卷积层的卷积结果,本申请对各层卷积层的卷积结果在整个卷积神经网络中的运算不做限定,可以基于卷积神经网络的工作原理确定,本实施不做详述。
综上所述,本实施例采用双精度方式,对每层卷积层的权值和偏差值进行量化,充分考虑到了各层卷积层自身具有的权值和偏差值的特定,这样,利用各层卷积层的双精度,对应实现对该层卷积层的各权值和各偏差值的量化处理,解决了现有技术利用预设固定的单精度,对每层卷积层的权值和偏差值进行量化,无法兼顾权值和偏差值两者的精度,容易造成一参数的精度损失,降低量化精度,进而影响卷积神经网络的输出结果的准确的技术问题。
基于上文实施例描述的卷积神经网络量化处理方法,即采用双精度方式,实现对各卷积层的权值和偏差值的量化处理方式的分析,可知,利用这种量化处理方式的卷积神经网络,对具体应用场景下的输入数据进行处理时,能够提高数据处理速度以及输出结果的准确性。
如在图像分类应用场景中,由于本申请按照上述实施例描述的量化处理方式,实现了对卷积神经网络中卷积层的卷积计算方式的优化,即提高了卷积计算的效率和准确性,利用这种结构的卷积神经网络对输入数据进行处理,能够缩短计算时间,满足该应用场景下对数据处理的实时性要求。
目前的FPGA(Field-Programmable Gate Array),即现场可编程门阵列)通常具有可重构和可制定的特点,已被广泛应用到各领域的服务平台上,在用户访问该服务平台时,利用FPGA的特点,满足用户对数据访问及时性和可靠性要求。
为了进一步提高了服务平台的数据处理速度及反馈数据的可靠性,发明人提出将本申请公开的卷积神经网络量化处理方法应用到该服务平台中,也就是说,可以将该服务平台中实现数据处理的算法更改为卷积神经网络,并按照本申请提供的卷积神经网络量化处理方法,对其存储的卷积神经网络的各卷积层的权值和偏差量进行量化处理,来优化卷积层的卷积计算方法。这样,在用户将待处理数据(如图像数据)发送至服务平台,该服务平台中的卷积神经网络将会利用优化后的卷积层结构,对其进行处理,提高对待处理数据的处理速度,并保证输出数据的准确性,从而缩短了用户等待服务平台反馈结果的时间,提高了用户体验。
需要说明,关于上述服务平台并不局限于由FPGA器件搭建,可以根据实际需要确定。
参照图3,为本申请实施例提供的另一种卷积神经网络量化处理方法的流程示意图,本实施例是对上述实施例描述的方法的一种具体实现方式,但并不局限于本实施例描述的这种实现方式,如图3所示,该方法可以包括但并不局限于以下步骤:
步骤S21,获取卷积神经网络中每一层卷积层包含的各权值及各偏差值;
其中,步骤S21中的卷积神经网络可以是对某一应用场景下的样本数据进行训练后,得到的训练好的卷积神经网络模型,本实施例可以从训练好的卷积神经网络模型中,得到各卷积层中的权值和偏差值。本申请对卷积神经网络模型的训练过程不作详述。
步骤S22,确定每一层卷积层包含的最大权值及最大偏差值;
步骤S23,针对每一层卷积层,获取最大权值的整数值以及最大偏差值的整数值;
步骤S24,计算预设比特值与最大权值的整数值的差值,得到第一动态比特位精度值;计算该预设比特值与所述最大偏差值的整数值的差值,得到第二动态比特位精度值。
关于步骤S23和步骤S24的计算过程可以参照上述公式(1)和公式(2)的计算过程,本实施例不再详述。
可见,本实施例可以按照步骤S23和步骤S24的方式,计算得到每一层卷积层的权值的第一动态比特位精度值和偏差值的第二动态比特位精度值。
步骤S25,按照浮点数-定点数转换规则,以第一动态比特精度值为阶码,将相应卷积层中的浮点数格式的各权值转换为定点数格式的权值,得到该卷积层量化后的权值;
步骤S26,按照浮点数-定点数转换规则,以第二动态比特精度值为阶码,将相应卷积层中的浮点数格式的各偏差值转换为定点数格式的偏差值,得到该卷积层量化后的偏差值;
需要说明,关于对每一层卷积层的权值和偏差值进行的双精度量化过程,并不局限于本实施例描述这种处理方式。本实施例仅以上述公式(3)和公式(4)的量化处理方式为例进行说明。
步骤S27,基于第一动态比特位精度值,对相应卷积层中量化后的各权值进行移位处理,并基于第二动态比特位精度值,对相应卷积层中量化后的各偏差量进行移位处理;
可选的,本实施例可以基于所得到的第一动态比特位精度值是正数还是负数,来确定权值小数点位的移动方向,通常情况下,如果第一动态比特位精度值大于零,可以将相应卷积层中的各权值向第一方向移动第一动态比特位精度值比特位;如果第一动态比特位精度值小于零,将相应卷积层中的各权值向第二方向移动所述第一动态比特位精度值比特位,第二方向与第一方向是移动方向相反的两个移动方向。
同时,如果第二动态比特位精度值大于零,将相应卷积层中的各偏差值向第一方向移动第二动态比特位精度值比特位;如果第二动态比特位精度值小于零,可以将相应卷积层中的各偏差值向第二方向移动第二动态比特位精度值比特位。
在本实施例实际应用中,在完成上述权值量化、偏差值的量化处理后,可以将相应卷积层的各权值的小数点向右移m1位,将相应卷积层的各偏差值的小数点向右移动m2位,从而提高卷积层中权值和偏差值的精度,即减少小数点位数。
步骤S28,对各层卷积层中移位处理后的权值求和,得到相应卷积层的总权值,并对各层卷积层中移位处理后的偏差值进行求和,得到相应卷积层的总偏差值;
步骤S29,对同一层卷积层的总权值和总偏差值进行求和,得到相应卷积层的卷积结果。
需要说明,本申请对卷积神经网络中各卷积层如何利用各自的权值和偏差值进行卷积运算,得到相应卷积层的卷积结果的实现方法不做限定,且对卷积结果在整个卷积神经网络中运算不做详述。
综上所述,本实施例得到训练好的卷积神经网络模型后,可以从中得到各卷积层包含的权值和偏差值,之后,获取各卷积层中最大权值的精度和最大偏差值的精度,即确定各卷积层的第一动态比特位精度值m1和第二动态比特位精度值m2,进而利用这两个不同精度,分别实现对相应卷积层中各权值及各偏差值的量化处理,得到定点数格式的权值和偏差值,之后,在进行每层卷积层的卷积运算时,本实施例是对定点数进行运算,相对于浮点数运算,减少了运算量,提高了卷积计算效率。
且,本实施例在对各卷积层的权值和偏差值进行量化时,是利用双精度进行量化处理,解决了现有单精度量化处理,往往会造成偏差值或权值的精度损失的技术问题,提高了量化准确性,进而提高了卷积计算效率,也提高了卷积神经网络的输出结果的准确性和计算效率。
在上述各实施例的基础上,对卷积层的权值和偏差值进行量化之前,本申请可以先判断是否需要采用双精度量方式,具体可以采用以下方式进行判断,但并不局限于此。因此,参照图4所示的一种卷积神经网络量化处理方法的流程示意图,该方法可以包括:
步骤S31,获取卷积神经网络中各层卷积层的权值和偏差值;
步骤S32,确定各层卷积层的最大权值和最大偏差值;
步骤S33,获取各层卷积层的最大权值的整数值,及最大偏差值的整数值;
步骤S34,判断该最大权值的整数值与最大偏差值的整数值是否相同,如果否,进入步骤S35;如果是,执行步骤S36;
步骤S35,利用双精度方式,对相应卷积层的权值和偏差值进行量化;
步骤S36,利用预设动态比特位精度值,对相应卷积层的权值和偏差值进行量化;
关于步骤S36的具体实现过程可以参照上述实施例相应部分的描述。
步骤S37,利用各卷积层中量化后的权值和量化后的偏差值,得到相应卷积层的卷积结果。
综上,本实施例可以在确定各卷积层的权值和偏差值的精度,来确定是采用双精度方式,还是采用单精度方式实现各卷积层的权值和偏差值得量化处理,以保证各卷积层的权值和偏差值各自的精度要求,保证量化准确性,且提高了量化方式灵活性。
参照图5,为本申请实施例提供的一种卷积神经网络量化处理装置的结构示意图,该装置可以应用于计算机设备,如图5所示,该装置可以包括:
数据获取模块11,用于获取卷积神经网络中各卷积层的最大权值及最大偏差量;
双精度计算模块12,用于计算所述最大权值的第一动态比特位精度值,及最大偏差量的第二动态比特位精度值,所述第一动态比特位精度值与所述第二动态比特位精度值不同;
可选的,参照图6,该双精度计算模块12可以包括:
整数获取单元121,用于获取所述最大权值的整数值,以及所述最大偏差值的整数值;
精度值计算单元123,用于计算预设比特值与所述最大权值的整数值的差值,得到第一动态比特位精度值;计算所述预设比特值与所述最大偏差值的整数值的差值,得到第二动态比特位精度值。
量化模块13,用于利用各卷积层对应的所述第一动态比特位精度值和所述第二动态比特位精度值,对相应卷积层的权值和偏差量进行量化;
可选的,如图7所示,该量化模块13可以包括:
第一转换单元131,用于按照浮点数-定点数转换规则,以所述第一动态比特精度值为阶码,将相应卷积层中的浮点数格式的各权值转换为定点数格式的权值;
第二转换单元132,用于按照所述浮点数-定点数转换规则,以所述第二动态比特精度值为阶码,将相应卷积层中的浮点数格式的各偏差值转换为定点数格式的偏差值。
卷积计算模块14,用于基于各卷积层中量化后的权值及量化后的偏差量,得到所述卷积神经网络的卷积结果。
可选的,参照图7,该卷积计算模块14可以包括:
第一移位处理单元141,用于基于所述第一动态比特位精度值,对相应卷积层中量化后的各权值进行移位处理;
第二移位处理单元142,用于基于所述第二动态比特位精度值,对相应卷积层中量化后的各偏差量进行移位处理;
卷积计算单元143,用于对各层卷积层中移位处理后的权值求和,得到相应卷积层的总权值,对各层卷积层中移位处理后的偏差值进行求和,得到相应卷积层的总偏差值,并对同一层卷积层的总权值和总偏差值进行求和,得到相应卷积层的卷积结果。
可选的,上述第一移位处理单元141可以包括:
第一移位单元,用于在第一动态比特位精度值大于零的情况下,将相应卷积层中的各权值向第一方向移动所述第一动态比特位精度值比特位;
第二移位单元,用于在第一动态比特位精度值小于零的情况下,将相应卷积层中的各权值向第二方向移动所述第一动态比特位精度值比特位,所述第二方向与所述第一方向是移动方向相反的两个移动方向;
相应地,第二移位处理单元142可以包括:
第三移位单元,用于在第二动态比特位精度值大于零的情况下,将相应卷积层中的各偏差值向所述第一方向移动所述第二动态比特位精度值比特位;
第四移位单元,用于在第二动态比特位精度值小于零的情况下,将相应卷积层中的各偏差值向所述第二方向移动所述第二动态比特位精度值比特位。
作为本申请另一可选实施例,在上述实施例的基础上,该装置还可以包括:
验证模块,用于验证所述最大权值与最大偏差量是否相匹配,如果不匹配,触发执双精度计算模块计算所述最大权值的第一动态比特位精度值,及最大偏差量的第二动态比特位精度值。
可选的,该验证模块,可以包括:
计较单元,用于对所述最大权值的整数值与所述最大偏差值的整数值进行比较;
第一确定单元,用于在比较结果为最大权值的整数值与最大偏差值的整数值不相同,可以确定该最大权值与最大偏差量不匹配;
第二确定单元,用于在比较结果为最大权值的整数值与最大偏差值的整数值相同,可以确定该最大权值与最大偏差量匹配。
可选的,上述装置还可以包括:
样本数据获取模块,用于获取样本数据;
模型训练模块,用于将所述样本数据输入卷积神经网络,并利用反向传播算法,对所述样本数据在所述卷积神经网络中进行传输计算,确定所述卷积神经网络中各层卷积层的权值和偏差值。
需要说明,关于上述装置中的各功能模块实现相应功能的过程,可以参照上述方法实施例相应部分的描述。
综上,本实施例能够采用双精度方式,实现对每层卷积层的权值和偏差值的量化处理,保证了权值精度要求和偏差值精度要求,提高了量化精度,进而提高了卷积神经网络输出结果的准确性及计算效率。
参照图8,为本申请实施例提供的一种计算机设备的硬件结构示意图,该计算机设备可以是服务器或电脑等,如图7所示,该计算机设备可以包括:通信接口21、存储器22和处理器23,其中:
通信接口21、存储器22和处理器23的数量可以为至少一个,且通信接口21、存储器22和处理器23相互之间可以通过通信总线进行通信。
通信接口21可以用来接收其他设备发送的数据,比如样本数据,输入数据等等。在本实施例中,该通信接口可以包括计算机设备与其他设备进行通信的接口,也可以包括该计算机设备内部各部件之间通信所使用的通信接口,本申请对该通信接口的类型不做限定,可以根据实际需要确定。
存储器22,用于储存实现上述的卷积神经网络量化处理方法的程序;
可选的,该存储器22可以是计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
处理器23,用于加载并执行所述存储器存储的程序,以实现上述卷积神经网络量化处理方法的各个步骤,具体实现过程可以参照上述方法实施例相应部分的描述,本实施例不再赘述。
在实际应用中,该计算机设备可以是服务器、电脑等。因此,计算机设备的结构组成并不局限于通信接口、存储器和处理器,还可以包括其他硬件设备,如其他存储设备等等,可以根据该计算机设备所具有的功能确定,本申请不做一一列举。
最后,需要说明的是,关于上述各实施例中,诸如第一、第二等之类的关系术语仅仅用来将一个操作、单元或模块与另一个操作、单元或模块区分开来,而不一定要求或者暗示这些单元、操作或模块之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者系统中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、计算机设备而言,由于其与实施例公开的方法对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种卷积神经网络量化处理方法,所述方法包括
获取卷积神经网络中各卷积层的最大权值及最大偏差量;
计算所述最大权值的第一动态比特位精度值,及最大偏差量的第二动态比特位精度值,所述第一动态比特位精度值与所述第二动态比特位精度值不同;
利用各卷积层对应的所述第一动态比特位精度值和所述第二动态比特位精度值,对相应卷积层的权值和偏差量进行量化;
基于各卷积层中量化后的权值及量化后的偏差量,得到所述卷积神经网络的卷积结果。
2.根据权利要求1所述的方法,所述利用各卷积层对应的所述第一动态比特位精度值和所述第二动态比特位精度值,对相应卷积层的权值和偏差量进行量化,包括:
按照浮点数-定点数转换规则,以所述第一动态比特精度值为阶码,将相应卷积层中的浮点数格式的各权值转换为定点数格式的权值;
按照所述浮点数-定点数转换规则,以所述第二动态比特精度值为阶码,将相应卷积层中的浮点数格式的各偏差值转换为定点数格式的偏差值。
3.根据权利要求1所述的方法,所述基于各卷积层中量化后的权值及量化后的偏差量,得到所述卷积神经网络的卷积结果,包括:
基于所述第一动态比特位精度值,对相应卷积层中量化后的各权值进行移位处理,并基于所述第二动态比特位精度值,对相应卷积层中量化后的各偏差量进行移位处理;
对各层卷积层中移位处理后的权值求和,得到相应卷积层的总权值,并对各层卷积层中移位处理后的偏差值进行求和,得到相应卷积层的总偏差值;
对同一层卷积层的总权值和总偏差值进行求和,得到相应卷积层的卷积结果。
4.根据权利要求3所述的方法,所述基于所述第一动态比特位精度值,对相应卷积层中量化后的各权值进行移位处理,包括:
如果所述第一动态比特位精度值大于零,将相应卷积层中的各权值向第一方向移动所述第一动态比特位精度值比特位;
如果第一动态比特位精度值小于零,将相应卷积层中的各权值向第二方向移动所述第一动态比特位精度值比特位,所述第二方向与所述第一方向是移动方向相反的两个移动方向;
所述基于所述第二动态比特位精度值,对相应卷积层中量化后的各偏差量进行移位处理,包括:
如果所述第二动态比特位精度值大于零,将相应卷积层中的各偏差值向所述第一方向移动所述第二动态比特位精度值比特位;
如果第二动态比特位精度值小于零,将相应卷积层中的各偏差值向所述第二方向移动所述第二动态比特位精度值比特位。
5.根据权利要求1所述的方法,其特征在于,所述计算所述最大权值的第一动态比特位精度值,及最大偏差量的第二动态比特位精度值,包括:
获取所述最大权值的整数值,以及所述最大偏差值的整数值;
计算预设比特值与所述最大权值的整数值的差值,得到第一动态比特位精度值;
计算所述预设比特值与所述最大偏差值的整数值的差值,得到第二动态比特位精度值。
6.根据权利要求1~5任意一项所述的方法,所述方法还包括:
验证所述最大权值与最大偏差量是否相匹配;
如果不匹配,执行步骤所述计算所述最大权值的第一动态比特位精度值,及最大偏差量的第二动态比特位精度值。
7.根据权利要求6所述的方法,所述验证所述最大权值与最大偏差量是否相匹配,包括:
对所述最大权值的整数值与所述最大偏差值的整数值进行比较;
所述不匹配是指所述最大权值的整数值与所述最大偏差值的整数值不相同。
8.根据权利要求1~5任意一项所述的方法,所述方法还包括:
获取样本数据;
将所述样本数据输入卷积神经网络,并利用反向传播算法,对所述样本数据在所述卷积神经网络中进行传输计算,确定所述卷积神经网络中各层卷积层的权值和偏差值。
9.一种卷积神经网络量化处理装置,所述装置包括
数据获取模块,用于获取卷积神经网络中各卷积层的最大权值及最大偏差量;
双精度计算模块,用于计算所述最大权值的第一动态比特位精度值,及最大偏差量的第二动态比特位精度值,所述第一动态比特位精度值与所述第二动态比特位精度值不同;
量化模块,用于利用各卷积层对应的所述第一动态比特位精度值和所述第二动态比特位精度值,对相应卷积层的权值和偏差量进行量化;
卷积计算模块,用于基于各卷积层中量化后的权值及量化后的偏差量,得到所述卷积神经网络的卷积结果。
10.一种计算机设备,所述计算机设备包括:
通信接口;
存储器,用于储存实现如权利要求1~8任一项所述的卷积神经网络量化处理方法的程序;
处理器,用于加载并执行所述存储器存储的程序,以实现如权利要求1~8任一项所述的卷积神经网络量化处理方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811644575.1A CN109740737B (zh) | 2018-12-30 | 2018-12-30 | 卷积神经网络量化处理方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811644575.1A CN109740737B (zh) | 2018-12-30 | 2018-12-30 | 卷积神经网络量化处理方法、装置及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109740737A true CN109740737A (zh) | 2019-05-10 |
CN109740737B CN109740737B (zh) | 2021-02-19 |
Family
ID=66362778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811644575.1A Active CN109740737B (zh) | 2018-12-30 | 2018-12-30 | 卷积神经网络量化处理方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109740737B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110991608A (zh) * | 2019-11-25 | 2020-04-10 | 合肥恒烁半导体有限公司 | 一种卷积神经网络量化计算方法及系统 |
CN111160523A (zh) * | 2019-12-16 | 2020-05-15 | 上海交通大学 | 基于特征值区域的动态量化方法、系统及介质 |
WO2021038333A1 (en) * | 2019-08-27 | 2021-03-04 | International Business Machines Corporation | System-aware selective quantization for performance optimized distributed deep learning |
WO2021083154A1 (en) * | 2019-10-30 | 2021-05-06 | Huawei Technologies Co., Ltd. | Method and apparatus for quantization of neural networks post training |
CN113269320A (zh) * | 2020-02-14 | 2021-08-17 | 阿里巴巴集团控股有限公司 | 处理单元、计算装置、片上系统、数据中心和相关方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106203624A (zh) * | 2016-06-23 | 2016-12-07 | 上海交通大学 | 基于深度神经网络的矢量量化系统及方法 |
CN107038476A (zh) * | 2016-02-03 | 2017-08-11 | 谷歌公司 | 经压缩的递归神经网络模型 |
US20170286830A1 (en) * | 2016-04-04 | 2017-10-05 | Technion Research & Development Foundation Limited | Quantized neural network training and inference |
CN107256422A (zh) * | 2017-06-06 | 2017-10-17 | 上海兆芯集成电路有限公司 | 数据量化方法及装置 |
EP3242254A1 (en) * | 2016-05-03 | 2017-11-08 | Imagination Technologies Limited | Convolutional neural network hardware configuration |
CN107480770A (zh) * | 2017-07-27 | 2017-12-15 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN107636697A (zh) * | 2015-05-08 | 2018-01-26 | 高通股份有限公司 | 基于浮点神经网络量化的定点神经网络 |
CN107644254A (zh) * | 2017-09-09 | 2018-01-30 | 复旦大学 | 一种卷积神经网络权重参数量化训练方法及系统 |
CN109102064A (zh) * | 2018-06-26 | 2018-12-28 | 杭州雄迈集成电路技术有限公司 | 一种高精度的神经网络量化压缩方法 |
-
2018
- 2018-12-30 CN CN201811644575.1A patent/CN109740737B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107636697A (zh) * | 2015-05-08 | 2018-01-26 | 高通股份有限公司 | 基于浮点神经网络量化的定点神经网络 |
CN107038476A (zh) * | 2016-02-03 | 2017-08-11 | 谷歌公司 | 经压缩的递归神经网络模型 |
US20170286830A1 (en) * | 2016-04-04 | 2017-10-05 | Technion Research & Development Foundation Limited | Quantized neural network training and inference |
EP3242254A1 (en) * | 2016-05-03 | 2017-11-08 | Imagination Technologies Limited | Convolutional neural network hardware configuration |
CN106203624A (zh) * | 2016-06-23 | 2016-12-07 | 上海交通大学 | 基于深度神经网络的矢量量化系统及方法 |
CN107256422A (zh) * | 2017-06-06 | 2017-10-17 | 上海兆芯集成电路有限公司 | 数据量化方法及装置 |
CN107480770A (zh) * | 2017-07-27 | 2017-12-15 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN107644254A (zh) * | 2017-09-09 | 2018-01-30 | 复旦大学 | 一种卷积神经网络权重参数量化训练方法及系统 |
CN109102064A (zh) * | 2018-06-26 | 2018-12-28 | 杭州雄迈集成电路技术有限公司 | 一种高精度的神经网络量化压缩方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021038333A1 (en) * | 2019-08-27 | 2021-03-04 | International Business Machines Corporation | System-aware selective quantization for performance optimized distributed deep learning |
GB2600872A (en) * | 2019-08-27 | 2022-05-11 | Ibm | System-aware selective quantization for performance optimized distributed deep learning |
US11551054B2 (en) | 2019-08-27 | 2023-01-10 | International Business Machines Corporation | System-aware selective quantization for performance optimized distributed deep learning |
WO2021083154A1 (en) * | 2019-10-30 | 2021-05-06 | Huawei Technologies Co., Ltd. | Method and apparatus for quantization of neural networks post training |
CN110991608A (zh) * | 2019-11-25 | 2020-04-10 | 合肥恒烁半导体有限公司 | 一种卷积神经网络量化计算方法及系统 |
CN110991608B (zh) * | 2019-11-25 | 2021-08-13 | 恒烁半导体(合肥)股份有限公司 | 一种卷积神经网络量化计算方法及系统 |
CN111160523A (zh) * | 2019-12-16 | 2020-05-15 | 上海交通大学 | 基于特征值区域的动态量化方法、系统及介质 |
CN111160523B (zh) * | 2019-12-16 | 2023-11-03 | 上海交通大学 | 基于特征值区域的动态量化方法、系统及介质 |
CN113269320A (zh) * | 2020-02-14 | 2021-08-17 | 阿里巴巴集团控股有限公司 | 处理单元、计算装置、片上系统、数据中心和相关方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109740737B (zh) | 2021-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109740737A (zh) | 卷积神经网络量化处理方法、装置及计算机设备 | |
CN108924198B (zh) | 一种基于边缘计算的数据调度方法、装置及系统 | |
JP2022502733A (ja) | ニューラル・ネットワーク・コアにおける動的精度のためのデータ表現 | |
CN110163368A (zh) | 基于混合精度的深度学习模型训练方法、装置及系统 | |
CN109445935A (zh) | 云计算环境下一种高性能大数据分析系统自适应配置方法 | |
CN107423839A (zh) | 一种基于深度学习的智能楼宇微网负荷预测的方法 | |
CN106993851A (zh) | 一种基于鞋子图像和脚型图像的鞋楦参数自动预测方法及预测装置 | |
CN110929865A (zh) | 网络量化方法、业务处理方法及相关产品 | |
CN109508784A (zh) | 一种神经网络激活函数的设计方法 | |
CN108182469A (zh) | 一种神经网络模型训练方法、系统、装置及存储介质 | |
CN115223049A (zh) | 面向电力场景边缘计算大模型压缩的知识蒸馏与量化技术 | |
CN109766800A (zh) | 一种移动端花卉识别模型的构建方法 | |
CN116187548A (zh) | 一种光伏发电功率预测方法、装置、存储介质及电子装置 | |
CN110188877A (zh) | 一种神经网络压缩方法与装置 | |
CN114861542A (zh) | 直流输电工程损耗评估方法、装置、设备和存储介质 | |
Bao et al. | LSFQ: A low precision full integer quantization for high-performance FPGA-based CNN acceleration | |
CN109670582A (zh) | 一种全定点化神经网络的设计方法 | |
CN108364063B (zh) | 一种基于权值分配资源的神经网络训练方法和装置 | |
CN115292007B (zh) | 基于云服务的水利模型仿真计算系统及计算方法 | |
CN116050757A (zh) | 发电企业灵活爬坡性能评价方法、装置、设备及存储介质 | |
CN112446461A (zh) | 一种神经网络模型训练方法及装置 | |
CN113157453B (zh) | 一种基于任务复杂度的高能效目标检测任务动态调度方法 | |
CN110322342A (zh) | 借贷风险预测模型的构建方法、系统及借贷风险预测方法 | |
CN111916049B (zh) | 一种语音合成方法及装置 | |
TWI737300B (zh) | 深度神經網路壓縮的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |