CN112749783A - 一种神经网络模型的量化方法、装置及计算机可读存储介质 - Google Patents
一种神经网络模型的量化方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112749783A CN112749783A CN201911062937.0A CN201911062937A CN112749783A CN 112749783 A CN112749783 A CN 112749783A CN 201911062937 A CN201911062937 A CN 201911062937A CN 112749783 A CN112749783 A CN 112749783A
- Authority
- CN
- China
- Prior art keywords
- convolution kernel
- coefficients
- distribution
- target
- determining
- 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.)
- Pending
Links
- 238000003062 neural network model Methods 0.000 title claims abstract description 56
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000003860 storage Methods 0.000 title claims abstract description 20
- 238000011002 quantification Methods 0.000 title description 3
- 238000009826 distribution Methods 0.000 claims abstract description 115
- 230000002159 abnormal effect Effects 0.000 claims abstract description 78
- 238000013139 quantization Methods 0.000 claims abstract description 66
- 238000000354 decomposition reaction Methods 0.000 claims description 51
- 230000002547 anomalous effect Effects 0.000 claims description 29
- 238000000605 extraction Methods 0.000 claims 2
- 239000000126 substance Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 17
- 230000008901 benefit Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 3
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 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/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/2163—Partitioning the feature space
-
- 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
-
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供了一种神经网络模型的量化方法、装置及计算机可读存储介质,该方法包括:确定神经网络模型中系数分布异常的目标卷积核;对目标卷积核进行拆分,得到多个子卷积核;对多个子卷积核分别进行量化以得到多个量化卷积核,并利用多个量化卷积核替代目标卷积核。利用上述方法,能够减少量化误差。
Description
技术领域
本发明属于神经网络计算领域,具体涉及一种神经网络模型的量化方法、装置及计算机可读存储介质。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
近年来,深度神经网络的规模越来越大,进而导致训练出的神经网络模型中包含大量的参数,这些参数的存储和传输使得运算成本和功耗非常大。这些缺点尤其会限制将神经网络模型部署或应用到边缘设备或低功耗设备。
为了解决神经网络模型的运算量过大的问题,通常可以采用对训练出的神经网络模型的系数进行量化的方法。然而现有技术中,对神经网络模型的量化方案仍然不够完善,容易导致量化误差过大等问题,影响神经网络模型的运算效果。
发明内容
针对上述现有技术对神经网络模型进行量化时容易导致量化误差过大的问题。本发明实施例提出了一种神经网络模型的量化方法、装置及计算机可读存储介质,利用这种方法及装置,能够解决上述问题。
本发明的实施例中提供了以下方案。
一方面,提供了一种神经网络模型的量化方法,包括:确定神经网络模型中系数分布异常的目标卷积核;对目标卷积核进行拆分,得到多个子卷积核;对多个子卷积核分别进行量化以得到多个量化卷积核,并利用多个量化卷积核替代目标卷积核。
在一些可能的实施方式中,确定神经网络模型中系数分布异常的目标卷积核,还包括:获取神经网络模型中的任意一个待量化卷积核;根据待量化卷积核包含的多个系数的系数分布标准差确定第一阈值;确定待量化卷积核包含的多个系数中的最大值和/或最小值与均值之间的差值;当差值超过第一阈值,确定待量化卷积核为目标卷积核。
在一些可能的实施方式中,对目标卷积核进行拆分,还包括:确定目标卷积核中的异常分布系数;根据异常分布系数对目标卷积核进行拆分。
在一些可能的实施方式中,确定目标卷积核中的异常分布系数,还包括:根据目标卷积核包含的多个系数的系数分布标准差而确定第二阈值;根据所确定的第二阈值确定目标卷积核中的异常分布系数。
在一些可能的实施方式中,根据异常分布系数对目标卷积核进行拆分,还包括:将目标卷积核中的异常分布系数进行分解,得到非异常的多个分解系数;利用多个分解系数形成多个分组,其中每个分组包含多个分解系数的任意一个分解系数;将目标卷积核中的多个非异常分布系数分别划分至多个分组中,其中每个分组包含至少一个非异常分布系数;利用多个分组中的非异常分布系数和分解系数形成多个子卷积核。
在一些可能的实施方式中,将目标卷积核中的异常分布系数进行分解,得到非异常的多个分解系数,还包括:利用二分法对异常分布系数进行至少一次对半分解,直至得到非异常的多个分解系数,其中利用第二阈值判断多个分解系数是否非异常。
在一些可能的实施方式中,将目标卷积核中的多个非异常分布系数分别划分至多个分组中,还包括:基于均匀抽取操作将多个非异常分布系数分别划分至多个分组中,使多个子卷积核中的系数分布均匀。
在一些可能的实施方式中,对多个子卷积核分别进行量化,还包括:根据多个子卷积核的系数分布确定量化边界;根据所确定的量化边界和目标量化位宽对多个子卷积核分别进行线性量化。
第二方面,提供一种神经网络模型的量化装置,包括:确定模块,用于确定神经网络模型中系数分布异常的目标卷积核;拆分模块,用于对目标卷积核进行拆分,得到多个子卷积核;量化模块,用于对多个子卷积核分别进行量化以得到多个量化卷积核,并利用多个量化卷积核替代目标卷积核。
在一些可能的实施方式中,确定模块还用于:获取神经网络模型中的任意一个待量化卷积核;根据待量化卷积核包含的多个系数的系数分布标准差确定第一阈值;确定待量化卷积核包含的多个系数中的最大值和/或最小值与均值之间的差值;当差值超过第一阈值,确定待量化卷积核为目标卷积核。
在一些可能的实施方式中,拆分模块还用于:确定目标卷积核中的异常分布系数;根据异常分布系数对目标卷积核进行拆分。
在一些可能的实施方式中,拆分模块还用于:根据目标卷积核包含的多个系数的系数分布标准差而确定第二阈值;根据所确定的第二阈值确定目标卷积核中的异常分布系数。
在一些可能的实施方式中,拆分模块还用于:将目标卷积核中的异常分布系数进行分解,得到非异常的多个分解系数;利用多个分解系数形成多个分组,其中每个分组包含多个分解系数的任意一个分解系数;将目标卷积核中的多个非异常分布系数分别划分至多个分组中,其中每个分组包含至少一个非异常分布系数;利用多个分组中的非异常分布系数和分解系数形成多个子卷积核。
在一些可能的实施方式中,拆分模块还用于:利用二分法对异常分布系数进行至少一次对半分解,直至得到非异常的多个分解系数,其中利用第二阈值判断多个分解系数是否非异常。
在一些可能的实施方式中,拆分模块还用于:基于均匀抽取操作将多个非异常分布系数分别划分至多个分组中,使多个子卷积核中的系数分布均匀。
在一些可能的实施方式中,量化模块还用于:根据多个子卷积核的系数分布确定量化边界;根据所确定的量化边界和目标量化位宽对多个子卷积核分别进行线性量化。
第三方面,提供一种神经网络模型的量化装置,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:确定神经网络模型中系数分布异常的目标卷积核;对目标卷积核进行拆分,得到多个子卷积核;对多个子卷积核分别进行量化以得到多个量化卷积核,并利用多个量化卷积核替代目标卷积核。
第四方面,提供一种计算机可读存储介质,计算机可读存储介质存储有程序,当程序被多核处理器执行时,使得多核处理器执行如第一方面的方法。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:通过对神经网络模型中参数分布异常的目标卷积核执行卷积核拆分,再对拆分得到的多个子卷积核分别进行量化以实现目标卷积核的定点化,从而减少了量化误差。
应当理解,上述说明仅是本发明技术方案的概述,以便能够更清楚地了解本发明的技术手段,从而可依照说明书的内容予以实施。为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举例说明本发明的具体实施方式。
附图说明
通过阅读下文的示例性实施例的详细描述,本领域普通技术人员将明白本文所述的有点和益处以及其他优点和益处。附图仅用于示出示例性实施例的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的标号表示相同的部件。在附图中:
图1为根据本发明一实施例的神经网络模型的量化方法的流程示意图;
图2为一种示意性的目标卷积核的结构示意图;
图3示出了对图2所示出的目标卷积核执行直接线性量化的示意图;
图4示出了对图2所示出的目标卷积核执行拆分后量化的示意图;
图5为根据本发明另一实施例的神经网络模型的量化方法的流程示意图;
图6为根据本发明又一实施例的神经网络模型的量化方法的流程示意图;
图7为根据本发明一实施例的神经网络模型的量化装置的结构示意图;
图8为根据本发明另一实施例的神经网络模型的量化装置的结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本发明中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在的可能性。
另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
经训练的神经网络可能具有浮点类型参数,例如具有32比特浮点精度的权值参数。然而,浮点类型参数相对于定点类型参数需要相对大量的运算和相对频繁的存储器访问。基于此,为了减少运算量,可以对在神经网络模型中的浮点类型参数进行量化,将浮点类型数转换为具有特定比特数的定点类型参数,例如具有8比特定点精度的权值参数。其中,部署神经网络的设备例如可以是通过使用神经网络来执行语音识别、图像识别等的自主车辆、机器人、智能电话、平板设备、增强现实(AR)设备、物联网(IoT)设备等,但是本公开不限于此。
本发明实施例提出一种神经网络模型的量化方法。图1示意性地示出了根据本发明实施例的神经网络模型的量化方法100的流程示意图。
如图1所示,该方法100包括:
步骤101:确定神经网络模型中系数分布异常的目标卷积核;
步骤102:对目标卷积核进行拆分,得到多个子卷积核;
步骤103:对多个子卷积核分别进行量化以得到多个量化卷积核,并利用多个量化卷积核替代目标卷积核。
具体地,神经网络模型中包含多个待量化卷积核,可以从该多个待量化卷积核中确定系数分布异常的目标卷积核。其中,该系数分布异常可以指目标卷积核中包含的多个系数并非呈现正态分布,或该目标卷积核包含的多个系数的分布不平均或分布不集中。
本发明实施例中,量化可以指线性量化,线性量化的通常做法是将目标卷积核的所有系数按照某种映射关系从较为密集的数据空间(比如32比特浮点数,以下简称F32)映射到较为稀疏的空间(比如8比特定点数,以下简称INT8))进行量化,量化的方法一般是找到目标卷积核包含的所有系数的分布范围[Xmin,Xmax],假设量化后的目标量化位宽为INT8,由于INT8的表达范围为[0,255],那么上述线性量化相当于将[Xmin,Xmax]均分为255个单元,并将落入每一个单元的浮点系数转换为对应的定点数表达,比如Xmin转换后为0,Xmax转换后为255。
举例来说,图2示出了一种3×3×3的目标卷积核20,其包括(X1、X2、X3、…)等27个浮点类型的系数(图中未示出系数X10~X27),假设27个浮点类型的系数中的最大值Xmax为X9,最小值Xmin,为X1,且该27个系数中的X9相较其他系数则分布地较为离散。进一步地,图3示出了将该目标卷积核20中包括的27个浮点类型系数直接进行线性量化的示意图,可以看出,在直接对目标卷积核的多个系数进行线性量化的情况下,为了使Xmax=X9能用正确的定点表示,在不增加量化位宽的情况下,必然会导致其他正常分布的多个系数的精度降低。而如果直接对Xmax做饱和处理,又会造成性能下降。
本发明实施例中,如图4所示,可以将目标卷积核20拆分为子卷积核21与子卷积核22,使二者相加之和与目标卷积核20等同,并以系数0表示各个子卷积核中的空系数位置。其中,可以如图4所示通过逐个抽取的方式得到分布均匀的子卷积核21与子卷积核22。可选地,也可以使用其他拆分方式,比如将目标卷积核的多个系数按系数大小分为多组,并根据每个分组的系数确定子卷积核,本实施例对拆分方式不作具体限定。可选地,目标卷积核20也可以拆分为更多的子卷积核,本实施例对子卷积核的数量不作具体限制。进一步,如图4所示,可以对子卷积核21和子卷积核22分别进行量化,得到量化卷积核31和量化卷积核32,由于相较于原有的目标卷积核20的系数分布范围,各个子卷积核的系数分布范围至少部分地减小,因此对各个子卷积核进行量化所得到的量化卷积核具有更小的量化误差。由此可以看出,对于系数分布异常的目标卷积核来说,通过上述拆分卷积核,再对拆分得到的多个子卷积核分别进行量化以得到多个量化卷积核,用于实现目标卷积核的量化,从而减少了系数分布异常的目标卷积核的量化误差。
基于图1的神经网络模型的量化方法,本申请的一些实施例还提供了该量化处理方法的一些具体实施方案,以及扩展方案,下面进行说明。
在一些可能的实施方式中,上述步骤101还可以包括:获取神经网络模型中的任意一个待量化卷积核;根据待量化卷积核包含的多个系数的系数分布标准差确定第一阈值;确定待量化卷积核包含的多个系数中的最大值和/或最小值与均值之间的差值;当差值超过第一阈值,确定待量化卷积核为目标卷积核。
可选地,上述第一阈值优选取值为待量化卷积核包含的多个系数的系数分布标准差的3~6倍,从而不产生明显的性能损失。
可选地,还可以对任意一个待量化卷积核包含的多个系数的系数分布直方图进行分析以判断其是否为目标卷积核。
在一些可能的实施方式中,如图5所示,上述步骤102还可以包括:
步骤501:确定目标卷积核中的异常分布系数;
步骤502:根据异常分布系数对目标卷积核进行拆分。
具体地,可以确定目标卷积核的多个系数中不服从正态分布的一个或多个系数作为异常分布系数。举例来说,如图2所示,目标卷积核20中的异常分布系数可以是X9。
在一些可能的实施方式中,上述步骤501还可以包括:根据目标卷积核包含的多个系数的系数分布标准差而确定第二阈值;根据所确定的第二阈值确定目标卷积核中的异常分布系数。
具体地,上述第二阈值可以取值为目标卷积核包含的多个系数的系数分布标准差的3~6倍,或直接根据第一阈值确定该第二阈值。举例来说,在确定待量化卷积核A为目标卷积核之后,可以直接将待量化卷积核A的第一阈值作为该目标卷积核的第二阈值以避免重复运算,二者可以是等同的。根据所确定的第二阈值确定目标卷积核中的异常分布系数可以包括:确定目标卷积核包含的每个系数与多个系数的均值之间的差值,并通过判断该差值是否超过上述第二阈值而找到目标卷积核中的一个或多个异常分布参数。
在一些可能的实施方式中,如图6所示,上述步骤502还可以包括:
步骤601:将目标卷积核中的异常分布系数进行分解,得到非异常的多个分解系数;
步骤602:利用多个分解系数形成多个分组,其中每个分组包含多个分解系数的任意一个分解系数;
步骤603:将目标卷积核中的多个非异常分布系数分别划分至多个分组中,其中每个分组包含至少一个非异常分布系数;
步骤604:利用多个分组中的非异常分布系数和分解系数形成多个子卷积核。
举例来说,如图2所示,目标卷积核20中包含异常分布系数X9和多个非异常分布的系数,可以将异常分布系数X9进行分解,得到两个非异常的分解系数1/2X9,将目标卷积核20包含的多个系数分为两个分组,每个分组中包含一个1/2X9,然后将每个非异常分布系数各自划分到任一个分组中,从而形成子卷积核21和子卷积核22。
在一些可能的实施方式中,上述步骤601,还可以包括:利用二分法对异常分布系数进行至少一次对半分解,直至得到非异常的多个分解系数,其中利用第二阈值判断多个分解系数是否非异常。
举例来说,利用二分法对异常分布系数X9进行第一次对半分解,得到两个1/2X9的分解参数。然而在一些情况中1/2X9可能仍属于异常分布的系数,此时可以对1/2X9进行再次对半分解,得到四个1/4X9的分解参数,诸如此类,直至得到非异常分布的分解参数。
在一些可能的实施方式中,上述步骤603还可以包括:基于均匀抽取操作将多个非异常分布系数分别划分至多个分组中,使多个子卷积核中的系数分布均匀。
举例来说,参见图4,子卷积核21可以包括:(X1,0,X3,0,X5,0,X7,0,1/2X9,...);子卷积核21中可以包括:(0,X2,0,X4,0,X6,0,X8,1/2X9,...);
在一些可能的实施方式中,上述步骤103还可以包括:根据多个子卷积核的系数分布确定量化边界;根据所确定的量化边界和目标量化位宽对多个子卷积核分别进行量化。
举例来说,参见图4,可以对子卷积核21执行线性量化得到量化卷积核31,对子卷积核22执行线性量化得到量化卷积核32。并利用量化卷积核31和量化卷积核32在神经网络模型中替代原有的目标卷积核20以执行定点类型的神经网络运算。
基于相同的技术构思,本发明实施例还提供一种神经网络模型的量化装置,用于执行上述任一实施例所提供的神经网络模型的量化方法。图7为本发明实施例提供的一种神经网络模型的量化装置的结构示意图。
如图7所示,该装置700包括:
确定模块701,用于确定神经网络模型中系数分布异常的目标卷积核;
拆分模块702,用于对目标卷积核进行拆分,得到多个子卷积核;
量化模块703,用于对多个子卷积核分别进行量化以得到多个量化卷积核,并利用多个量化卷积核替代目标卷积核。
在一些可能的实施方式中,确定模块701还可以用于:获取神经网络模型中的任意一个待量化卷积核;根据待量化卷积核包含的多个系数的系数分布标准差确定第一阈值;确定待量化卷积核包含的多个系数中的最大值和/或最小值与均值之间的差值;当差值超过第一阈值,确定待量化卷积核为目标卷积核。
在一些可能的实施方式中,拆分模块702还可以用于:确定目标卷积核中的异常分布系数;根据异常分布系数对目标卷积核进行拆分。
在一些可能的实施方式中,拆分模块702还可以用于:根据目标卷积核包含的多个系数的系数分布标准差而确定第二阈值;根据所确定的第二阈值确定目标卷积核中的异常分布系数。
在一些可能的实施方式中,拆分模块702还可以用于:将目标卷积核中的异常分布系数进行分解,得到非异常的多个分解系数;利用多个分解系数形成多个分组,其中每个分组包含多个分解系数的任意一个分解系数;将目标卷积核中的多个非异常分布系数分别划分至多个分组中,其中每个分组包含至少一个非异常分布系数;利用多个分组中的非异常分布系数和分解系数形成多个子卷积核。
在一些可能的实施方式中,拆分模块702还可以用于:利用二分法对异常分布系数进行至少一次对半分解,直至得到非异常的多个分解系数,其中利用第二阈值判断多个分解系数是否非异常。
在一些可能的实施方式中,拆分模块702还可以用于:基于均匀抽取操作将多个非异常分布系数分别划分至多个分组中,使多个子卷积核中的系数分布均匀。
在一些可能的实施方式中,量化模块703还可以用于:根据多个子卷积核的系数分布确定量化边界;根据所确定的量化边界和目标量化位宽对多个子卷积核分别进行线性量化。
需要说明的是,本申请实施例中的神经网络模型的量化装置可以实现前述神经网络模型的量化方法的实施例的各个过程,并达到相同的效果和功能,这里不再赘述。
图8为根据本申请一实施例的一种神经网络模型的量化装置的示意图,用于执行如图1所示出的神经网络模型的量化方法,该装置包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:确定神经网络模型中系数分布异常的目标卷积核;对目标卷积核进行拆分,得到多个子卷积核;对多个子卷积核分别进行量化以得到多个量化卷积核,并利用多个量化卷积核替代目标卷积核。
本申请一实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有程序,当程序被多核处理器执行时,使得该多核处理器执行:确定神经网络模型中系数分布异常的目标卷积核;对目标卷积核进行拆分,得到多个子卷积核;对多个子卷积核分别进行量化以得到多个量化卷积核,并利用多个量化卷积核替代目标卷积核。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以其描述进行了简化,相关之处可参见方法实施例的部分说明即可。
本申请实施例提供的装置和计算机可读存储介质与方法是一一对应的,因此,装置、设备和计算机可读存储介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述装置、设备和计算机可读存储介质的有益技术效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (18)
1.一种神经网络模型的量化方法,其特征在于,包括:
确定神经网络模型中系数分布异常的目标卷积核;
对所述目标卷积核进行拆分,得到多个子卷积核;
对所述多个子卷积核分别进行量化以得到多个量化卷积核,并利用所述多个量化卷积核替代所述目标卷积核。
2.由权利要求1所述的方法,其特征在于,所述确定神经网络模型中系数分布异常的目标卷积核,还包括:
获取所述神经网络模型中的任意一个待量化卷积核;
根据所述待量化卷积核包含的多个系数的系数分布标准差确定第一阈值;
确定所述待量化卷积核包含的多个系数中的最大值和/或最小值与均值之间的差值;
当所述差值超过所述第一阈值,确定所述待量化卷积核为所述目标卷积核。
3.由权利要求1所述的方法,其特征在于,对所述目标卷积核进行拆分,还包括:
确定所述目标卷积核中的异常分布系数;
根据所述异常分布系数对所述目标卷积核进行拆分。
4.由权利要求3所述的方法,其特征在于,确定所述目标卷积核中的异常分布系数,还包括:
根据所述目标卷积核包含的多个系数的系数分布标准差而确定第二阈值;
根据所确定的第二阈值确定所述目标卷积核中的异常分布系数。
5.由权利要求3所述的方法,其特征在于,根据所述异常分布系数对所述目标卷积核进行拆分,还包括:
将所述目标卷积核中的异常分布系数进行分解,得到非异常的多个分解系数;
利用所述多个分解系数形成多个分组,其中每个分组包含所述多个分解系数的任意一个分解系数;
将所述目标卷积核中的多个非异常分布系数分别划分至所述多个分组中,其中每个分组包含至少一个所述非异常分布系数;
利用所述多个分组中的所述非异常分布系数和所述分解系数形成所述多个子卷积核。
6.由权利要求5所述的方法,其特征在于,将所述目标卷积核中的异常分布系数进行分解,得到非异常的多个分解系数,还包括:
利用二分法对所述异常分布系数进行至少一次对半分解,直至得到所述非异常的多个分解系数,其中利用所述第二阈值判断所述多个分解系数是否非异常。
7.由权利要求5所述的方法,其特征在于,将所述目标卷积核中的多个非异常分布系数分别划分至所述多个分组中,还包括:
基于均匀抽取操作将所述多个非异常分布系数分别划分至所述多个分组中,使所述多个子卷积核中的系数分布均匀。
8.由权利要求1所述的方法,其特征在于,对所述多个子卷积核分别进行量化,还包括:
根据所述多个子卷积核的系数分布确定量化边界;
根据所确定的量化边界和目标量化位宽对所述多个子卷积核分别进行线性量化。
9.一种神经网络模型的量化装置,其特征在于,包括:
确定模块,用于确定神经网络模型中系数分布异常的目标卷积核;
拆分模块,用于对所述目标卷积核进行拆分,得到多个子卷积核;
量化模块,用于对所述多个子卷积核分别进行量化以得到多个量化卷积核,并利用所述多个量化卷积核替代所述目标卷积核。
10.由权利要求9所述的装置,其特征在于,所述确定模块还用于:
获取所述神经网络模型中的任意一个待量化卷积核;
根据所述待量化卷积核包含的多个系数的系数分布标准差确定第一阈值;
确定所述待量化卷积核包含的多个系数中的最大值和/或最小值与均值之间的差值;
当所述差值超过所述第一阈值,确定所述待量化卷积核为所述目标卷积核。
11.由权利要求9所述的装置,其特征在于,所述拆分模块还用于:
确定所述目标卷积核中的异常分布系数;
根据所述异常分布系数对所述目标卷积核进行拆分。
12.由权利要求11所述的装置,其特征在于,所述拆分模块还用于:
根据所述目标卷积核包含的多个系数的系数分布标准差而确定第二阈值;
根据所确定的第二阈值确定所述目标卷积核中的异常分布系数。
13.由权利要求11所述的装置,其特征在于,所述拆分模块还用于:
将所述目标卷积核中的异常分布系数进行分解,得到非异常的多个分解系数;
利用所述多个分解系数形成多个分组,其中每个分组包含所述多个分解系数的任意一个分解系数;
将所述目标卷积核中的多个非异常分布系数分别划分至所述多个分组中,其中每个分组包含至少一个所述非异常分布系数;
利用所述多个分组中的所述非异常分布系数和所述分解系数形成所述多个子卷积核。
14.由权利要求13所述的装置,其特征在于,所述拆分模块还用于:
利用二分法对所述异常分布系数进行至少一次对半分解,直至得到所述非异常的多个分解系数,其中利用所述第二阈值判断所述多个分解系数是否非异常。
15.由权利要求13所述的装置,其特征在于,所述拆分模块还用于:
基于均匀抽取操作将所述多个非异常分布系数分别划分至所述多个分组中,使所述多个子卷积核中的系数分布均匀。
16.由权利要求9所述的装置,其特征在于,所述量化模块还用于:
根据所述多个子卷积核的系数分布确定量化边界;
根据所确定的量化边界和目标量化位宽对所述多个子卷积核分别进行线性量化。
17.一种神经网络模型的量化装置,其特征在于,包括:
至少一个处理器;以及,
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:
确定神经网络模型中系数分布异常的目标卷积核;
对所述目标卷积核进行拆分,得到多个子卷积核;
对所述多个子卷积核分别进行量化以得到多个量化卷积核,并利用所述多个量化卷积核替代所述目标卷积核。
18.一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被多核处理器执行时,使得所述多核处理器执行如权利要求1-8中任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911062937.0A CN112749783A (zh) | 2019-10-31 | 2019-10-31 | 一种神经网络模型的量化方法、装置及计算机可读存储介质 |
US17/771,969 US20220398413A1 (en) | 2019-10-31 | 2020-09-29 | Quantization method and device for neural network model, and computer-readable storage medium |
PCT/CN2020/118673 WO2021082851A1 (zh) | 2019-10-31 | 2020-09-29 | 一种神经网络模型的量化方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911062937.0A CN112749783A (zh) | 2019-10-31 | 2019-10-31 | 一种神经网络模型的量化方法、装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112749783A true CN112749783A (zh) | 2021-05-04 |
Family
ID=75645007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911062937.0A Pending CN112749783A (zh) | 2019-10-31 | 2019-10-31 | 一种神经网络模型的量化方法、装置及计算机可读存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220398413A1 (zh) |
CN (1) | CN112749783A (zh) |
WO (1) | WO2021082851A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326985A (zh) * | 2016-08-18 | 2017-01-11 | 北京旷视科技有限公司 | 神经网络训练方法和装置及数据处理方法和装置 |
CN106557812A (zh) * | 2016-11-21 | 2017-04-05 | 北京大学 | 基于dct变换的深度卷积神经网络压缩与加速方案 |
US11354577B2 (en) * | 2017-03-15 | 2022-06-07 | Samsung Electronics Co., Ltd | System and method for designing efficient super resolution deep convolutional neural networks by cascade network training, cascade network trimming, and dilated convolutions |
CN110059796B (zh) * | 2018-01-19 | 2021-09-21 | 杭州海康威视数字技术股份有限公司 | 卷积神经网络的生成方法及装置 |
-
2019
- 2019-10-31 CN CN201911062937.0A patent/CN112749783A/zh active Pending
-
2020
- 2020-09-29 US US17/771,969 patent/US20220398413A1/en active Pending
- 2020-09-29 WO PCT/CN2020/118673 patent/WO2021082851A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20220398413A1 (en) | 2022-12-15 |
WO2021082851A1 (zh) | 2021-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kim et al. | Squeezellm: Dense-and-sparse quantization | |
TWI796286B (zh) | 一種機器學習系統的訓練方法和訓練系統 | |
CN107122327B (zh) | 一种利用训练数据训练模型的方法和训练系统 | |
CN111126558B (zh) | 一种卷积神经网络计算加速方法及装置、设备、介质 | |
US20200151573A1 (en) | Dynamic precision scaling at epoch granularity in neural networks | |
KR20210053160A (ko) | 인공 신경망을 위한 구간 양자화 방법 | |
CN114528924B (zh) | 一种图像分类模型的推理方法、装置、设备及介质 | |
CN111008701A (zh) | 一种基于神经网络的数据量化方法、装置及计算机可读存储介质 | |
CN105700956A (zh) | 用于处理分布式作业的方法和系统 | |
US11294763B2 (en) | Determining significance levels of error values in processes that include multiple layers | |
CN109034384B (zh) | 一种数据处理方法和装置 | |
CN114741389A (zh) | 模型参数调整方法、装置、电子设备及存储介质 | |
CN110928941B (zh) | 一种数据分片抽取方法及装置 | |
CN112749783A (zh) | 一种神经网络模型的量化方法、装置及计算机可读存储介质 | |
CN117196000A (zh) | 一种容器化部署的边缘侧模型推理加速方法 | |
CN110309877B (zh) | 一种特征图数据的量化方法、装置、电子设备及存储介质 | |
US20220405561A1 (en) | Electronic device and controlling method of electronic device | |
CN112905189A (zh) | 模型翻译方法、装置及计算机可读存储介质 | |
CN111401518B (zh) | 一种神经网络量化方法、装置及计算机可读存储介质 | |
US20170097890A1 (en) | Computer-readable recording medium storing information processing program, information processing apparatus, and information processing method | |
CN114818458A (zh) | 系统参数优化方法、装置、计算设备及介质 | |
CN111401518A (zh) | 一种神经网络量化方法、装置及计算机可读存储介质 | |
CN107273430A (zh) | 一种数据存储方法和装置 | |
CN108599773B (zh) | 一种基于确定性测量矩阵的振动信号数据压缩采集方法 | |
CN115293330A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240513 Address after: Room 101, 20th Floor, Building 1, Zone 1, No. 81 Beiqing Road, Haidian District, Beijing, 100094 Applicant after: Beijing Sisheng Technology Co.,Ltd. Country or region after: China Address before: Room 206, 2 / F, building C, phase I, Zhongguancun Software Park, No. 8, Dongbei Wangxi Road, Haidian District, Beijing 100094 Applicant before: Canaan Bright Sight Co.,Ltd. Country or region before: China |