CN107480770B - 可调节量化位宽的神经网络量化与压缩的方法及装置 - Google Patents
可调节量化位宽的神经网络量化与压缩的方法及装置 Download PDFInfo
- Publication number
- CN107480770B CN107480770B CN201710624244.0A CN201710624244A CN107480770B CN 107480770 B CN107480770 B CN 107480770B CN 201710624244 A CN201710624244 A CN 201710624244A CN 107480770 B CN107480770 B CN 107480770B
- Authority
- CN
- China
- Prior art keywords
- tensor
- weight
- neural network
- convolutional neural
- input feature
- 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.)
- Active
Links
- 238000013139 quantization Methods 0.000 title claims abstract description 74
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000006835 compression Effects 0.000 title claims abstract description 24
- 238000007906 compression Methods 0.000 title claims abstract description 24
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 15
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 100
- 238000012545 processing Methods 0.000 claims abstract description 6
- 238000012549 training Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 7
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 1
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及神经网络技术领域,具体提出一种卷积神经网络量化与压缩的方法及装置。旨在解决现有对神经网络量化与压缩的方法对网络性能造成较大损失的问题。本发明的方法包括获取原始卷积神经网络的权值张量和输入特征张量,并基于预先设定的量化位宽,对权值张量和输入特征张量进行定点量化,并将得到的权值定点表示张量以及输入特征定点表示张量替换原来的权值张量和输入特征张量,得到对原始卷积神经网络量化与压缩后的新的卷积神经网络。本发明能够根据不同的任务需要灵活地调整位宽,无需调整算法结构和网络结构即可实现对卷积神经网络的量化与压缩,减少对内存以及存储资源的占用。本发明还提出一种存储装置和处理装置,具有上述有益效果。
Description
技术领域
本发明属于神经网络技术领域,具体提供一种卷积神经网络量化与压缩的方法及装置。
背景技术
近年来,随着卷积神经网络在目标检测识别领域的发展,其检测正确率已经达到商用水平,与此同时,便携设备(例如移动终端、智能设备)的高速发展,让研究者看到了将卷积神经网络与便携设备相结合的契机。然而,基于卷积神经网络的目标识别往往依赖于高性能的GPU(Graphics Processing Unit,图形处理器)设备,需要巨大的运算量,消耗较大的内存,如果在智能手机或者嵌入式设备上运行卷积神经网络模型,将迅速消耗智能手机或者嵌入式设备有限的内存资源、硬盘存储资源以及电量,这对用户来说,显然是难以接受的。
为解决上述问题,现有技术的工作主要聚焦于如何缩减卷积神经网络的规模以实现高效地网络训练以及如何在运行时加速针对卷积神经网络的量化与压缩。通过用定点数表示卷积神经网络模型,将相应地减少内存及存储资源的占用,对于FPGA(FieldProgrammable Gate Array,现场可编程门阵列)等专用器件来说将会节省资源,节约传输时间;采用较少的显存位宽也可以压缩逻辑电路的尺寸,在单位时间内,可进行运算的数目将会增多。但是现有技术的方法有些仅考虑压缩存储问题,有些量化或者压缩问题的解决方案对于硬件实现并不友好,有些追求较低的显存位宽导致网络性能地大幅下降,对大型卷积神经网络的所有层同时进行可变位宽的量化与压缩且对性能不造成较大损失的工作还有待研究。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
为了解决现有技术中的上述问题,即为了解决现有技术对卷积神经网络进行量化与压缩时对卷积神经网络的性能造成较大损失的问题,本发明的一方面提供了一种卷积神经网络量化与压缩的方法,包括:
获取原始卷积神经网络卷积层初始的权值张量、以及除所述原始卷积神经网络的第一层以外各层初始的输入特征张量;
基于预先设定的量化位宽,对所述初始的权值张量以及所述初始的输入特征张量进行定点量化,分别得到权值定点表示张量以及输入特征定点表示张量;
利用所述权值定点表示张量以及所述输入特征定点表示张量,分别替换所述初始的权值张量以及所述初始的输入特征张量,得到对所述原始卷积神经网络量化与压缩后的新的卷积神经网络。
在上述方法的优选技术方案中,所述对所述初始的权值张量以及所述初始的输入特征张量进行定点量化,其方法为:
对所述原始卷积神经网络中各卷积层,将所述初始的输入特征张量进行由浮点数到定点数的量化,获得与所述初始的输入特征张量近似的第一输入特征张量,所述第一输入特征张量为输入特征定点表示张量,直至所述原始卷积神经网络中所有卷积层被遍历;
对所述原始卷积神经网络中各卷积层,将所述初始的权值张量进行由浮点数到定点数的量化,获得权值缩放系数以及第一权值张量,直至所述原始卷积神经网络中所有卷积层被遍历。
在上述方法的优选技术方案中,将所述初始的输入特征张量与权值张量进行由浮点数到定点数的量化,其方法为:
使用最近邻法对所述初始的输入特征张量与权值张量进行由浮点数到定点数的量化。
在上述方法的优选技术方案中,所述得到权值定点表示张量,其方法包括:
基于预先设定的量化位宽直接量化所述初始的权值张量得到权值定点表示张量,或者基于预先设定的量化位宽量化所述初始的权值张量,将得到的结果进行迭代训练后,得到权值定点表示张量。
在上述方法的优选技术方案中,所述将得到的结果进行迭代训练,其方法为:
对所述权值缩放系数进行初始化;
将所述第一权值张量依照所述权值缩放系数进行缩放,将缩放结果按照所述量化位宽进行量化,得到第二权值张量;
求解所述权值缩放系数,直至所述权值缩放系数收敛于设定的稳定值,得到稳定的权值缩放系数;
对所述第二权值张量与所述稳定的权值缩放系数进行乘积操作,得到所述权值定点表示张量。
在上述方法的优选技术方案中,所述求解所述权值缩放系数,其方法为:
将所述第二权值张量与所述权值缩放系数代入公式计算对所述第一权值张量的最优表示,根据计算结果更新所述权值缩放系数,具体公式为:
其中,α_g表示权值缩放系数,Q_g表示第二权值张量,W_g表示第一权值张量。
在上述方法的优选技术方案中,所述第二权值张量与所述权值缩放系数一一对应。
在上述方法的优选技术方案中,在分别替换所述初始的权值张量以及所述初始的输入特征张量之后,在得到新的卷积神经网络之前,该方法还包括:
对所述原始卷积神经网络中各卷积层,对所述权值定点表示张量与所述输入特征定点表示张量进行卷积运算,得到第一输出特征张量,直至所述原始卷积神经网络中所有卷积层被遍历;
对所述原始卷积神经网络中各卷积层,对所述第一输出特征张量与所述稳定的权值缩放系数进行乘积运算,得到最终的输出特征张量,直至所述原始卷积神经网络中所有卷积层被遍历,所述最终的输出特征张量构成所述新的卷积神经网络。
本发明的另一个方面,提供了一种存储装置,其中存储有多条程序,所述程序适于由处理器加载并执行以实现上述所述的卷积神经网络量化与压缩的方法。
本发明的第三方面,提供了一种处理装置,包括处理器、存储设备;处理器,适于执行各条程序;存储设备,适于存储多条程序;所述程序适于由处理器加载并执行以实现上述所述的卷积神经网络量化与压缩的方法。
本发明提供了一种卷积神经网络量化与压缩的方法,包括获取原始卷积神经网络卷积层初始的权值张量、以及除原始卷积神经网络的第一层以外各层初始的输入特征张量;基于预先设定的量化位宽,对初始的权值张量以及初始的输入特征张量进行定点量化,分别得到权值定点表示张量以及输入特征定点表示张量;利用权值定点表示张量以及输入特征定点表示张量,分别替换初始的权值张量以及初始的输入特征张量,得到对原始卷积神经网络量化与压缩后的新的卷积神经网络。
本领域技术人员能够理解的是,本发明通过对卷积神经网络的权值利用缩放系数及定点权值进行近似,对卷积神经网络的输入特征张量利用高位位宽定点数进行近似,仅需根据已有网络模型参数,将权值张量与输入特征张量进行定点量化,并将定点量化后的参数替换原来的参数即可得到新的网络模型。能够根据不同的任务需要灵活地调整位宽,无需调整算法结构和网络结构,在实现卷积网络所有层进行可变位宽地量化与压缩的同时,不对卷积神经网络的性能造成较大的损失,减少了对内存以及存储资源的占用,节约传输时间,取得性能及网络大小之间的平衡,更加有利于卷积神经网络应用于便携设备。
附图说明
图1为本发明提供的卷积神经网络量化与压缩的方法的流程示意图;
图2为本发明提供的卷积神经网络用于图像分类过程的示意图;
图3为本发明提供的卷积神经网络图像分类过程中卷积层的卷积操作示意图;
图4为本发明提供的对权值张量进行定点量化操作的示意图;
图5为本发明提供的获得新的卷积神经网络的过程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所述,为本发明提供的卷积神经网络量化与压缩的方法的流程示意图,包括:
步骤1:获取原始卷积神经网络卷积层初始的权值张量、以及除原始卷积神经网络的第一层以外各层初始的输入特征张量;
在实际应用中,如图2所示,为本发明提供的卷积神经网络用于图像分类过程示意图,卷积神经网络包含多个卷积层和多个全连接层,为了表述形式的统一,将所有的全连接层视为特殊形式的卷积层,每一卷积层都有一组卷积核,该组卷积核共同组成该层的权值张量。其中,卷积神经网络的第一层全连接层视为该层的卷积核与该层的输入特征张量大小相同的卷积层,除第一层以外,其他全连接层视为G×1×1×T的卷积层,其中G表示全连接层输出节点的个数,T表示全连接层输入节点的个数,该全连接层对应的卷积层的卷积核的宽度与高度均为1。由于第一层全连接层的输入为图片的原始数据,数值分布区间为0-255,若将其量化为低位位宽,网络性能将受到较大的影响,所以不获取卷积神经网络第一层的输入特征张量。
步骤2:基于预先设定的量化位宽,对初始的权值张量以及初始的输入特征张量进行定点量化,分别得到权值定点表示张量以及输入特征定点表示张量;
具体地,如图3所示,为本发明提供的卷积神经网络图像分类过程中卷积层的卷积操作示意图,设定量化张量的数目为G,设定量化位宽为L,其中,G和L均为不小于1的正整数,设定初始的权值张量为W,设定初始的输入特征张量为X,W为G×w×h×T的四维张量,X为N×m×n×T的四维张量,其中,G表示输出特征张量的通道数,N表示输入样本数量,T表示输入特征张量的通道数,w表示卷积核的宽度,h表示卷积核的高度,m表示输入特征张量的宽度,n表示输入特征张量的高度。权值张量W和输入特征张量除了可以是四维张量以外,还可以是其他维度的张量,这里不做限定。在实际应用中,为了方便表示,可以将卷积核的宽度和高度合并,记住维度D,可以将四维张量转换成三维张量,即G×D×T。
具体地,定点数是指小数点位置固定的数,浮点数是指小数点位置可以变动的数,其中,相对于浮点数,定点数要求的处理硬件更为简单,更能减少对便携设备的负担。根据设定的量化位宽,分别对初始的权值张量以及初始的输入特征张量进行由浮点数到定点数地量化,其中,对初始的权值张量地量化将得到一组权值缩放系数以及一组第一权值张量,权值缩放系数与第一权值张量一一对应,对初始的输入特征张量的量化将得到一组与输入特征张量近似的第一输入特征张量。
步骤3:利用所述权值定点表示张量以及所述输入特征定点表示张量,分别替换所述初始的权值张量以及所述初始的输入特征张量,得到对所述原始卷积神经网络量化与压缩后的新的卷积神经网络。
根据步骤2中得到的权值缩放系数和第一权值张量,将两者进行乘积计算,得到第二权值张量,并将权值缩放系数进行迭代直至收敛于稳定的权值缩放系数,再将稳定的权值缩放系数与第二权值张量进行乘积,并将得到的结果替换初始的权值张量;根据步骤2中得到的第一输入特征张量,将得到的第一输入特征张量利用较高位宽的定点数进行近似,并将得到的结果替换初始的输入特征张量,从而达到对原始卷积神经网络进行量化与压缩的目的,进而得到新的卷积神经网络,新的卷积神经网络能够在对其所有层同时进行可变位宽地量化与压缩同时对性能不造成较大损失。
本发明通过对卷积神经网络的权值利用缩放系数及定点权值进行近似,对卷积神经网络的输入特征张量利用高位位宽定点数进行近似,仅需根据已有网络模型参数,将权值张量与输入特征张量进行定点量化,并将定点量化后的参数替换原来的参数即可得到新的网络模型。能够根据不同的任务需要灵活地调整位宽,无需调整算法结构和网络结构,在实现卷积网络所有层进行可变位宽地量化与压缩的同时,不对卷积神经网络的性能造成较大的损失,减少了对内存以及存储资源的占用,节约传输时间,取得性能及网络大小之间的平衡,更加有利于卷积神经网络应用于便携设备。
作为一种优选的实施例,对初始的权值张量以及初始的输入特征张量进行定点量化,其方法为:
对原始卷积神经网络中各卷积层,将初始的输入特征张量进行由浮点数到定点数的量化,获得与初始的输入特征张量近似的第一输入特征张量,第一输入特征张量为输入特征定点表示张量,直至原始卷积神经网络中所有卷积层被遍历;
对原始卷积神经网络中各卷积层,将初始的权值张量进行由浮点数到定点数的量化,获得权值缩放系数以及第一权值张量,直至原始卷积神经网络中所有卷积层被遍历。
在实际应用中,根据设定的定点量化的位宽,对初始的输入特征张量为X进行定点量化,获得一组(N个)定点量化后的对X近似的第一输入特征张量其中,N为不小于1的正整数,对初始的权值张量W进行定点量化,获得一组(g个)权值缩放系数α_1,α_2…α_g以及一组(g个)定点量化的第一权值张量W_1,W_2…W_g,其中N和g均为不小于1的正整数。
作为一种优选的实施例,将初始的输入特征张量与权值张量进行由浮点数到定点数的量化,其方法为:
使用最近邻法对初始的输入特征张量与权值张量进行由浮点数到定点数的量化。
具体地,如图4所示,图4为本发明提供的对权值张量进行定点量化操作的示意图,设定量化位宽为2bit,则对应于00、01、10、11四种量化方式,在实际应用中,2的幂次定点量化均可用于此发明,通过最近邻法将其转化为-1、-0.5、0、0.5四种值,以原始数值为0.52、2.11、0.24、-0.25、-0.7、0.31的向量为例,通过最近邻法将浮点数量化为定点数,具体被量化为0.5、0.5、0、0、-0.5、0。若量化位宽为1bit,则对应于0、1两种量化方式,通过最近邻法将其转化为1、-1两种值,以原始数值为0.51、0.26、0.24、-0.24、-0.26、-0.66为例,则上述原始数值将被量化为1、1、1、-1、-1、-1。
作为一种优选的实施例,得到权值定点表示张量,其方法包括:
基于预先设定的量化位宽直接量化初始的权值张量得到权值定点表示张量,或者基于预先设定的量化位宽量化初始的权值张量,将得到的结果进行迭代训练后,得到权值定点表示张量。
在实际应用中,对于权值张量与输入特征张量的量化位宽可以是不同的,也可以是相同的,这里不做限定。权值张量的量化位宽的范围为1-32bit,输入特征张量的量化位宽的范围为8-32bit,在实际应用中,将不小于8bit的视为高位位宽,将小于8bit的视为低位位宽,当权值张量的量化位宽为高位位宽时,无需再训练缩放系数及权值张量的定点数表示,直接将权值张量量化为定点数;当权值张量的量化位宽为低位位宽时,对缩放系数及权值张量的定点数表示进行再训练后,也能够将网络性能恢复到接近于32bit全精度网络的性能。本发明通过多次实验获得如下结论:
当权值张量的量化位宽为8bit,输入特征张量的量化位宽为8bit时,无需再训练权值缩放系数,直接将权值张量进行量化,网络性能没有损失;
当权值张量的量化位宽为8bit,输入特征张量的量化位宽为32bit时,无需在训练权值缩放系数,直接将权值张量进行量化,网络性能可以获得提升;
当权值张量的量化位宽为3bit,输入特征张量的量化位宽为32bit时,对权值缩放系数进行再训练,网络性能可以获得提升。
作为一种优选的实施例,所述将得到的结果进行迭代训练,其方法为:
对权值缩放系数进行初始化;
将第一权值张量依照权值缩放系数进行缩放,将缩放结果按照量化位宽进行量化,得到第二权值张量;
求解权值缩放系数,直至权值缩放系数收敛于设定的稳定值,得到稳定的权值缩放系数;
对第二权值张量与稳定的权值缩放系数进行乘积操作,得到权值定点表示张量。
作为一种优选的实施例,求解权值缩放系数,其方法为:
将第二权值张量与权值缩放系数代入公式计算对第一权值张量的最优表示,根据计算结果更新权值缩放系数,具体公式为:
其中,α_g表示权值缩放系数,Q_g表示第二权值张量,W_g表示第一权值张量。
作为一种优选的实施例,第二权值张量与权值缩放系数一一对应。
具体地,以第g个权值缩放系数与第g个第一权值张量W_g为例,将第g个权值缩放系数α_g进行初始化,将第g个第一权值张量W_g按照量化位宽L,参照权值缩放系数α_g进行缩放,采用浮点数到定点数量化的方法,定点量化为第二权值张量Q_g,将第g个第二权值张量与第g个权值缩放系数α_g代入重复上述步骤直至g个权值缩放系数α_g收敛于稳定值,得到稳定的权值缩放系数,将g个第二权值张量与g个稳定的权值缩放系数α_g代入求解对第一权值张量W_g的最优表示。在实际应用中,求解对第一权值张量W_g的最优表示可以视为对||W-alpha*Q||2问题的解析求解过程,其中,Q为定点量化张量,alpha为缩放系数,通过迭代求解Q=Quantize(W/alpha),alpha=(W*Q)/(Q*Q),直至alpha的数值收敛,其中,Quantize表示浮点数的定点量化算法,可以但不限于所述最近邻量化算法。
作为一种优选的实施例,在分别替换初始的权值张量以及初始的输入特征张量之后,在得到新的卷积神经网络之前,该方法还包括:
对原始卷积神经网络中各卷积层,对权值定点表示张量与输入特征定点表示张量进行卷积运算,得到第一输出特征张量,直至原始卷积神经网络中所有卷积层被遍历;
对原始卷积神经网络中各卷积层,对第一输出特征张量与稳定的权值缩放系数进行乘积运算,得到最终的输出特征张量,直至原始卷积神经网络中所有卷积层被遍历,最终的输出特征张量构成新的卷积神经网络。
如图5所示,为本发明提供的获得新的卷积神经网络的过程示意图。其中,过程1表示对原始卷积神经网络进行卷积操作的过程,过程2表示获得的新的卷积神经网络进行卷积操作的过程;在图5中,每个指针表示由输入特征图通过卷积计算输出特征图的过程,指针尾部的方块对应于输入特征图的卷积区域,指针头部的方块对应于卷积计算出的值,指针头部方块所处的阴影立方体区域表示该卷积核最终输出的特征张量。
本发明提供的方法应用前后的空间复杂度进行了分析,具体分析如下:以VGG16卷积神经网络为例,假设原始VGG16卷积神经网络占用的存储空间为50兆字节,量化位宽为2bit,则得到的新的VGG16卷积神经网络占用的存储空间为25兆字节,在此基础上,设定量化位宽为1bit,则得到的新的VGG16深度卷积神经网络占用的存储空间为18兆字节,通过多次实验表明,本发明的方法最高可以达到29倍的压缩率。原始卷积神经网络中的卷积层的每一层权值及特征张量均以32bit浮点数表示,假定量化位宽为K bit,显然压缩率接近于32/K。可见,量化后的卷积层权值占用的空间远小于原始卷积神经网络卷积层,因此可以显著地减低卷积神经网络权值的存储开销。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本发明一种实施例的存储装置,其中存储有多条程序,所述程序适于由处理器加载并执行以实现上述所述的卷积神经网络量化与压缩的方法。
本发明一种实施例的处理装置,包括处理器、存储设备;处理器,适于执行各条程序;存储设备,适于存储多条程序;所述程序适于由处理器加载并执行以实现上述所述的卷积神经网络量化与压缩的方法。
所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法所固有的要素。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
Claims (9)
1.一种卷积神经网络量化与压缩的方法,其特征在于,包括:
获取原始卷积神经网络卷积层初始的权值张量、以及除所述原始卷积神经网络的第一层以外各层初始的输入特征张量;
基于预先设定的量化位宽,对所述初始的权值张量以及所述初始的输入特征张量进行定点量化,分别得到权值定点表示张量以及输入特征定点表示张量;
利用所述权值定点表示张量以及所述输入特征定点表示张量,分别替换所述初始的权值张量以及所述初始的输入特征张量,得到对所述原始卷积神经网络量化与压缩后的新的卷积神经网络;
其中,所述对所述初始的权值张量以及所述初始的输入特征张量进行定点量化,具体为:
对所述原始卷积神经网络中各卷积层,将所述初始的输入特征张量进行由浮点数到定点数的量化,获得与所述初始的输入特征张量近似的第一输入特征张量,所述第一输入特征张量为输入特征定点表示张量,直至所述原始卷积神经网络中所有卷积层被遍历;
对所述原始卷积神经网络中各卷积层,将所述初始的权值张量进行由浮点数到定点数的量化,获得权值缩放系数以及第一权值张量,直至所述原始卷积神经网络中所有卷积层被遍历;
其中,所述利用所述权值定点表示张量以及所述输入特征定点表示张量,分别替换所述初始的权值张量以及所述初始的输入特征张量,得到对所述原始卷积神经网络量化与压缩后的新的卷积神经网络,具体包括:
将所述权值缩放系数和所述第一权值张量进行乘积计算,得到第二权值张量,并将所述权值缩放系数进行迭代直至收敛于稳定的权值缩放系数,再将稳定的权值缩放系数与所述第二权值张量进行乘积,并将得到的结果替换初始的权值张量;将所述第一输入特征张量利用较高位宽的定点数进行近似,并将得到的结果替换初始的输入特征张量,对原始卷积神经网络进行量化与压缩,进而得到新的卷积神经网络。
2.根据权利要求1所述的卷积神经网络量化与压缩的方法,其特征在于,将所述初始的输入特征张量与权值张量进行由浮点数到定点数的量化,其方法为:
使用最近邻法对所述初始的输入特征张量与权值张量进行由浮点数到定点数的量化。
3.根据权利要求2所述的卷积神经网络量化与压缩的方法,其特征在于,所述得到权值定点表示张量,其方法包括:
基于预先设定的量化位宽直接量化所述初始的权值张量得到权值定点表示张量,或者基于预先设定的量化位宽量化所述初始的权值张量,将得到的结果进行迭代训练后,得到权值定点表示张量。
4.根据权利要求3所述的卷积神经网络量化与压缩的方法,其特征在于,所述将得到的结果进行迭代训练,其方法为:
对所述权值缩放系数进行初始化;
将所述第一权值张量依照所述权值缩放系数进行缩放,将缩放结果按照所述量化位宽进行量化,得到第二权值张量;
求解权值缩放系数,直至权值缩放系数收敛于设定的稳定值,得到稳定的权值缩放系数;
对第二权值张量与稳定的权值缩放系数进行乘积操作,得到权值定点表示张量。
6.根据权利要求5所述的卷积神经网络量化与压缩的方法,其特征在于,所述第二权值张量与所述权值缩放系数一一对应。
7.根据权利要求6所述的卷积神经网络量化与压缩的方法,其特征在于,在分别替换所述初始的权值张量以及所述初始的输入特征张量之后,在得到新的卷积神经网络之前,该方法还包括:
对所述原始卷积神经网络中各卷积层,对所述权值定点表示张量与所述输入特征定点表示张量进行卷积运算,得到第一输出特征张量,直至所述原始卷积神经网络中所有卷积层被遍历;
对所述原始卷积神经网络中各卷积层,对所述第一输出特征张量与所述稳定的权值缩放系数进行乘积运算,得到最终的输出特征张量,直至所述原始卷积神经网络中所有卷积层被遍历,所述最终的输出特征张量构成所述新的卷积神经网络。
8.一种存储装置,其中存储有多条程序,其特征在于,所述程序适于由处理器加载并执行以实现权利要求1-7任一项所述的卷积神经网络量化与压缩的方法。
9.一种处理装置,包括处理器、存储设备;处理器,适于执行各条程序;存储设备,适于存储多条程序;其特征在于,所述程序适于由处理器加载并执行以实现权利要求1-7任一项所述的卷积神经网络量化与压缩的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710624244.0A CN107480770B (zh) | 2017-07-27 | 2017-07-27 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710624244.0A CN107480770B (zh) | 2017-07-27 | 2017-07-27 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107480770A CN107480770A (zh) | 2017-12-15 |
CN107480770B true CN107480770B (zh) | 2020-07-28 |
Family
ID=60598406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710624244.0A Active CN107480770B (zh) | 2017-07-27 | 2017-07-27 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107480770B (zh) |
Families Citing this family (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108053028B (zh) * | 2017-12-21 | 2021-09-14 | 深圳励飞科技有限公司 | 数据定点化处理方法、装置、电子设备及计算机存储介质 |
WO2019136755A1 (zh) * | 2018-01-15 | 2019-07-18 | 深圳鲲云信息科技有限公司 | 人工智能处理装置设计模型优化方法、系统、存储介质、终端 |
CN108268936B (zh) * | 2018-01-17 | 2022-10-28 | 百度在线网络技术(北京)有限公司 | 用于存储卷积神经网络的方法和装置 |
CN110062246B (zh) * | 2018-01-19 | 2021-01-05 | 杭州海康威视数字技术股份有限公司 | 对视频帧数据进行处理的方法和装置 |
CN108256645B (zh) * | 2018-01-19 | 2021-02-26 | 上海兆芯集成电路有限公司 | 数据位宽可调适的处理器 |
CN108345940B (zh) * | 2018-02-05 | 2021-09-24 | 深圳市易成自动驾驶技术有限公司 | 数据处理方法、装置及计算机可读存储介质 |
US10516415B2 (en) * | 2018-02-09 | 2019-12-24 | Kneron, Inc. | Method of compressing convolution parameters, convolution operation chip and system |
CN108564165B (zh) * | 2018-03-13 | 2024-01-23 | 上海交通大学 | 卷积神经网络定点化优化的方法及系统 |
US10678508B2 (en) | 2018-03-23 | 2020-06-09 | Amazon Technologies, Inc. | Accelerated quantized multiply-and-add operations |
CN108509179B (zh) * | 2018-04-04 | 2021-11-30 | 百度在线网络技术(北京)有限公司 | 用于检测人脸的方法、用于生成模型的装置 |
CN108510067B (zh) * | 2018-04-11 | 2021-11-09 | 西安电子科技大学 | 基于工程化实现的卷积神经网络量化方法 |
CN110413255B (zh) * | 2018-04-28 | 2022-08-19 | 赛灵思电子科技(北京)有限公司 | 人工神经网络调整方法和装置 |
CN108647184B (zh) * | 2018-05-10 | 2022-04-12 | 杭州雄迈集成电路技术股份有限公司 | 一种动态比特位卷积乘法实现方法 |
CN110555508B (zh) * | 2018-05-31 | 2022-07-12 | 赛灵思电子科技(北京)有限公司 | 人工神经网络调整方法和装置 |
US11551077B2 (en) * | 2018-06-13 | 2023-01-10 | International Business Machines Corporation | Statistics-aware weight quantization |
CN109102064B (zh) * | 2018-06-26 | 2020-11-13 | 杭州雄迈集成电路技术股份有限公司 | 一种高精度的神经网络量化压缩方法 |
CN108932124A (zh) * | 2018-06-26 | 2018-12-04 | Oppo广东移动通信有限公司 | 神经网络模型压缩方法、装置、终端设备及存储介质 |
CN110647974A (zh) * | 2018-06-27 | 2020-01-03 | 杭州海康威视数字技术股份有限公司 | 深度神经网络中的网络层运算方法及装置 |
CN109146060B (zh) * | 2018-08-09 | 2022-04-22 | 郑州云海信息技术有限公司 | 一种基于卷积神经网络处理数据的方法及装置 |
CN109359728B (zh) * | 2018-08-29 | 2021-04-09 | 深思考人工智能机器人科技(北京)有限公司 | 计算神经网络压缩最佳定点位数的方法、存储介质和装置 |
CN109284761B (zh) * | 2018-09-04 | 2020-11-27 | 苏州科达科技股份有限公司 | 一种图像特征提取方法、装置、设备及可读存储介质 |
CN109325530B (zh) * | 2018-09-07 | 2021-05-04 | 中国科学院自动化研究所 | 一种图像分类方法、存储装置和处理装置 |
CN110929865B (zh) * | 2018-09-19 | 2021-03-05 | 深圳云天励飞技术有限公司 | 网络量化方法、业务处理方法及相关产品 |
US11663464B2 (en) | 2018-09-20 | 2023-05-30 | Kneron (Taiwan) Co., Ltd. | Deep neural network with low-precision dynamic fixed-point in reconfigurable hardware design |
CN110929858A (zh) * | 2018-09-20 | 2020-03-27 | 耐能智慧股份有限公司 | 算数框架系统及操作浮点至定点算数框架的方法 |
CN112740233A (zh) * | 2018-09-27 | 2021-04-30 | 株式会社索思未来 | 网络量化方法、推理方法以及网络量化装置 |
US20200117981A1 (en) * | 2018-10-11 | 2020-04-16 | International Business Machines Corporation | Data representation for dynamic precision in neural network cores |
CN111079917B (zh) * | 2018-10-22 | 2023-08-11 | 北京地平线机器人技术研发有限公司 | 张量数据分块存取的方法及装置 |
CN111126558B (zh) * | 2018-10-31 | 2024-04-02 | 嘉楠明芯(北京)科技有限公司 | 一种卷积神经网络计算加速方法及装置、设备、介质 |
JP6528893B1 (ja) * | 2018-11-07 | 2019-06-12 | 富士通株式会社 | 学習プログラム、学習方法、情報処理装置 |
CN111160516B (zh) * | 2018-11-07 | 2023-09-05 | 杭州海康威视数字技术股份有限公司 | 一种深度神经网络的卷积层稀疏化方法及装置 |
CN111191783B (zh) * | 2018-11-15 | 2024-04-05 | 嘉楠明芯(北京)科技有限公司 | 一种自适应量化方法及装置、设备、介质 |
CN109359727B (zh) * | 2018-12-07 | 2022-01-11 | 北京字节跳动网络技术有限公司 | 神经网络的结构确定方法、装置、设备及可读介质 |
WO2020118553A1 (zh) * | 2018-12-12 | 2020-06-18 | 深圳鲲云信息科技有限公司 | 一种卷积神经网络的量化方法、装置及电子设备 |
CN109766993B (zh) * | 2018-12-13 | 2020-12-18 | 浙江大学 | 一种适合硬件的卷积神经网络压缩方法 |
CN111353517B (zh) * | 2018-12-24 | 2023-09-26 | 杭州海康威视数字技术股份有限公司 | 一种车牌识别方法、装置及电子设备 |
CN111383157B (zh) * | 2018-12-29 | 2023-04-14 | 北京市商汤科技开发有限公司 | 图像处理方法、装置、车载运算平台、电子设备及系统 |
CN109740737B (zh) * | 2018-12-30 | 2021-02-19 | 联想(北京)有限公司 | 卷积神经网络量化处理方法、装置及计算机设备 |
CN109840589B (zh) * | 2019-01-25 | 2021-09-24 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种在fpga上运行卷积神经网络的方法和装置 |
CN110309904B (zh) * | 2019-01-29 | 2022-08-09 | 广州红贝科技有限公司 | 一种神经网络压缩方法 |
CN109901814A (zh) * | 2019-02-14 | 2019-06-18 | 上海交通大学 | 自定义浮点数及其计算方法和硬件结构 |
CN111582432B (zh) * | 2019-02-19 | 2023-09-12 | 嘉楠明芯(北京)科技有限公司 | 一种网络参数处理方法及装置 |
CN110020616B (zh) * | 2019-03-26 | 2021-05-11 | 深兰科技(上海)有限公司 | 一种目标识别方法及设备 |
CN110008952B (zh) * | 2019-03-26 | 2021-06-15 | 深兰科技(上海)有限公司 | 一种目标识别方法及设备 |
CN111914867A (zh) * | 2019-05-08 | 2020-11-10 | 四川大学 | 一种基于fpga的卷积神经网络ip核设计 |
WO2020231049A1 (en) | 2019-05-16 | 2020-11-19 | Samsung Electronics Co., Ltd. | Neural network model apparatus and compressing method of neural network model |
CN110263913A (zh) * | 2019-05-23 | 2019-09-20 | 深圳先进技术研究院 | 一种深度神经网络压缩方法及相关设备 |
CN112085150B (zh) * | 2019-06-12 | 2024-07-19 | 安徽寒武纪信息科技有限公司 | 循环神经网络的量化参数调整方法、装置及相关产品 |
CN112085190B (zh) * | 2019-06-12 | 2024-04-02 | 上海寒武纪信息科技有限公司 | 一种神经网络的量化参数确定方法及相关产品 |
CN110309877B (zh) * | 2019-06-28 | 2021-12-07 | 北京百度网讯科技有限公司 | 一种特征图数据的量化方法、装置、电子设备及存储介质 |
CN112232477A (zh) * | 2019-07-15 | 2021-01-15 | 阿里巴巴集团控股有限公司 | 图像数据处理方法、装置、设备及介质 |
EP4020328A4 (en) * | 2019-08-23 | 2023-07-05 | Anhui Cambricon Information Technology Co., Ltd. | DATA PROCESSING METHOD AND APPARATUS, COMPUTER DEVICE AND STORAGE MEDIA |
WO2021036908A1 (zh) * | 2019-08-23 | 2021-03-04 | 安徽寒武纪信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN110659725B (zh) * | 2019-09-20 | 2023-03-31 | 字节跳动有限公司 | 神经网络模型的压缩与加速方法、数据处理方法及装置 |
CN110673802B (zh) * | 2019-09-30 | 2023-04-07 | 上海寒武纪信息科技有限公司 | 数据存储方法、装置、芯片、电子设备和板卡 |
CN110782029B (zh) * | 2019-10-25 | 2022-11-22 | 阿波罗智能技术(北京)有限公司 | 神经网络预测方法、装置、电子设备和自动驾驶系统 |
CN110991608B (zh) * | 2019-11-25 | 2021-08-13 | 恒烁半导体(合肥)股份有限公司 | 一种卷积神经网络量化计算方法及系统 |
CN110889503B (zh) * | 2019-11-26 | 2021-05-04 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN110969251B (zh) * | 2019-11-28 | 2023-10-31 | 中国科学院自动化研究所 | 基于无标签数据的神经网络模型量化方法及装置 |
CN110880038B (zh) * | 2019-11-29 | 2022-07-01 | 中国科学院自动化研究所 | 基于fpga的加速卷积计算的系统、卷积神经网络 |
CN111783961A (zh) * | 2020-07-10 | 2020-10-16 | 中国科学院自动化研究所 | 基于激活定点拟合的卷积神经网络训练后量化方法及系统 |
CN113159295B (zh) * | 2021-04-27 | 2022-07-01 | 瀚博半导体(上海)有限公司 | 基于硬件加速器的张量处理方法和系统 |
CN114169513B (zh) * | 2022-02-11 | 2022-05-24 | 深圳比特微电子科技有限公司 | 神经网络的量化方法、装置、存储介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495719A (zh) * | 2011-12-15 | 2012-06-13 | 中国科学院自动化研究所 | 一种向量浮点运算装置及方法 |
CN106547627A (zh) * | 2016-11-24 | 2017-03-29 | 郑州云海信息技术有限公司 | 一种Spark MLlib数据处理加速的方法及系统 |
CN106778682A (zh) * | 2017-01-11 | 2017-05-31 | 厦门中控生物识别信息技术有限公司 | 一种卷积神经网络模型的训练方法及其设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170132511A1 (en) * | 2015-11-10 | 2017-05-11 | Facebook, Inc. | Systems and methods for utilizing compressed convolutional neural networks to perform media content processing |
-
2017
- 2017-07-27 CN CN201710624244.0A patent/CN107480770B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495719A (zh) * | 2011-12-15 | 2012-06-13 | 中国科学院自动化研究所 | 一种向量浮点运算装置及方法 |
CN106547627A (zh) * | 2016-11-24 | 2017-03-29 | 郑州云海信息技术有限公司 | 一种Spark MLlib数据处理加速的方法及系统 |
CN106778682A (zh) * | 2017-01-11 | 2017-05-31 | 厦门中控生物识别信息技术有限公司 | 一种卷积神经网络模型的训练方法及其设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107480770A (zh) | 2017-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107480770B (zh) | 可调节量化位宽的神经网络量化与压缩的方法及装置 | |
CN110378468B (zh) | 一种基于结构化剪枝和低比特量化的神经网络加速器 | |
CN110363279B (zh) | 基于卷积神经网络模型的图像处理方法和装置 | |
CN108510067B (zh) | 基于工程化实现的卷积神经网络量化方法 | |
CN109002889B (zh) | 自适应迭代式卷积神经网络模型压缩方法 | |
WO2020233130A1 (zh) | 一种深度神经网络压缩方法及相关设备 | |
CN110555450B (zh) | 人脸识别神经网络调整方法和装置 | |
CN110610237A (zh) | 模型的量化训练方法、装置及存储介质 | |
CN111382867B (zh) | 神经网络压缩的方法、数据处理的方法及相关装置 | |
CN109800865B (zh) | 神经网络生成及图像处理方法和装置、平台、电子设备 | |
CN108334945B (zh) | 深度神经网络的加速与压缩方法及装置 | |
CN111178258B (zh) | 一种图像识别的方法、系统、设备及可读存储介质 | |
CN110663048A (zh) | 用于深度神经网络的执行方法、执行装置、学习方法、学习装置以及程序 | |
CN113132723B (zh) | 一种图像压缩方法及装置 | |
EP2359272A1 (en) | Method and apparatus for representing and identifying feature descriptors utilizing a compressed histogram of gradients | |
CN110929865A (zh) | 网络量化方法、业务处理方法及相关产品 | |
CN114581544A (zh) | 图像压缩方法、计算机设备及计算机存储介质 | |
CN109325530B (zh) | 一种图像分类方法、存储装置和处理装置 | |
CN109766800B (zh) | 一种移动端花卉识别模型的构建方法 | |
CN110647974A (zh) | 深度神经网络中的网络层运算方法及装置 | |
CN111240746A (zh) | 一种浮点数据反量化及量化的方法和设备 | |
CN114677548A (zh) | 基于阻变存储器的神经网络图像分类系统及方法 | |
CN112085175B (zh) | 基于神经网络计算的数据处理方法和装置 | |
US20200242467A1 (en) | Calculation method and calculation device for sparse neural network, electronic device, computer readable storage medium, and computer program product | |
CN113222098A (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 |