CN114418097A - 神经网络量化处理方法、装置、电子设备及存储介质 - Google Patents
神经网络量化处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114418097A CN114418097A CN202210249363.3A CN202210249363A CN114418097A CN 114418097 A CN114418097 A CN 114418097A CN 202210249363 A CN202210249363 A CN 202210249363A CN 114418097 A CN114418097 A CN 114418097A
- Authority
- CN
- China
- Prior art keywords
- interval
- neural network
- sample
- data
- distribution value
- 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
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/08—Learning methods
-
- 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
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)
- Image Analysis (AREA)
Abstract
本公开关于一种神经网络量化处理方法、装置、电子设备及存储介质,包括:将样本集中的所有样本分别输入含有至少一个归一化层的神经网络模型,获得至少一个归一化层输出的分别对应于每一个样本的归一化输出数据;根据归一化输出数据,获得所有样本的分布范围;对分布范围划分至少两个区间范围;计算落入每一个区间范围内的输出数据的分布值子数据,得到分布值数据,并从每一个区间段内获取预设数量的分布值数据;根据所获取的分布值数据,从样本集中获取与所获取的分布值数据相对应的样本,组成后训练量化样本集;利用后训练量化样本集对神经网络模型进行训练获得量化神经网络模型;基于量化神经网络模型执行分类、检测中的至少一种操作。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种神经网络量化处理方法、装置、电子设备及存储介质。
背景技术
为了满足各种AI(Artificial Intelligence,人工智能)应用对检测精度的要求,深度神经网络结构的宽度、层数、深度以及各类参数等数量急速上升,导致深度学习模型需要更大的空间需求,更低的推理效率。对神经网络模型的量化能够将浮点计算转成低比特定点计算,可以有效的降低模型计算强度、参数大小和内存消耗,合理的量化几乎不会有精度损失,其适用于绝大多数模型和使用场景。
然而若要实现合理的量化仍然具有很大的挑战,例如对于已经完成训练的神经网络模型引入量化后,需要进行后训练量化,虽然可以不对神经网络模型重新进行训练,但也需要样本集中的部分样本来进行量化校准,而受制于样本在样本集中的分布,选择出来的进行后训练量化的样本仍然会影响到神经网络模型的效果。所以,对于如何选择后训练量化样本集以满足快速准确的分类、检测等操作,仍是亟待解决的问题。
发明内容
有鉴于此,本公开提供一种神经网络量化处理方法、装置、电子设备及存储介质,以改善后训练量化样本集的选择,使得从样本集中所获取的后训练量化样本集的样本的分布更加均匀,进而提升后训练量化的神经网络模型的效果,确保了后训练量化的神经网络模型对分类、检测等操作的快速准确的执行。
本公开的技术方案是这样实现的:
一种神经网络量化处理方法,包括:
步骤A、将样本集中的第k样本输入到含有N个归一化层的神经网络模型中的至少一个归一化层中,其中,所述样本集包括M个样本,M的取值为大于1的正整数,所述第k样本为所述M个样本中的任意一个,N的取值为大于0的正整数;
步骤B、获得所述至少一个归一化层的中的每一个归一化层的多个输出数据;
步骤C、针对所述每一个归一化层,根据所述多个输出数据确定至少两个区间范围,其中,每个区间范围都有各自对应的参考值;
步骤D、针对所述每一个归一化层,根据每个输出数据所在的区间范围的参考值,得到分布值子数据;
步骤E、根据所述至少一个归一化层中的分布值子数据,计算得到所述第k样本的分布值数据;
步骤F、对部分或者全部样本执行步骤A到步骤E,分别得到与各个样本对应的分布值数据;
步骤G、根据所获得的部分或者全部的分布值数据,划分为多个区间段,并获取与每个所述区间段对应的至少一个样本,组成后训练量化样本集;
步骤H、利用所述后训练量化样本集对所述神经网络模型进行训练获得量化神经网络模型。
进一步,所述步骤C包括:
根据所述多个输出数据,计算所述多个输出数据的平均值和标准差;
根据所述平均值和所述标准差,确定标准范围区间;
将所述标准范围区间以外的区域,根据与所述标准范围区间的距离,划分出多个非标准区间,并分别设定所述标准范围区间的参考值和所述非标准区间的参考值。
进一步,所述根据所述平均值和所述标准差,确定标准范围区间,包括:
将所述平均值与所述标准差相减,获得左边界;
将所述平均值与所述标准差相加,获得右边界;
将所述左边界和所述右边界之间的区间,确定为所述标准范围区间;
以及,
所述将所述标准范围区间以外的区域,根据与所述标准范围区间的距离,划分出多个非标准区间,并分别设定所述标准范围区间的参考值和所述非标准区间的参考值,包括:
从所述左边界和所述右边界分别向远离所述标准范围区间的方向按照设置的区间步长划分出多个所述非标准区间;
根据各个所述非标准区间与所述标准范围区间之间的区间步长,设定各个所述非标准区间的参考值。
进一步,所述神经网络量化处理方法,还包括:
将所述标准差设置为所述区间步长。
进一步,所述步骤D包括:
将所述输出数据所在的每个区间范围的参考值相加,得到对应于所述每一个归一化层的分布值子数据;
或者,
针对所述输出数据所在的每个区间范围的参考值,对其中至少一个参考值进行加权后相加,得到对应于所述每一个归一化层的分布值子数据。
进一步,所述神经网络量化处理方法还包括:
将所述参考值相加得到的结果,除以所述参考值对应的归一化层的多个输出数据的总个数得到分布值子数据;
或者,
针对每个输出数据所在的区间范围的参考值,对其中至少一个参考值进行加权后相加得到的结果,除以所述参考值对应的归一化层的多个输出数据的总个数得到分布值子数据。
进一步,所述步骤G中的根据所获得的部分或者全部的分布值数据,划分为多个区间段,并获取与每个所述区间段对应的至少一个样本,还包括:
将部分或者全部的所述分布值数据单调排序;
将单调排序的所述分布值数据划分为多个区间段,并获取与每个所述区间段对应的至少一个样本数据。
进一步,所获取的分别与每个所述区间段对应的样本数据的数量相等。
一种神经网络量化处理装置,包括:
样本输入模块,被配置为执行:将样本集中的第k样本输入到含有N个归一化层的神经网络模型中的至少一个归一化层中,其中,所述样本集包括M个样本,M的取值为大于1的正整数,所述第k样本为所述M个样本中的任意一个,N的取值为大于0的正整数;
输出数据获取模块,被配置为执行:获得所述至少一个归一化层的中的每一个归一化层的多个输出数据;
区间范围确定模块,被配置为执行:针对所述每一个归一化层,根据所述多个输出数据确定至少两个区间范围,其中,每个区间范围都有各自对应的参考值;
分布值子数据获取模块,被配置为执行:针对所述每一个归一化层,根据每个输出数据所在的区间范围的参考值,得到分布值子数据;
分布值数据获取模块,被配置为执行:根据所述至少一个归一化层中的分布值子数据,计算得到所述第k样本的分布值数据;
多样本分布值数据获取模块,被配置为执行:调用样本输入模块、输出数据获取模块、区间范围确定模块、分布值子数据获取模块和分布值数据获取模块,以分别得到与各个样本对应的分布值数据;
区间段划分与样本获取模块,被配置为执行:根据所获得的部分或者全部的分布值数据,划分为多个区间段,并获取与每个所述区间段对应的至少一个样本,组成后训练量化样本集;
训练模块,被配置为执行:利用所述后训练量化样本集对所述神经网络模型进行训练获得量化神经网络模型。
一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行如上任一项所述的神经网络量化处理方法。
一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行如上任一项所述的神经网络量化处理方法。
一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上所述的神经网络量化处理方法中的步骤。
从上述方案可以看出,本公开实施例的神经网络量化处理方法、装置电子设备及存储介质,将样本集中的所有样本分别输入含有至少一个归一化层的神经网络,获得至少一个归一化层输出的分别对应于每一个样本的归一化输出数据后,按照样本集的各个样本的归一化输出数据的分布而选择样本组成后训练量化样本集,保证所选择的样本是在样本集中的在个性的表达上来说分布是均匀的,其中,根据每一个样本的归一化输出数据中落入标准范围区间外的能够反映样本的个性的元素,确定样本分布值数据,实现了由样本分布值数据反映样本的个性,再根据样本分布值数据不同,划分多个区间段,并设定从每一个区间段内,在样本集中从各个区间段获取相同数量的样本,组成后训练量化样本集,后训练量化样本集容纳了各种具有代表性的样本,提高了后训练量化的精度。在此基础上利用后训练量化样本集对神经网络模型进行训练获得量化神经网络模型,并基于量化神经网络模型执行分类、检测中的至少一种操作,确保了后训练量化的神经网络模型对分类、检测等操作的快速准确的执行。
附图说明
图1为本公开实施例的神经网络量化处理方法示意图;
图2为本公开实施例的神经网络量化处理方法的流程实例示例图;
图3为本公开实施例中标准区间和非标准区间的划分结构示意图;
图4为本公开实施例的神经网络量化处理装置结构示意图;
图5为本公开实施例的另一种神经网络量化处理方法流程示意图;
图6为本公开实施例的另一种神经网络量化处理装置结构示意图;
图7为本公开实施例的电子设备示意图。
具体实施方式
为了使本公开的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本公开作进一步详细说明。
如图1所示,本公开实施例的神经网络量化处理方法,包括以下步骤1至步骤5的内容。
步骤1、将样本集中的所有样本分别输入含有至少一个归一化层的神经网络模型,获得至少一个归一化层输出的分别对应于每一个样本的归一化输出数据;
步骤2、根据至少一个归一化层输出的分别对应于每一个样本的归一化输出数据,获得所有样本的分布范围;
步骤3、对分布范围划分至少两个区间范围;
步骤4、计算落入每一个区间范围内的所有归一化层输出的任意一个样本的归一化输出数据的分布值子数据,根据分布值子数据得到分布值数据,划分多个区间段,并设定从每一个区间段内,获取预设数量的分布值数据;
步骤5、从样本集中获取与上述各个区间段的分布值数据相对应的样本,组成后训练量化样本集;
步骤6、利用后训练量化样本集对神经网络模型进行训练获得量化神经网络模型;
步骤7、基于量化神经网络模型执行分类、检测中的至少一种操作。
其中,在引入归一化层之前,神经网络模型为已经完成训练的神经网络模型。在一些实施例中,样本集可以为针对该神经网络模型的验证集或测试集的中的一部分样本所组成的用于量化的样本集。
本公开实施例的神经网络量化处理方法,适用于对神经网络模型的后训练量化,为了确保量化后的神经网络模型与未量化时的精度的一致性,后训练量化样本集需要从对该神经网络模型进行训练的样本集中获取。
在一些示例中,为了使得从样本集中所获取的后训练量化样本集的样本的分布更加均匀,需要从样本集的所有样本中进行筛选,因此需要考虑所有样本在归一化后的神经网络模型中的数据表现,在这种情况下,在本公开实施例中,步骤1中将样本集中的所有样本分别输入含有至少一个归一化层的神经网络模型,获得至少一个归一化层输出的分别对应于每一个样本的归一化输出数据,以便于后续各个步骤中样本进行筛选以组成后训练量化样本集。
在一些示例中,归一化输出数据是以数组、矩阵形式表达,其中含有多个元素,在这种情况下,步骤4中的计算落入每一个区间范围内的所有归一化层输出的任意一个样本的归一化输出数据的分布值子数据,根据分布值子数据得到分布值数据,包括以下步骤211至步骤215。
步骤211、根据任意一个归一化层输出的任意一个样本的归一化输出数据,获得该归一化输出数据(即任意一个归一化层输出的任意一个样本的归一化输出数据)的所有元素的平均值和该所有元素的标准差。
步骤212、根据平均值和标准差,确定标准范围区间。
例如,设置标准范围区间[-σ,σ],σ为正数,以该区间右边界σ为准,与σ的距离分别为1σ,2σ,3σ……nσ(这里nσ表示n与σ相乘),其中,n为正整数,这样划分出n个非标准区间,即(1σ,2σ]、(2σ,3σ]、……、((n-1)σ,nσ]。类似的,以该区间左边界-σ为准,与-σ的距离分别为1σ,2σ,3σ……mσ(这里mσ表示m与σ相乘),其中,m为正整数,这样划分出m个非标准区间,即[-2σ,-1σ)、[-3σ,-2σ)、……、[-mσ,-(m-1)σ)。
步骤213、将标准范围区间以外的区域,根据与标准范围区间的距离,划分多个非标准区间,并设定各个非标准区间的参考值。
例如,非标准区间包括(1σ,2σ]、(2σ,3σ]、……、((n-1)σ,nσ]以及[-2σ,-1σ)、[-3σ,-2σ)、……、[-mσ,-(m-1)σ)。
步骤214、根据任意一个归一化层输出的任意一个样本的归一化输出数据的落入各个区间的元素以及各个区间所对应的参考值,获得任意一个归一化层输出的任意一个样本的归一化输出数据的分布值子数据。
在本公开实施例中,根据该归一化输出数据的落入标准范围区间的元素的参考值,以及落入各个非标准区间的元素的参考值,将上述参考值相加得到分布值子数据。
在本公开另一实施例中,落在标准范围区间例如[-σ,σ]认为是合理点,因此,将落入标准范围区间的元素的参考值计为0,那么,落入各区间的元素的参考值取决于落入各个非标准区间的元素的参考值,并且,将各个非标准区间的元素的参考值相加得到分布值子数据。
在本公开另一实施例中,根据与标准范围区间的距离,划分多个非标准范围区间,并设定各个非标准区间的参考值。例如,根据标准范围区间的左边界或者右边界,按照一定步长依次划分为多个非标准区间,并设定各个非标准范围区间的各自的参考值。其中,一定步长可以是对所有非标准范围区间具有相同的步长,当然也可以根据需要设置不同的步长,例如,距离标准范围区间距离越远,设置的步长可以越长,本领域技术人员应该可以理解,这并不构成对本公开的限制。其中,设定各个非标准范围区间的各自的参考值,可以对所有非标准范围区间设置不同的参考值,也可以将对称的非标准范围空间设置相同的参考值,也就是距离标准范围空间的中心点距离相同的那些非标准范围空间,例如,对于标准范围区间例如[-σ,σ],步长为σ,对于(2σ,3σ]或者[-3σ,-2σ),设置相同的参考值。当然,也可以根据需要设置不同的参考值。另外,这里的步长也可以是其他值,例如A,那么对于3A以及-3A类似的也可以设置相同值或者不同值。
在本公开一实施例中,设定各个非标准范围区间的各自的参考值,可以根据非标准范围区间位于相距标准范围区间的左边界或者右边界的具体区间段相关,根据区间段的数值设置各个非标准区间的参考值。例如,标准范围区间例如[-σ,σ],步长为σ,那么,非标准范围区间分别为(1σ,2σ]、(2σ,3σ]、……、((n-1)σ,nσ],对应的参考值分别为1,2,3……n,当然,也可以根据需要进行其他设置。例如,距离标准范围区间的上限和下限在一定距离之外,将其参考值设置更大数值。
步骤215、根据所有归一化层输出的任意一个样本的归一化输出数据的分布值子数据,得到任意一个样本的分布值数据。
其中,在步骤211中,首先,根据该归一化输出数据的所有元素,得到该归一化输出数据的所有元素平均值;之后,将该归一化输出数据的各个元素与平均值的差的平方和取平均,得到该归一化输出数据的所有元素的元素方差;最后,将该归一化输出数据的所有元素的元素方差取算术平方根,得到该归一化输出数据的所有元素的标准差。
在一些示例中,归一化输出数据的各个元素,一般符合正态分布,即距离平均值的元素的数量较多,远离平均值的元素的数量较少,并且,归一化输出数据的各个元素,还可能存在某些元素与平均值相距过大,而这些距离平均值过大的元素是能够反应样本与其他样本不同的特性的元素,本公开实施例中,将这些与平均值相距过大的元素进行统计,并以此作为后训练量化样本集中样本的选择依据,在这种情况下,需要对归一化输出数据的进行范围划分,以将与平均值相距过大的元素选择出来。
基于此,步骤212的根据平均值和标准差,确定标准范围区间,包括:
步骤2121、将平均值与标准差相减,获得左边界;
步骤2122、将平均值与标准差相加,获得右边界;
步骤2123、将左边界和右边界之间的区间,确定为标准范围区间。
本公开实施例中,标准范围区间内的元素反映出了各个样本之间的共性,而标准范围区间外的元素则反映出了各个样本的个性(即与其他样本的不同)。本公开实施例,利用这些从样本集中选择出具有不同代表性的样本,作为后训练量化样本集,使得后训练量化样本集容纳了各种具有代表性的样本,进而提高了后训练量化的精度。
在一些示例中,与平均值相距越大的元素,其对样本的个性贡献更大,在此情况下,对落入标准范围区间外的元素进行打分,并根据样本中所有落入标准范围区间外的元素的分数得到对应于样本的总分数,则该总分数能够反映出该样本的个性,进而根据各个样本的总分数进行样本的选择,在此情况下,需要对落入标准范围区间外的元素的打分进行规定。
在此情况下,在一些示例中,步骤213的将标准范围区间以外的区域,根据与标准范围区间的距离,划分多个非标准区间,并设定各个非标准区间的参考值,包括:
步骤2131、从标准范围区间的两侧向远离标准范围区间的方向按照设置的区间步长划分出多个非标准区间;
步骤2132、根据各个非标准区间与标准范围区间之间的区间步长,设定各个非标准区间的参考值。
在一些实施例中,本公开的神经网络量化处理方法,还可进一步包括:
将标准差设置为区间步长。
采用上述方案后,可以按照各个非标准区间的参考值对落入的元素进行打分。在此情况下,在一些示例中,步骤214的根据任意一个归一化层输出的任意一个样本的归一化输出数据的落入各个区间的元素以及各个区间所对应的参考值,获得任意一个归一化层输出的任意一个样本的归一化输出数据的分布值子数据,其中,根据落入各个非标准区间的元素以及各个非标准区间所对应的参考值,获得分布值子数据,其中的一种情况是,落入标准区间的元素所对应的参考值可以设为0,那么,该步骤包括:
步骤2141、根据任意一个归一化层输出的任意一个样本的归一化输出数据的落入任意一个非标准区间的任意一个元素,得到对应于任意一个元素的分布值;
步骤2142、将任意一个归一化层输出的任意一个样本的归一化输出数据的落入任意一个非标准区间的所有元素所对应的分布值相加,得到任意一个归一化层输出的任意一个样本的归一化输出数据的分布值子数据;
步骤2143、将所有归一化层输出的任意一个样本的归一化输出数据的分布值子数据相加,得到任意一个样本的分布值数据。
其中,步骤2142是将所有元素所对应的分布值的总和作为该任意一个样本的归一化输出数据的分布值子数据。除此以外,还可以根据需要采用例如相乘、取平均的方式得到该任意一个样本的归一化输出数据的分布值子数据。例如,步骤214中的获得任意一个归一化层输出的任意一个样本的归一化输出数据的分布值子数据,可以包括:步骤2142’、获得任意一个归一化层输出的任意一个样本的归一化输出数据的分布值,将分布值除以每个归一化层的归一化输出数据的总数得到分布值子数据。
在得到每一个归一化层输出的该任意一个样本的归一化输出数据的分布值子数据后,需要得到量化后的神经网络模型对样本所得到的总的分布值数据,在此情况下,在一些示例中,步骤215的根据所有归一化层输出的任意一个样本的归一化输出数据的分布值子数据,得到任意一个样本的分布值数据,包括:
将所有归一化层输出的该任意一个样本的归一化输出数据的分布值子数据相加,得到任意一个样本的分布值数据。
通过上述各个示例便可得到每一个样本的分布值数据。显然的,因为各个样本的不同,所以分布值数据之间并非全部相等,因此,在选取样本之前需要确定所有样本的分布值数据的区间段,在此情况下,在一些示例中,为了在样本集中获得多种个性明显的样本,而并非个性趋同的样本,以保证后训练量化样本集的全面性,步骤4中,划分多个区间段,并设定从每一个区间段内,获取预设数量的分布值数据,包括:
将所有样本的分布值数据单调排序;
在单调排序的分布值数据中,按照分布值数据的数量,划分多个区间段。这里所说的区间段可以不同与前面的区间范围。
为了保证在每个区间段所获取的样本数量的一致性,保证所组成的后训练量化样本集的全面性,在一些示例中,分布值数据的数量在各个区间范围内相等。
在步骤4中,从每一个区间段内,获取预设数量的分布值数据,在步骤5中,根据所获取的分布值数据,从样本集中获取与每个区间段的分布值数据相对应的样本,组成后训练量化样本集。采用该方案后,在每一个区间段内,获得的样本数量都相等,进而获得具有每一种个性的样本数量都相等,基于此,组成后训练量化样本集中的所有样本能够覆盖样本集中具有各种不同个性且分布均匀的样本,使得后训练量化样本集容纳了各种具有代表性的样本,进而提高了后训练量化的精度。
在完成步骤5后,在步骤6中,利用后训练量化样本集对神经网络模型进行训练获得量化神经网络模型,从而完成神经网络模型的量化训练。结合于实际应用场景,量化神经网络模型可执行分类、检测等各方面的应用,并且能够确保推理的快速准确。进而,在完成步骤6后,在步骤7中执行基于量化神经网络模型执行分类、检测中的至少一种操作,能够实现后训练量化的神经网络模型对分类、检测等操作的快速准确的执行。
本公开实施例的神经网络量化处理方法,将样本集中的所有样本分别输入含有至少一个归一化层的神经网络模型,获得至少一个归一化层输出的分别对应于每一个样本的归一化输出数据后,按照样本集的各个样本的归一化输出数据的分布而选择样本组成后训练量化样本集,保证所选择的样本是在样本集中的在个性的表达上来说分布是均匀的,其中,根据每一个样本的归一化输出数据中落入标准范围区间外的能够反映样本的个性的元素,确定样本分布值数据,实现了由样本分布值数据反映样本的个性,再根据样本分布值数据不同,从样本集中从各个区间段获取相同数量的样本,组成后训练量化样本集,后训练量化样本集容纳了各种具有代表性的样本,提高了后训练量化的精度。在此基础上利用后训练量化样本集对神经网络模型进行训练获得量化神经网络模型,并基于量化神经网络模型执行分类、检测中的至少一种操作,确保了后训练量化的神经网络模型对分类、检测等操作的快速准确的执行。
如图2所示,为本公开实施例的神经网络量化处理方法的流程实例示例图,该实例包括以下步骤。
步骤a、获取样本集,对样本集中每一个样本执行以下步骤b至步骤g。
步骤b、将样本输入含有至少一个归一化层的神经网络模型,获得每一个归一化层输出的对应于该样本的归一化输出数据,对每一个归一化层输出的对应于该样本的归一化输出数据执行以下步骤c至步骤f。
其中,样本集为针对该神经网络模型的验证集或测试集的中的一部分样本所组成的用于量化的样本集。
步骤c、根据该归一化层输出的该样本的归一化输出数据,获得该归一化输出数据的所有元素的平均值和标准差。
步骤d、根据该归一化输出数据的所有元素的平均值和标准差,确定标准范围区间。
在可选实施例中,在步骤d中,将该平均值与该标准差相减,获得标准范围区间的左边界,将该平均值与该标准差相加,获得标准范围区间的右边界,将左边界和右边界之间的区间为标准范围区间。
步骤e、将标准范围区间以外的区域,根据与该标准范围区间的距离,划分多个非标准区间,并设定各个非标准区间的参考值。
在可选实施例中,将该标准差设定为区间步长,从标准范围区间的两侧向远离标准范围区间的方向按照区间步长划分出多个非标准区间,根据各个非标准区间与标准范围区间之间的区间步长,设定各个非标准区间的参考值。
图3示出了本公开实施例中标准区间和非标准区间的划分结构,如图3所示,归一化输出数据的所有元素的平均值为μ、标准差为σ,则标准范围区间是以μ为中心的μ-σ到μ+σ之间的区域,从标准范围区间起向远离标准范围区间的(左右两侧)方向扩展1个区间步长范围(σ)内的第一非标准区间的参考值为1倍σ,从第一非标准区间起向远离标准范围区间的方向再扩展1个σ范围内的第二非标准区间的参考值为2倍σ,从第二非标准区间起向远离标准范围区间的方向再扩展1个σ范围内的第三非标准区间的参考值为3倍σ,依此类推,划分出多个非标准区间,并获得各个非标准区间的参考值。在前述的设置标准范围区间[-σ,σ]的实施例中,归一化输出数据的所有元素的平均值为μ=0。
步骤f、根据该归一化输出数据的落入各个非标准区间的元素以及各个非标准区间所对应的参考值,得到该归一化输出数据的分布值子数据。
在可选实施例中,不考虑该归一化输出数据中落入标准区间的元素,或者将该归一化输出数据中落入标准区间的元素的分布值设为0。该归一化输出数据中落入非标准区间的元素与各个非标准区间进行比较,若元素落入某个非标准区间则该元素的分布值被赋值为该元素所落入的该非标准区间的参考值,例如,若元素落入第一非标准区间则该元素的分布值被赋值为1倍σ,若元素落入第二非标准区间则该元素的分布值被赋值为2倍σ,若元素落入第三非标准区间则该元素的分布值被赋值为3倍σ,以此类推。
在可选实施例中,在不考虑该归一化输出数据中落入标准区间的元素的情况下,将该归一化输出数据中所有落入非标准区间的元素的分布值相加,得到该归一化输出数据的分布值子数据。
在可选实施例中,在将该归一化输出数据中落入标准区间的元素的分布值设为0的情况下,将该归一化输出数据中所有的元素的分布值相加,得到该归一化输出数据的分布值子数据。
至此,便完成了一个归一化层对一个样本的归一化输出数据的分布值子数据的获取。
步骤g、根据所有归一化层输出的该样本的归一化输出数据的分布值子数据,得到该任意一个样本的分布值数据。
在可选实施例中,量化神经网络模型可以含有多于一个归一化层的结构,将一个样本输入量化神经网络模型后,每一个归一化层均会得到各自的归一化输出数据,在此情况下,在将一个样本输入到量化神经网络模型中得到所有归一化层输出的对应于该样本的归一化输出数据后,将得到的所有归一化层输出的对应于该样本的归一化输出数据相加,得到该样本的分布值数据。该样本的分布值数据表征了量化神经网络模型中的所有归一化层对该样本的分布值所做出的总贡献。
将样本集中所有样本输入含有至少一个归一化层的神经网络模型并执行上述步骤b至步骤g的过程,得到所有样本的分布值数据。
步骤h、将所有样本的分布值数据的总的分布范围,确定为所有样本的分布值数据的分布范围。
步骤i、将所有样本的分布值数据单调排序。
在可选实施例中,可将所有样本的分布值数据按照从大到小的顺序或者从小到大的顺序单调排序。
步骤j、在单调排序的分布值数据中,按照分布值数据的数量,对分布范围划分为至少两个区间段。
在可选实施例中,分布值数据的数量在各个区间段内相等。每个分布值数据均分别一一对应于一个样本,分布值数据的数量即为样本数量,因此,对分布值数据的排序即为对样本的排序。按照分布值数据的数量,对分布范围划分为至少两个区间段,即为按照分布值数据的大小对所有样本进行排序。
分布值数据由反映样本个性的归一化输出数据中的元素所得到,因此,分布值数据同样反映了样本个性,按照分布值数据的大小对所有样本进行的排序表征了样本的个性排序。
步骤k、从每一个区间段内,获取相同数量的分布值数据。
在可选实施例中,可采用随机方法在每一个区间范围内,获取相同数量的分布值数据。
在可选实施例中,可以根据预设条件在每一个区间段内,获取相同数量的分布值数据。例如,获取每个区间段内的起始位置的和/或中间位置的和/或末尾位置的预定数量的分布值数据。
步骤l、根据所获取的分布值数据,从样本集中获取与所获取的分布值数据相对应的样本,组成后训练量化样本集。
其中,由于分布值数据反映了样本个性,因此,分布值数据处于同一个区间段内的样本之间的个性相近,这种情况下,从每一个区间段内获取相同数量的分布值数据并根据获取的分布值数据从样本集中获取对应的样本,涵盖了样本集中各种样本个性的情况,进而所组成的后训练量化样本集容纳了各种具有代表性的样本,能够提高后训练量化的精度。
步骤m、利用后训练量化样本集对神经网络模型进行训练获得量化神经网络模型。
步骤n、基于量化神经网络模型执行分类、检测中的至少一种操作。
利用后训练量化样本集对神经网络模型进行训练获得量化神经网络模型,并基于量化神经网络模型执行分类、检测中的至少一种操作,确保了后训练量化的神经网络模型对分类、检测等操作的快速准确的执行。
图4为本公开实施例提供的神经网络量化处理装置结构示意图,如图4所示,本公开实施例的神经网络量化处理装置包括归一化数据获取单元401、分布数据获取单元402、区间划分单元403、分布值选择单元404、样本集生成单元405、训练单元406和执行单元407。其中,归一化数据获取单元401,用于将样本集中的所有样本分别输入含有至少一个归一化层的神经网络模型,获得至少一个归一化层输出的分别对应于每一个样本的归一化输出数据。分布数据获取单元402,用于根据至少一个归一化层输出的分别对应于每一个样本的归一化输出数据,获得所有样本的分布值数据和分布范围。区间划分单元403,用于对分布范围划分至少两个区间范围。分布值选择单元404,用于计算落入每一个区间范围内的所有归一化层输出的任意一个样本的归一化输出数据的分布值子数据,根据分布值子数据得到分布值数据,并从每一个区间段内,获取预设数量的分布值数据。样本集生成单元405,用于根据所获取的分布值数据,从样本集中获取与所获取的分布值数据相对应的样本,组成后训练量化样本集。训练单元406,用于利用后训练量化样本集对神经网络模型进行训练获得量化神经网络模型。执行单元407,用于基于量化神经网络模型执行分类、检测中的至少一种操作。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
关于上述实施例中的神经网络量化处理装置,其中各个单元执行操作的具体方式已经在有关该神经网络量化处理方法的实施例中进行了详细描述,此处将不作详细阐述说明。
需要说明的是:上述实施例仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
基于上述图2所示流程实例示例图相关的实施例,本公开实施例还提供了另一种神经网络量化处理方法,图5是本公开实施例的另一种神经网络量化处理方法流程示意图,如图5所示,该神经网络量化处理方法,包括以下步骤。
步骤A、将样本集中的第k样本输入到含有N个归一化层的神经网络模型中的至少一个归一化层中,其中,样本集包括M个样本,M的取值为大于1的正整数,第k样本为M个样本中的任意一个,N的取值为大于0的正整数。
步骤B、获得至少一个归一化层的中的每一个归一化层的多个输出数据。
步骤C、针对每一个归一化层,根据多个输出数据确定至少两个区间范围,其中,每个区间范围都有各自对应的参考值。
步骤D、针对每一个归一化层,根据每个输出数据所在的区间范围的参考值,得到分布值子数据。
步骤E、根据至少一个归一化层中的分布值子数据,计算得到第k样本的分布值数据。
步骤F、对部分或者全部样本执行步骤A到步骤E,分别得到与各个样本对应的分布值数据。
步骤G、根据所获得的部分或者全部的分布值数据,划分为多个区间段,并获取与每个区间段对应的至少一个样本,组成后训练量化样本集。
步骤H、利用后训练量化样本集对神经网络模型进行训练获得量化神经网络模型。
在一些实施例中,步骤C包括:
根据多个输出数据,计算多个输出数据的平均值和标准差;
根据平均值和所述标准差,确定标准范围区间;
将标准范围区间以外的区域,根据与标准范围区间的距离,划分出多个非标准区间,并分别设定标准范围区间的参考值和非标准区间的参考值。
在一些实施例中,上述说明中的根据平均值和标准差,确定标准范围区间,包括:
将平均值与标准差相减,获得左边界;
将平均值与标准差相加,获得右边界;
将左边界和右边界之间的区间,确定为标准范围区间;
以及,
上述说明中的将标准范围区间以外的区域,根据与标准范围区间的距离,划分出多个非标准区间,并分别设定标准范围区间的参考值和非标准区间的参考值,包括:
从左边界和右边界分别向远离标准范围区间的方向按照设置的区间步长划分出多个非标准区间;
根据各个非标准区间与标准范围区间之间的区间步长,设定各个非标准区间的参考值。
在一些实施例中,本公开实施例的神经网络量化处理方法,还包括:
将标准差设置为区间步长。
在一些实施例中,步骤D包括:
将输出数据所在的每个区间范围的参考值相加,得到对应于每一个归一化层的分布值子数据;
或者,
针对输出数据所在的每个区间范围的参考值,对其中至少一个参考值进行加权后相加,得到对应于每一个归一化层的分布值子数据。
在一些实施例中,本公开实施例的神经网络量化处理方法还包括:
将参考值相加得到的结果,除以参考值对应的归一化层的多个输出数据的总个数得到分布值子数据;
或者,
针对每个输出数据所在的区间范围的参考值,对其中至少一个参考值进行加权后相加得到的结果,除以参考值对应的归一化层的多个输出数据的总个数得到分布值子数据。
在一些实施例中,步骤G中的根据所获得的部分或者全部的分布值数据,划分为多个区间段,并获取与每个区间段对应的至少一个样本,还包括:
将部分或者全部的分布值数据单调排序;
将单调排序的分布值数据划分为多个区间段,并获取与每个区间段对应的至少一个样本数据。
在一些实施例中,所获取的分别与每个区间段对应的样本数据的数量相等。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
关于上述实施例中的神经网络量化处理方法,其中各个步骤中的进一步具体实时方式可参见前述中的与图1、图2、图3相关的神经网络量化处理方法的各个实施例中的说明,此处不作详细阐述说明。
图6为根据本公开实施例的另一种神经网络量化处理装置的结构示意图,如图6所示,该神经网络量化处理装置包括样本输入模块601、输出数据获取模块602、区间范围确定模块603、分布值子数据获取模块604、分布值数据获取模块605、多样本分布值数据获取模块606、区间段划分与样本获取模块607和训练模块608。
样本输入模块601,被配置为执行:将样本集中的第k样本输入到含有N个归一化层的神经网络模型中的至少一个归一化层中,其中,所述样本集包括M个样本,M的取值为大于1的正整数,所述第k样本为所述M个样本中的任意一个,N的取值为大于0的正整数。
输出数据获取模块602,被配置为执行:获得所述至少一个归一化层的中的每一个归一化层的多个输出数据。
区间范围确定模块603,被配置为执行:针对所述每一个归一化层,根据所述多个输出数据确定至少两个区间范围,其中,每个区间范围都有各自对应的参考值。
分布值子数据获取模块604,被配置为执行:针对所述每一个归一化层,根据每个输出数据所在的区间范围的参考值,得到分布值子数据。
分布值数据获取模块605,被配置为执行:根据所述至少一个归一化层中的分布值子数据,计算得到所述第k样本的分布值数据。
多样本分布值数据获取模块606,被配置为执行:调用样本输入模块601、输出数据获取模块602、区间范围确定模块603、分布值子数据获取模块604和分布值数据获取模块605,以分别得到与各个样本对应的分布值数据。
区间段划分与样本获取模块607,被配置为执行:根据所获得的部分或者全部的分布值数据,划分为多个区间段,并获取与每个所述区间段对应的至少一个样本,组成后训练量化样本集。
训练模块608,被配置为执行:利用所述后训练量化样本集对所述神经网络模型进行训练获得量化神经网络模型。
关于上述实施例中的神经网络量化处理装置,其中各个单元执行操作的具体方式已经在有关该神经网络量化处理方法以及前述中的与图1、图2、图3相关的神经网络量化处理方法的实施例中进行了详细描述,此处将不作详细阐述说明。
需要说明的是:上述实施例仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
本公开实施例还同时提供一种非易失性计算机可读存储介质,该非易失性计算机可读存储介质存储指令,该指令在由处理器执行时使得所述处理器执行如上述说明中的神经网络量化处理方法中的各个步骤。
本公开实施例还同时提供一种电子设备,如图7所示,该电子设备包括:至少一个处理器701以及存储器702。存储器702和至少一个处理器701通信连接,例如存储器702和至少一个处理器701通过总线连接。存储器702存储有可被至少一个处理器701执行的指令,所述指令被至少一个处理器701执行,以使至少一个处理器701执行如上述说明中的神经网络量化处理方法中的各个步骤。
本公开实施例还同时提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上述说明中的神经网络量化处理方法中的步骤。
以上仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。
Claims (11)
1.一种神经网络量化处理方法,包括:
步骤A、将样本集中的第k样本输入到含有N个归一化层的神经网络模型中的至少一个归一化层中,其中,所述样本集包括M个样本,M的取值为大于1的正整数,所述第k样本为所述M个样本中的任意一个,N的取值为大于0的正整数;
步骤B、获得所述至少一个归一化层的中的每一个归一化层的多个输出数据;
步骤C、针对所述每一个归一化层,根据所述多个输出数据确定至少两个区间范围,其中,每个区间范围都有各自对应的参考值;
步骤D、针对所述每一个归一化层,根据每个输出数据所在的区间范围的参考值,得到分布值子数据;
步骤E、根据所述至少一个归一化层中的分布值子数据,计算得到所述第k样本的分布值数据;
步骤F、对部分或者全部样本执行步骤A到步骤E,分别得到与各个样本对应的分布值数据;
步骤G、根据所获得的部分或者全部的分布值数据,划分为多个区间段,并获取与每个所述区间段对应的至少一个样本,组成后训练量化样本集;
步骤H、利用所述后训练量化样本集对所述神经网络模型进行训练获得量化神经网络模型。
2.根据权利要求1所述的神经网络量化处理方法,其特征在于,所述步骤C包括:
根据所述多个输出数据,计算所述多个输出数据的平均值和标准差;
根据所述平均值和所述标准差,确定标准范围区间;
将所述标准范围区间以外的区域,根据与所述标准范围区间的距离,划分出多个非标准区间,并分别设定所述标准范围区间的参考值和所述非标准区间的参考值。
3.根据权利要求2所述的神经网络量化处理方法,其特征在于:
所述根据所述平均值和所述标准差,确定标准范围区间,包括:
将所述平均值与所述标准差相减,获得左边界;
将所述平均值与所述标准差相加,获得右边界;
将所述左边界和所述右边界之间的区间,确定为所述标准范围区间;
以及,
所述将所述标准范围区间以外的区域,根据与所述标准范围区间的距离,划分出多个非标准区间,并分别设定所述标准范围区间的参考值和所述非标准区间的参考值,包括:
从所述左边界和所述右边界分别向远离所述标准范围区间的方向按照设置的区间步长划分出多个所述非标准区间;
根据各个所述非标准区间与所述标准范围区间之间的区间步长,设定各个所述非标准区间的参考值。
4.根据权利要求3所述的神经网络量化处理方法,其特征在于,所述神经网络量化处理方法,还包括:
将所述标准差设置为所述区间步长。
5.根据权利要求1所述的神经网络量化处理方法,其特征在于,所述步骤D包括:
将所述输出数据所在的每个区间范围的参考值相加,得到对应于所述每一个归一化层的分布值子数据;
或者,
针对所述输出数据所在的每个区间范围的参考值,对其中至少一个参考值进行加权后相加,得到对应于所述每一个归一化层的分布值子数据。
6.根据权利要求5所述的神经网络量化处理方法,其特征在于,所述神经网络量化处理方法还包括:
将所述参考值相加得到的结果,除以所述参考值对应的归一化层的多个输出数据的总个数得到分布值子数据;
或者,
针对每个输出数据所在的区间范围的参考值,对其中至少一个参考值进行加权后相加得到的结果,除以所述参考值对应的归一化层的多个输出数据的总个数得到分布值子数据。
7.根据权利要求1所述的神经网络量化处理方法,其特征在于,所述步骤G中的根据所获得的部分或者全部的分布值数据,划分为多个区间段,并获取与每个所述区间段对应的至少一个样本,还包括:
将部分或者全部的所述分布值数据单调排序;
将单调排序的所述分布值数据划分为多个区间段,并获取与每个所述区间段对应的至少一个样本数据。
8.根据权利要求7所述的神经网络量化处理方法,其特征在于:
所获取的分别与每个所述区间段对应的样本数据的数量相等。
9.一种神经网络量化处理装置,其特征在于,包括:
样本输入模块,被配置为执行:将样本集中的第k样本输入到含有N个归一化层的神经网络模型中的至少一个归一化层中,其中,所述样本集包括M个样本,M的取值为大于1的正整数,所述第k样本为所述M个样本中的任意一个,N的取值为大于0的正整数;
输出数据获取模块,被配置为执行:获得所述至少一个归一化层的中的每一个归一化层的多个输出数据;
区间范围确定模块,被配置为执行:针对所述每一个归一化层,根据所述多个输出数据确定至少两个区间范围,其中,每个区间范围都有各自对应的参考值;
分布值子数据获取模块,被配置为执行:针对所述每一个归一化层,根据每个输出数据所在的区间范围的参考值,得到分布值子数据;
分布值数据获取模块,被配置为执行:根据所述至少一个归一化层中的分布值子数据,计算得到所述第k样本的分布值数据;
多样本分布值数据获取模块,被配置为执行:调用样本输入模块、输出数据获取模块、区间范围确定模块、分布值子数据获取模块和分布值数据获取模块,以分别得到与各个样本对应的分布值数据;
区间段划分与样本获取模块,被配置为执行:根据所获得的部分或者全部的分布值数据,划分为多个区间段,并获取与每个所述区间段对应的至少一个样本,组成后训练量化样本集;
训练模块,被配置为执行:利用所述后训练量化样本集对所述神经网络模型进行训练获得量化神经网络模型。
10.一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储指令,其特征在于,所述指令在由处理器执行时使得所述处理器执行如权利要求1至8任一项所述的神经网络量化处理方法。
11.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行如权利要求1至8任一项所述的神经网络量化处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210249363.3A CN114418097A (zh) | 2022-03-15 | 2022-03-15 | 神经网络量化处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210249363.3A CN114418097A (zh) | 2022-03-15 | 2022-03-15 | 神经网络量化处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114418097A true CN114418097A (zh) | 2022-04-29 |
Family
ID=81263917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210249363.3A Pending CN114418097A (zh) | 2022-03-15 | 2022-03-15 | 神经网络量化处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114418097A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114819149A (zh) * | 2022-06-28 | 2022-07-29 | 深圳比特微电子科技有限公司 | 基于变换神经网络的数据处理方法、装置和介质 |
-
2022
- 2022-03-15 CN CN202210249363.3A patent/CN114418097A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114819149A (zh) * | 2022-06-28 | 2022-07-29 | 深圳比特微电子科技有限公司 | 基于变换神经网络的数据处理方法、装置和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110799994B (zh) | 神经网络的自适应位宽缩减 | |
CN109949290B (zh) | 路面裂缝检测方法、装置、设备及存储介质 | |
CN110084271B (zh) | 一种图片类别的识别方法和装置 | |
CN111951097A (zh) | 企业信用风险评估方法、装置、设备及存储介质 | |
KR20210032140A (ko) | 뉴럴 네트워크에 대한 프루닝을 수행하는 방법 및 장치 | |
CN110633859B (zh) | 一种两阶段分解集成的水文序列预测方法 | |
CN110333991B (zh) | 云平台任务最大资源使用率预测方法 | |
CN114418097A (zh) | 神经网络量化处理方法、装置、电子设备及存储介质 | |
CN109902641B (zh) | 基于语义对齐的人脸关键点检测方法、***、装置 | |
CN114547917A (zh) | 仿真预测方法、装置、设备及存储介质 | |
CN112947080B (zh) | 一种基于场景参数变换的智能决策模型性能评估*** | |
CN113537693A (zh) | 人员风险等级获取方法、终端、存储装置 | |
CN110852322B (zh) | 感兴趣区域的确定方法及装置 | |
CN110751400B (zh) | 一种风险评估方法及装置 | |
CN111967616A (zh) | 自动时间序列回归方法和装置 | |
CN116483817A (zh) | 一种数据填补模型选择、健康评测方法及装置 | |
CN114860617B (zh) | 一种智能压力测试方法及*** | |
CN116362251A (zh) | 一种命名实体识别模型的训练方法、装置、设备和介质 | |
CN116306879A (zh) | 数据处理方法、装置、电子设备以及存储介质 | |
CN113393023B (zh) | 模具质量评估方法、装置、设备及存储介质 | |
CN111026661B (zh) | 一种软件易用性全面测试方法及*** | |
CN113130073B (zh) | 利用自动化机制挑选影响力指标的方法及电子装置 | |
CN114066135A (zh) | 一种水质模型参数自动优化方法及*** | |
CN113554097A (zh) | 模型量化方法、装置、电子设备和存储介质 | |
CN113035363B (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 |