CN113128659B - 神经网络定点化方法、装置、电子设备及可读存储介质 - Google Patents
神经网络定点化方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN113128659B CN113128659B CN202010038017.1A CN202010038017A CN113128659B CN 113128659 B CN113128659 B CN 113128659B CN 202010038017 A CN202010038017 A CN 202010038017A CN 113128659 B CN113128659 B CN 113128659B
- Authority
- CN
- China
- Prior art keywords
- localized
- unit
- localization
- neural network
- parameter
- 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
- 230000004807 localization Effects 0.000 title claims abstract description 447
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 380
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000005457 optimization Methods 0.000 claims description 26
- 238000010586 diagram Methods 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 20
- 238000004458 analytical method Methods 0.000 claims description 12
- 238000003058 natural language processing Methods 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims 4
- 238000004422 calculation algorithm Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 22
- 238000011156 evaluation Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 8
- 238000012549 training Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000003062 neural network model Methods 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000010972 statistical evaluation Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000013140 knowledge distillation Methods 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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
-
- 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)
- 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
技术领域
本申请涉及深度学习技术,尤其涉及一种神经网络定点化方法、装置、电子设备及可读存储介质。
背景技术
神经网络定点化是一种常用的模型加速算法,通过将模型的权值参数以及输出的特征值量化成固定比特的数,如8bit、16bit或极低的1、2bit,可以很好的解决在硬件上浮点数据带来的乘累加计算复杂、带宽巨大等问题。模型量化的比特数越低,模型在硬件上的加速越明显。
目前的神经网络定点化方案中,一次性给原始模型输入一定数量的样本图片,模型前向运算将每一层输出的特征值的数据分布记录下来,再分别计算各层输出的特征值的定点化超参,未考虑前置层定点化后对后置层的影响,神经网络定点化的性能较低。
发明内容
有鉴于此,本申请提供一种神经网络定点化方法、装置、电子设备及可读存储介质。
具体地,本申请是通过如下技术方案实现的:
根据本申请实施例的第一方面,提供一种神经网络定点化方法,包括:
对于神经网络的待定化单元,基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值的数据分布,确定该待定点化单元输出的特征值的定点化超参;
基于该定点化超参对该待定点化单元输出的特征值进行定点化。
根据本申请实施例的第二方面,提供一种神经网络定点化方法,包括:
对于神经网络的待定点化单元,基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值,对该待定点化单元的权值参数进行优化;
对优化后的该待定点化单元进行定点化。
根据本申请实施例的第三方面,提供一种神经网络定点化方法,包括:
对输入的浮点模型的拓扑结构进行解析,以生成神经网络数据流图;
基于配置文件中的样本图片信息,生成所述神经网络的数据层;
基于待部署平台的优化策略,对所述神经网络的拓扑结构进行拆分和融合,以得到预处理后的浮点模型;
基于上述方法对所述预处理后的浮点模型进行定点化。
根据本申请实施例的第四方面,提供一种神经网络定点化装置,包括:
确定模块,用于对于神经网络的待定化单元,基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值的数据分布,确定该待定点化单元输出的特征值的定点化超参;
定点化模块,用于基于该定点化超参对该待定点化单元输出的特征值进行定点化。
根据本申请实施例的第五方面,提供一种神经网络定点化装置,包括:
优化模块,用于对于神经网络的待定点化单元,基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值,对该待定点化单元的权值参数进行优化;
定点化模块,用于对优化后的该待定点化单元进行定点化。
根据本申请实施例的第六方面,提供一种神经网络定点化装置,包括:
解析模块,用于对输入的浮点模型的拓扑结构进行解析,以生成神经网络数据流图;
生成模块,用于基于配置文件中的样本图片信息,生成所述神经网络的数据层;
处理模块,用于基于待部署平台的优化策略,对所述神经网络的拓扑结构进行拆分和融合,以得到预处理后的浮点模型;
定点化模块,用于基于上述方法对所述预处理后的浮点模型进行定点化。
根据本申请实施例的第七方面,提供一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现上述神经网络定点化方法。
根据本申请实施例的第八方面,提供一种机器可读存储介质,所述机器可读存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现实现上述神经网络定点化方法。
本申请提供的技术方案至少可以带来以下有益效果:
对于神经网络的待定点化单元,基于神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值的数据分布,确定该待定点化单元输出的特征值的定点化超参,并基于该定点化超参对该待定点化输出的特征值进行定点化,通过对神经网络进行逐单元的定点化,对于神经网络的待定点化单元,保持已定点化单元为定点化状态,以得到更加真实的输出特征值的数据分布,从而,提升神经网络定点化的性能。
附图说明
图1是本申请示例性实施例示出的一种神经网络定点化方法的流程示意图;
图2是本申请示例性实施例示出的另一种神经网络定点化方法的流程示意图;
图3是本申请示例性实施例示出的一种从该第一定点化超参候选值范围中确定该待定点化单元输出的特征值的最终定点化超参的流程示意图;
图4是本申请示例性实施例示出的另一种神经网络定点化方法的流程示意图;
图5是本申请示例性实施例示出的一种从该第二定点化超参候选值范围中确定该待定点化单元的权值参数的最终定点化超参的流程示意图;
图6是本申请示例性实施例示出的一种神经网络定点化方法的流程示意图;
图7是本申请示例性实施例示出的一种神经网络定点化方法的流程示意图;
图8是本申请示例性实施例示出的一种自动化神经网络定点化系统的示意图;
图9是本申请示例性实施例示出的一种定点化评估与调优模块的功能流程示意图;
图10是本申请示例性实施例示出的一种最小化局部误差的优化策略的实现示意图;
图11是本申请示例性实施例示出的一种神经网络定点化装置的结构示意图;
图12是本申请示例性实施例示出的一种神经网络定点化装置的结构示意图;
图13是本申请示例性实施例示出的一种神经网络定点化装置的结构示意图
图14是本申请示例性实施例示出的一种电子设备的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
请参见图1,为本申请实施例提供的一种神经网络定点化方法的流程示意图,如图1所示,该神经网络定点化方法可以包括以下步骤:
步骤S100、对于神经网络的待定点化单元,基于神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值的数据分布,确定该待定点化单元输出的特征值的定点化超参。
本申请实施例中,考虑到传统的一次性给原始模型输入一定数量的样本图片来实现对各层输出的特征值的定点化的实现方案中,在前的层完成定点化后,对于在后的层,其输入依然是在前的层为浮点状态下的输出,数据分布的真实性较差。
为了得到神经网络各层输出的特征值更加真实的数据分布,以提升神经网络定点化的性能,可以按照神经网络各层从前到后的顺序,以一层或连续多层为一个单元的方式,将神经网络划分为多个单元,并逐单元对神经网络进行定点化,当对神经网络的某个单元进行定点化时,保持该单元(可以称为待定点化单元)之前的单元(可以称为已定点化单元)为定点化状态,并基于已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值的数据分布,确定该待定点化单元输出的特征值的定点化超参。
需要说明的是,在本申请实施例中,当待定点化单元为神经网络的首个待定点化单元时,例如,神经网络的第一个单元,神经网络中未包括已定点化单元,此时,可以基于该待定点化单元输出的特征值的数据分布,确定该待定点化单元输出的特征值的定点化超参,并基于该定点化超参对该待定点化单元输出的特征值进行定点化。
举例来说,假设神经网络包括两个单元(假设为单元1和单元2),则可以依次对单元1和单元2进行定点化。
当对单元1进行定点化时(即待定点化单元为单元1),可以通过向神经网络输入一定数量的样本,统计单元1输出的特征值的数据分布,并基于单元1输出的特征值的数据分布,确定单元1输出的特征值的定点化超参,基于所确定的定点化超参对单元1输出的特征值进行定点化。
在完成对单元1的定点化之后,当对单元2进行定点化时(即待定点化单元为单元2),可以保持单元1为定点化状态,向神经网络输入第一数量的样本,统计单元2输出的特征值的数据分布,并基于单元2输出的特征值的数据分布,确定单元2输出的特征值的定点化超参。
需要说明的是,在本申请实施例中,当对神经网络的待定点化单元进行定点化时,若该待定点化单元之前存在多个已定点化单元,则也可以在该多个已定点化单元中的部分已定点化单元保持定点化状态的情况下,对该待定点化单元进行定点化,其具体实现在此不做赘述。
步骤S110、基于该定点化超参对该待定点化单元输出的特征值进行定点化。
本申请实施例中,当按照步骤S100中描述的方式确定了待定点化单元输出的特征值的定点化超参时,可以基于该定点化超参对该待定点化单元输出的特征值进行定点化。
可见,在图1所示方法流程中,通过对神经网络进行逐单元的定点化,对于神经网络的待定点化单元,保持已定点化单元为定点化状态,以得到更加真实的输出特征值的数据分布,从而,提升神经网络定点化的性能。
在一种可能的实施例中,请参见图2,在步骤S100中,在确定待定点化单元输出的特征值的定点化超参之后,还可以包括以下步骤:
步骤S101、基于该待定点化单元输出的特征值的定点化超参,确定第一定点化超参候选值范围。
步骤S102、从该第一定点化超参候选值范围中确定该待定点化单元输出的特征值的最终定点化超参。
在步骤S110中,基于该待定点化超参对该待定点化单元输出的特征值进行定点化,包括:
基于该待定点化单元输出的特征值的最终定点化超参对该待定点化单元输出的特征值进行定点化。
示例性的,在按照步骤S100中描述的方式确定了待定点化单元输出的特征值的定点化超参时,还可以对所确定的定点化超参进行优化,以得到实际用于对该待定点化单元输出的特征值进行定点化的定点化超参(本文中称为最终定点化超参),以进一步提升神经网络定点化的性能。
示例性的,可以基于步骤S100中确定的待定点化单元输出的特征值的定点化超参,确定用于搜索最终定点化超参的范围(本文中称为第一定点化超参候选值范围),并从该第一定点化超参候选值范围中确定该待定点化单元输出的特征值的最终定点化超参。
示例性的,该第一定点化超参候选值范围可以为包括步骤S100中确定的定点化超参的一个数值区间。
例如,可以通过在步骤S100中确定的定点化超参的基础上分别减去和加上一个大于0的特定值,得到第一定点化超参候选值范围的下限和上限,从而,确定第一定点化超参候选值范围。
或者,可以以步骤S100中确定的定点化超参为第一定点化超参候选值范围的下限,并在该下限的基础上加上一个大于0的特定值,得到第一定点化超参候选值范围的上限,从而,确定第一定点化超参候选值范围。
需要说明的是,下文中的第二定点化超参候选值范围以及第三定点化超参候选值范围的确定同理可得,本申请实施例后续不再复述。
在一个示例中,如图3所示,步骤S102中,从该第一定点化超参候选值范围中确定该待定点化单元输出的特征值的最终定点化超参,可以通过以下步骤实现:
步骤S1021、分别确定该第一定点化超参候选值范围中各候选值对应的神经网络的输出误差。
步骤S1022、将对应的神经网络的输出误差最小的候选值,确定为该待定点化单元输出的特征值的最终定点化超参。
示例性的,可以基于神经网络的输出误差对待定点化单元输出的特征值的定点化超参进行优化,选择使神经网络的输出误差最小的定点化超参作为待定点化单元输出的特征值的最终定点化超参。
在确定了第一定点化超参候选值范围时,可以分别确定第一定点化超参候选值范围中各候选值对应的神经网络的输出误差,并将对应的神经网络的输出误差最小的候选值,确定为该待定点化单元输出的特征值的最终定点化超参。
需要说明的是,在本申请实施例中,将对应的神经网络的输出误差最小的候选值,确定为该待定点化单元输出的特征值的最终定点化超参仅仅是本申请实施例中确定定点化超参的一种实现方式,而并不是对本申请保护范围的限定,在本申请实施例中,还可以通过其他方式确定待定点化单元输出的特征值的最终定点化超参。
例如,可以将对应的神经网络的输出误差小于预设阈值的候选值的平均值确定为待定点化单元输出的特征值的最终定点化超参。
或者,可以按照对应的神经网络的输出误差从小到大的顺序对各候选值进行排序,并将排序后的前预设数量的候选值的平均值确定为待定点化单元输出的特征值的最终定点化超参。
在一个示例中,步骤S1021中,分别确定该第一定点化超参候选值范围中各候选值对应的神经网络的输出误差,可以包括:
对于任一候选值,基于第一类型特征值以及第二类型特征值确定该候选值对应的神经网络的输出误差。
示例性的,考虑到相对于原始浮点状态的神经网络,对神经网络进行定点化处理必然会给神经网络的输出精度带来误差,而定点化后的神经网络的输出与原始浮点状态的神经网络的输出的误差越小,通常表明定点化后的神经网络的神经网络的输出精度越高,因此,可以基于定点化后的神经网络的输出与原始浮点状态的神经网络的输出的误差来对定点化超参进行优化。
对于第一定点化超参候选值范围中的任一候选值,可以分别确定使用该候选值对该定点化单元输出的特征值进行定点化时,神经网络各单元输出的特征值(本文中称为第一类型特征值),以及,原始浮点状态下,神经网络各单元输出的特征值(本文中称为第二类型特征值),确定该候选值对应的神经网络的输出误差,其具体实现可以在下文中结合具体实例进行说明,本申请实施例在此不做赘述。
在一种可能的实施例中,如图4所示,本申请实施例提供的神经网络定点化方法还可以包括以下步骤:
步骤S400、对于神经网络的待定点化单元,基于该待定点化单元的权值参数的数据分布,确定该待定点化单元的权值参数的定点化超参。
步骤S410、基于该待定点化层的权值参数的定点化超参,确定第二定点化超参候选值范围。
步骤S420、从该第二定点化超参候选值范围中确定该待定点化单元的权值参数的最终定点化超参。
步骤S430、基于该待定点化单元的权值参数的最终定点化超参对该待定点化单元的权值参数进行定点化。
示例性的,为了实现神经网络的定点化,对于神经网络的待定点化单元,除了可以按照上述实施例中描述的方式对待定点化单元输出的特征值进行定点化之外,还需要对待定点化单元的权值参数进行定点化。
由于传统的神经网络定点化方案中,对于原始浮点状态的神经网络,各单元的浮点状态的权值参数在神经网络训练完毕(此时神经网络为原始浮点状态)时就已经确定,各单元的浮点状态的权值参数的数据分布并不受在前单元的定点化的影响,因此,对于神经网络的权值参数,在对神经网络的待定点化单元的权值参数进行定点化时,其具体实现可以参考传统的神经网络定点化方案中的相关实现。
示例性的,与上述实施例中描述的待定点化单元输出的特征值的定点化类似的,对于权值参数,在确定了待定点化单元的权值参数的定点化超参时,可以对所确定的定点化超参进行优化,以得到实际用于对该待定点化单元的权值参数进行定点化的定点化超参(本文中称为最终定点化超参),以进一步提升神经网络定点化的性能。
示例性的,可以基于所确定的待定点化单元的权值参数的定点化超参,确定用于搜索待定点化单元的权值参数的最终定点化超参的范围(本文中称为第二定点化超参候选值范围),并从该第二定点化超参候选值范围中确定该待定点化单元的权值参数的最终定点化超参,进而,基于该待定点化单元的权值参数的最终定点化超参对该待定点化单元的权值参数进行定点化。
在一个示例中,如图5所示,步骤S420中,从该第二定点化超参候选值范围中确定该待定点化单元的权值参数的最终定点化超参,可以包括以下步骤:
步骤S421、分别确定该第二定点化超参候选值范围中各候选值对应的神经网络的输出误差。
步骤S422、将对应的神经网络的输出误差最小的候选值,确定为该待定点化单元的权值参数的最终定点化超参。
示例性的,可以基于神经网络的输出误差对待定点化单元的权值参数的定点化超参进行优化,选择使神经网络的输出误差最小的定点化超参作为待定点化单元的权值参数的最终定点化超参。
在确定了第二定点化超参候选值范围时,可以分别确定第二定点化超参候选值范围中各候选值对应的神经网络的输出误差,并将对应的神经网络的输出误差最小的候选值,确定为该待定点化单元的权值参数的最终定点化超参。
在一个示例中,步骤S421中,分别确定该第二定点化超参候选值范围中各候选值对应的神经网络的输出误差,可以包括:
对于任一候选值,基于第三类型特征值以及第四类型特征值确定该候选值对应的神经网络的输出误差。
示例性的,考虑到相对于原始浮点状态的神经网络,对神经网络进行定点化处理必然会给神经网络的输出精度带来误差,而定点化后的神经网络的输出与原始浮点状态的神经网络的输出的误差越小,通常表明定点化后的神经网络的神经网络的输出精度越高,因此,可以基于定点化后的神经网络的输出与原始浮点状态的神经网络的输出的误差来对定点化超参进行优化。
对于第二定点化超参候选值范围中的任一候选值,可以分别确定使用该候选值对该定点化单元的权值参数进行定点化时,神经网络各单元输出的特征值(本文中称为第三类型特征值),以及,原始浮点状态下,神经网络各单元输出的特征值(本文中称为第四类型特征值),确定该候选值对应的神经网络的输出误差,其具体实现可以在下文中结合具体实例进行说明,本申请实施例在此不做赘述。
在一种可能的实施例中,步骤S100中,对于神经网络的待定点化单元,基于神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值的数据分布,确定该待定点化单元输出的特征值的定点化超参之前,还可以包括:
基于神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值,对该待定点化单元的权值参数进行优化。
示例性的,考虑到对神经网络的每一层进行定点化之后,必然会出现精度上的误差,随着层数加深,定点化上的累计误差可能会对神经网络整体的性能带来较大的影响,因此,减少每一层定点化所带来的偏差,可以减少神经网络的每一层在定点化后精度损失,提升神经网络的整体性能。
示例性的,对于神经网络的待定点化单元,在按照上述实施例中描述的方式对该待定点化单元输出的特征值进行定点化之前,可以先基于神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值,对该待定点化单元的权值参数进行优化。
需要说明的是,当待定点化单元为神经网络的首个待定点化单元时,由于该待定点化单元之前不存在已定点化单元,因此,对于神经网络的首个待定点化单元,可以不执行权值参数的优化处理。
在一个示例中,上述基于神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值,对该待定点化单元的权值参数进行优化,可以包括:
对该待定点化单元的权值参数进行优化,以使神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值二者之间的误差最小。
示例性的,可以基于神经网络的已定点化单元保持定点化状态的情况下待定点化单元输出的特征值,以及,原始浮点状态下,待定点化单元输出的特征值,确定二者之间的误差,以最小化该误差原则来优化待定点化单元的权值参数,其具体实现可以在下文中结合具体实例进行说明,本申请实施例在此不做赘述。
请参见图6,为本申请实施例提供的一种神经网络定点化方法的流程示意图,如图6所示,该神经网络定点化方法可以包括以下步骤:
步骤S600、对于神经网络的待定点化单元,基于神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值,对该待定点化单元的权值参数进行优化。
本申请实施例中,为了提升神经网络定点化的灵活性,可以将神经网络按照一层或连续多层一个单元的方式,划分为多个单元,并逐单元对神经网络进行定点化。
考虑到对神经网络的每一层进行定点化之后,必然会出现精度上的误差,随着层数加深,定点化上的累计误差可能会对神经网络整体的性能带来较大的影响,因此,减少每一层定点化所带来的偏差,可以减少神经网络的每一层在定点化后精度损失,提升神经网络的整体性能。
示例性的,可以基于神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值,对该待定点化单元的权值参数进行优化。
需要说明的是,对于神经网络的首个待定点化单元,由于该待定点化单元之前不存在已定点化单元,因此,可以不执行权值参数的优化处理。
步骤S610、对优化后的该待定点化单元进行定点化。
本申请实施例中,当按照步骤S600中描述的方式对待定点化单元的权值参数进行了优化时,可以对优化后的该待定点化单元进行定点化。
可见,在图6所示方法流程中,通过将神经网络划分为多个单元,并逐单元进行定点化处理,提升了神经网络的定点化的灵活性;此外,在对待定点化单元进行定点化之前,对待定点化单元的权值参数进行优化,减少在前的已定点化单元的定点化带来的误差,减少了神经网络定点化的精度损失,提升了神经网络定点化的性能。
在一种可能的实施例中,步骤S600中,基于神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值,对该待定点化单元的权值参数进行优化,可以包括:
对该待定点化单元的权值参数进行优化,以使神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值二者之间的误差最小。
示例性的,可以基于神经网络的已定点化单元保持定点化状态的情况下待定点化单元输出的特征值,以及,原始浮点状态下,待定点化单元输出的特征值,确定二者之间的误差,以最小化该误差原则来优化待定点化单元的权值参数,其具体实现可以在下文中结合具体实例进行说明,本申请实施例在此不做赘述。
在一种可能的实施例中,步骤S610中,对优化后的该待定点化单元进行定点化,可以包括:
基于神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值的数据分布,确定优化后的该待定点化单元输出的特征值的定点化超参,并基于该定点化超参对优化后的该待定点化单元输出的特征值进行定点化。
示例性的,考虑到传统的一次性给原始模型输入一定数量的样本图片来实现对各层输出的特征值的定点化的实现方案中,在前的层完成定点化后,对于在后的层,其输入依然是在前的层为浮点状态下的输出,数据分布的真实性较差。
为了得到神经网络各层输出的特征值更加真实的数据分布,以提升神经网络定点化的性能,可以按照神经网络各层从前到后的顺序,以一层或连续多层为一个单元的方式,将神经网络划分为多个单元,并逐单元对神经网络进行定点化,当对神经网络的某个单元进行定点化时,保持该单元(即待定点化单元)之前的单元(即已定点化单元)为定点化状态,并基于已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值的数据分布,确定该待定点化单元输出的特征值的定点化超参。
需要说明的是,在本申请实施例中,当待定点化单元为神经网络的首个待定点化单元时,例如,神经网络的第一个单元,神经网络中未包括已定点化单元,此时,可以基于该待定点化单元输出的特征值的数据分布,确定该待定点化单元输出的特征值的定点化超参,并基于该定点化超参对该待定点化单元输出的特征值进行定点化。
当确定了优化后的待定点化单元输出的特征值的定点化超参时,可以基于所确定的定点化超参对优化后的该待定点化单元输出的特征值进行定点化。
在一个示例中,在确定优化后的该待定点化单元输出的特征值的定点化超参之后,还可以包括:
基于优化后的该待定点化单元输出的特征值的定点化超参,确定第三定点化超参候选值范围;
从该第三定点化超参候选值范围中确定优化后的该待定点化单元输出的特征值的最终定点化超参;
上述基于该定点化超参对优化后的该待定点化单元输出的特征值进行定点化,可以包括:
基于该待定点化单元输出的特征值的最终定点化超参对优化后的该待定点化单元输出的特征值进行定点化。
示例性的,当确定了优化后的待定点化单元输出的特征值的定点化超参时,还可以对所确定的定点化超参进行优化,以得到实际用于对优化后的该待定点化单元输出的特征值进行定点化的定点化超参(本文中称为最终定点化超参),以进一步提升神经网络定点化的性能。
示例性的,可以基于所确定的优化后的待定点化单元输出的特征值的定点化超参,确定用于搜索最终定点化超参的范围(本文中称为第三定点化超参候选值范围),并从该第三定点化超参候选值范围中确定该待定点化单元输出的特征值的最终定点化超参。
在一个示例中,上述从该第三定点化超参候选值范围中确定优化后的该待定点化单元输出的特征值的最终定点化超参,可以包括:
分别确定该第三定点化超参候选值范围中各候选值对应的神经网络的输出误差;
将对应的神经网络的输出误差最小的候选值,确定为优化后的该待定点化单元输出的特征值的最终定点化超参。
示例性的,可以基于神经网络的输出误差对待定点化单元输出的特征值的定点化超参进行优化,选择使神经网络的输出误差最小的定点化超参作为待定点化单元输出的特征值的最终定点化超参。
在确定了第三定点化超参候选值范围时,可以分别确定第三定点化超参候选值范围中各候选值对应的神经网络的输出误差,并将对应的神经网络的输出误差最小的候选值,确定为候选后的该待定点化单元输出的特征值的最终定点化超参。
在一个示例中,上述分别确定该第三定点化超参候选值范围中各候选值对应的神经网络的输出误差,可以包括:
对于任一候选值,基于第五类型特征值以及第六类型特征值确定该候选值对应的神经网络的输出误差。
示例性的,考虑到相对于原始浮点状态的神经网络,对神经网络进行定点化处理必然会给神经网络的输出精度带来误差,而定点化后的神经网络的输出与原始浮点状态的神经网络的输出的误差越小,通常表明定点化后的神经网络的神经网络的输出精度越高,因此,可以基于定点化后的神经网络的输出与原始浮点状态的神经网络的输出的误差来对定点化超参进行优化。
对于第三定点化超参候选值范围中的任一候选值,可以分别确定使用该候选值对优化后的该定点化单元输出的特征值进行定点化时,神经网络各单元输出的特征值(本文中称为第五类型特征值),以及,原始浮点状态下,神经网络各单元输出的特征值(本文中称为六类型特征值),确定该候选值对应的神经网络的输出误差,其具体实现可以在下文中结合具体实例进行说明,本申请实施例在此不做赘述。
需要说明的是,在本申请实施例中,对于神经网络的待定点化单元,除了需要对待定点化单元输出的特征值进行定点化之外,还需要对待定点化单元的权值参数进行定点化。由于待定点化单元的权值参数并不受神经网络的已定点化单元的影响,因此,在按照图6所示方法流程对待定点化单元的权值参数进行优化后,可以参照传统神经网络定点化方案中对权值参数的定点化的实现方式,对优化后的待定点化单元的权值参数进行定点化。
示例性的,对于神经网络的待定点化单元,当基于优化后的该待定点化单元的权值参数的数据分布确定了权值参数的定点化超参时,还可以对所确定的定点化超参进行优化,以确定最终定点化超参。
在一个示例中,对优化后的该待定点化单元进行定点化,可以包括:
基于优化后的该待定点化单元的权值参数的数据分布,确定优化后的该待定点化单元的权值参数的定点化超参;
基于优化后的该待定点化单元的权值参数的定点化超参,确定第四定点化超参候选值范围;
从该第四定点化超参候选值范围中确定优化后的该待定点化单元的权值参数的最终定点化超参;
基于优化后的该待定点化单元的权值参数的最终定点化超参对优化后的该待定点化单元的权值参数进行定点化。
该示例中各步骤的具体实现可以参见上述方法实施例中的相关描述,本申请实施例在此不做赘述。
请参见图7,为本申请实施例提供的一种神经网络定点化方法的流程示意图,如图7所示,该神经网络定点化方法可以包括以下步骤:
步骤S700、对输入的浮点模型的拓扑结构进行解析,以生成神经网络数据流图。
步骤S710、基于配置文件中的样本图片信息,生成神经网络的数据层。
步骤S720、基于配置文件中的待部署平台的优化策略,对神经网络的拓扑结构进行拆分和融合,以得到预处理后的浮点模型。
本申请实施例中,考虑到从一个神经网络模型的浮点训练完成到实际硬件平台上的部署的过程中,不同应用下神经网络模型结构的复杂性,以及在不同硬件平台上部署应用的限制需求,传统的神经网络定点化方案中,往往需要较多人为参与的过程,才能保证正确的定点化操作。而目前已公开的神经网络定点化工具,如Neural Network Distiller或PocketFlow等,虽然集成了较多学术界较新的算法,适合于学术研究,但是整体框架和流程的通用性较差,针对不同的任务和模型都需要较多的人为改动,对应用人员的要求较高,算法应用效率降低。
为了减少神经网络定点化过程中的人为参与,本申请实施例提供了一种自动化实现神经网络定点化的方案。
示例性的,对于输入的待定点化模型(浮点模型),可以通过对该浮点模型的拓扑结构进行解析,生成神经网络的数据流图,即根据数据从输入到输出的过程中,依次经过的该浮点模型的各层所确定的浮点模型的结构图,并根据配置文件中的样本图片信息,如样本图片的访问路径、样本图片的预处理方式,生成神经网络的数据层。
示例性的,考虑到不同部署平台的平台特性,为了优化神经网络在不同平台部署的效果,可以基于配置文件中的待部署平台的平台特性(可以称为优化策略),对神经网络的拓扑结构进行拆分(如根据待部署平台的优化策略将浮点模型的部分拓扑结构进行拆分)和融合(如将浮点模型的BN层合并入前置Conv层)等,得到预处理后的浮点模型,使预处理后的浮点模型的拓扑结构更适于待部署平台的平台特性,提高预处理后的浮点模型在硬件上运行的效率,并优化运行效果。
步骤S730、对预处理后的浮点模型进行定点化。
本申请实施例中,完成对浮点模式的预处理时,可以对预处理后的浮点模型进行定点化,以得到可以用于部署的定点化模型。
示例性的,可以采用上述任一实施例中描述的方式对预处理后的浮点模型进行定点化处理。
本申请实施例中,对预处理后的浮点模型进行定点化之后,可以对定点化模型进行定点化的仿真测试,评估模型的定点化性能。根据预设的性能评价方式与指标,判断定点化模型的性能是否满足需求,若满足需求,则可以对模型进行最终的转换和部署;若不满足需求,则进行模型定点化调优,来进一步提升定点化模型的性能。
示例性的,当模型的定点化性能不满足需求时,可以对模型进行更加全局和更加细致的调优。
在一个示例中,当具备原始数据值(带有标注的样本)和对应的真值时,可以进行基于定点化预算的模型训练。
在另一个示例中,当不具备原始数据值和对应的真值时,可以使用知识蒸馏的训练方式,利用原始模型指导定点化模型的训练调优。
当调优性能满足要求后,则输出最终的定点化超参表和待转换模型。
需要说明的是,在本申请实施例中,当按照上述实施例中描述的方式完成神经网络定点化时,可以基于定点化后的神经网络进行智能分析处理,其可以包括但不限于计算机视觉处理(如图像分类、目标检测或语音分割等)或自然语言处理。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体实例对本申请实施例提供的技术方案进行更加详细的说明。
神经网络定点化是一种常用的模型加速算法,通过将模型的参数以及特征量化成固定比特的数,如8bit、16bit或者极低的1bit、2bit,可以很好的解决在硬件上float32类型数据带来的乘累加计算复杂、带宽巨大等问题,模型量化的比特数越低,模型在硬件上的加速越明显。
然而,从一个神经网络模型的浮点训练完成到实际硬件平台上的部署的过程中,不同应用下神经网络模型结构的复杂性,以及在不同硬件平台上部署应用的限制需求,传统的神经网络定点化方案中,往往需要较多人为参与的过程,才能保证正确的定点化操作。而目前已公开的神经网络定点化工具,如Neural Network Distiller或PocketFlow等,虽然集成了较多学术界较新的算法,适合于学术研究,但是整体框架和流程的通用性较差,针对不同的任务和模型都需要较多的人为改动,对应用人员的要求较高,算法应用效率降低。
此外,在实际复杂应用场景下,神经网络的性能对精度要求较高,当对网络进行定点化后,难免出现性能下降的问题,这时候就需要对定点化后网络的性能问题进行分析并调优,传统的神经网络定点化方案需要人工进行调优,对应用人员的要求较高,且效率低。
针对上述问题,本申请实施例提供一种自动化的神经网络定点化系统,如图8所示,该自动化的神经网络定点化系统可以包括定点化评估与调优模块和定点化转换模块。
基于图8所示的自动化的神经网络定点化系统,可以利用预先配置的定点化配置信息(可以通过配置文件的形式提供)、待定点化模型(即浮点模型)以及样本集,得到可用于部署的定点化模型文件。
下面分别对各模块的具体功能进行详细说明。
一、定点化评估与调优模块
请参见图9,定点化评估与调优模块的功能流程图可以如图9所示,其主要包括以下几个过程:浮点模型预处理、统计评估与优化以及定点测试与调优。
下面分别对各过程进行详细说明。
1、浮点模型预处理
浮点模型预处理过程主要包括:会对输入的浮点模型的拓扑结构进行解析,生成神经网络数据流图;基于配置文件中的样本图片信息,生成神经网络的数据层;基于配置文件中的待部署平台的优化策略,对神经网络的拓扑结构进行拆分(如根据待部署平台的优化策略将浮点模型的部分拓扑结构进行拆分)和融合(如将浮点模型的BN层合并入前置Conv层),得到拓扑结构更适于在待部署平台上部署的模型(即预处理后的浮点模型)。
经过浮点模型预处理后得到的预处理后的浮点模型,可以进行后续的处理。
2、统计评估与优化
神经网络定点化的目的是通过将模型的参数以及特征量化成固定比特的数值,以达到加速推理的效果。
示例性的,在该实施例中,可以采用包括但不限于线性对称定点化算法、线性非对称定点化算法、Power-of-Two定点化算法等定点化算法实现神经网络定点化。
下面分别以线性对称定点化算法、线性非对称定点化算法、Power-of-Two定点化算法为例,对传统的神经网络定点化方案中的定点化超参计算过程进行说明。
示例性的,对于线性对称定点化算法,可以通过公式(1)和(2)实现定点化超参的计算:
XC=max(-Cx,min(X,Cx)) (1)
公式(1)和(2)中,X表示原始的浮点数据,Cx表示浮点数据绝对值的截断值,Rw表示定点化的比特位宽,XQ表示定点化后的值。
对于线性非对称定点化算法,可以通过公式(3)和(4)实现定点化超参的计算:
XC=max(Cn,min(X,Cp)) (3)
公式(3)和(4)中,X表示原始的浮点数据,Cn表示浮点数据左侧截断值,Cp表示浮点数据右侧截断值,Bw表示定点化的比特位宽,XQ表示定点化后的值。
对于Power-of-Two定点化算法,可以通过公式(5)、(6)和(7)实现定点化超参的计算:
XC=max(-Cx,min(X,Cx)) (5)
公式(5)、(6)和(7)中,X表示原始的浮点数据,Cx表示浮点数据绝对值的截断值,Bw表示定点化的比特位宽,XQ表示定点化后的值,表示定点化等级集合,是一个映射函数,用于确定中与XC最接近的数。
在上述定点化算法中,都需要利用浮点数据的截断值(即定点化超参),截断值的选取对于定点化的效果非常重要,往往是根据原始数据的分布情况进行确定。
传统的神经网络定点化方案中,对于权值参数的定点化:对于原始浮点状态的神经网络,各单元的浮点状态的权值参数在神经网络训练完毕时就已经确定,各单元的浮点状态的权值参数的数据分布并不受在前单元的定点化的影响,因此,可以分别对原始浮点状态的神经网络的各单元的权值参数的数据分布进行统计,计算得到定点化超参。
对于特征值的定点化:为了得到神经网络各层输出的特征值的数据分布,需要给模型输入一定数量的样本进行前向运算。
传统的神经网络定点化方案中,为了实现对输出的特征值的定点化,一次性给原始模型输入一定数量的样本图片,通过原始模型前向计算将每一层输出的特征值的数据分布记录下来,再分别计算各层输出的特征值的定点化超参。
本申请实施例中,考虑到传统的神经网络定点化方案中,神经网络各层输出的特征值的定点化超参的计算是在模型为浮点状态下进行的,未考虑到前置层定点化后对后置层的影响,导致输出的特征值的数据分布与实际情况存在偏差,不符合定点化状态下的真实数据分布情况。
基于此,在统计评估与优化过程中,本申请实施例提供的神经网络定点化方案至少进行了如下改进:
2.1、逐层评估
为了得到神经网络各层输出的特征值的更真实的数据分布,可以采用逐层评估(即以一个单元包括神经网络的一层为例)方式进行定点化超参的计算,在对当前层(待定点化层)进行评估时,当前层之前的全部层保持定点化状态,当前层之后的全部层保持浮点状态。
下面依然以线性对称定点化算法、线性非对称定点化算法、Power-of-Two定点化算法为例,对本申请实施例中采用逐层评估方式实现的定点化超参计算进行说明。
对于线性对称定点化算法,在浮点运算状态下,给原始模型输入一定数量的样本图片进行前向运算,统计第一个待定点化层输出的特征值以及权值参数的数据分布,计算该待定点化层输出的特征值定点化超参和权值参数的定点化超参,并使用公式(1)和(2)将该待定点化层转换为定点化的运算状态。
对于之后的任一待定点化层,在已定点化层保持定点化状态的情况下,再次给模型输入一定数量的样本图片进行前向运算,统计该待定点化层输出的特征值以及权值特征的数据分布,计算定点化超参,并使用公式(1)和(2)将该待定点化层转换为定点化的运算状态,直至将模型全部层转换成定点化运算状态。
对于线性非对称定点化算法,在浮点运算状态下,给原始模型输入一定数量的样本图片进行前向运算,统计第一个待定点化层输出的特征值以及权值参数的数据分布,计算该待定点化层输出的特征值的定点化超参和权值参数的定点化超参,并使用公式(3)和(4)将该待定点化层转换为定点化的运算状态。
对于之后的任一待定点化层,在已定点化层保持定点化状态的情况下,再次给模型输入一定数量的样本图片进行前向运算,统计该待定点化层输出的特征值以及权值特征的数据分布,计算定点化超参,并使用公式(3)和(4)将该待定点化层转换为定点化的运算状态,直至将模型全部层转换成定点化运算状态。
对于Power-of-Two定点化定点化算法,在浮点运算状态下,给原始模型输入一定数量的样本图片进行前向运算,统计第一个待定点化层输出的特征值以及权值参数的数据分布,计算该待定点化层输出的特征值的定点化超参和权值参数的定点化超参,并使用公式(5)、(6)和(7)将该待定点化层转换为定点化的运算状态。
对于之后的任一待定点化层,在已定点化层保持定点化状态的情况下,再次给模型输入一定数量的样本图片进行前向运算,统计该待定点化层输出的特征值以及权值特征的数据分布,计算定点化超参,并使用公式(5)、(6)和(7)将该待定点化层转换为定点化的运算状态,直至将模型全部层转换成定点化运算状态。
2.2、定点化超参优化
在逐层的定点化超参评估过程中,还可以对所确定的定点化超参进行优化,即在按照上述方式确定了定点化超参(包括输出的特征值的定点化超参或权值参数的定点化超参)时,可以基于所确定的定点化超参,确定最终定点化超参的搜索范围(如上文中的第一定点化超参候选值范围或第二定点化超参候选值范围等),并在该搜索范围中搜索对神经网络的输出误差影响最小的定点化超参,作为最终定点化超参。
以线性对称定点化算法为例,首先确定定点化超参cw的搜索范围,然后在此范围内进行遍历搜索,分别计算在不同cw下,神经网络输出的误差,选择对神经网络的输出误差影响最小的值作为最终定点化超参。
示例性的,神经网络输出误差的计算方式包括但不限于均方误差、KL散度、欧氏距离等。
以均方误差为例,可以通过以下方式确定神经网络的输出误差:
公式(8)和(9)中,L表示模型总的层数,Oi表示定点化状态下该层的输出特征,表示原始浮点状态下该层的输出特征,表示均方误差函数,|Oi|表示特征数据的数量。
通过公式(8),可以确定神经网络的层i的输出误差,基于神经网络各层的输出误差,通过公式(9),可以确定神经网络的输出误差。
2.3、最小化局部误差的优化策略
考虑到对神经网络的每一层进行定点化之后,必然会出现精度上的误差,随着层数加深,定点化上的累计误差可能会对神经网络整体的性能带来较大的影响,因此,减少每一层定点化所带来的偏差,可以减少神经网络的每一层在定点化后精度损失,提升神经网络的整体性能。
示例性的,可以基于神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值,对该待定点化单元的权值参数进行优化,其具体实现流程如下:
步骤1、对原始模型M的第一个待定点化层L1进行定点化评估,得到定点化超参,然后对该层进行定点化,得到模型Q1。
步骤2、计算原始模型M和第一步得到的模型Q1在层L1后的第一个浮点层L2的输出特征的误差,以最小化该误差为原则来优化L2的权值参数。
示例性的,确定原始模型和量化后的模型的在待定点化层的输出误差可以通过L1-loss、L2-loss、期望偏差等函数实现。
以L2-loss为例,优化函数为:
公式(10)和(11)中,代表L2层的前向推理函数,和分别表示L2层的权值参数和bias(以L2层为卷积层为例),Y为第一步中从原始网络M中第L2层提取的特征值,XQ为从当前模型Q1中第L2层的输入特征值,和分别表示L2层优化后的权值参数和bias(此时仍然浮点状态)。
通过优化L2层的权值参数和bias,使得模型Q1中第L2层的输出特征与原始网络M中第L2层输出特征值Y尽可能接近。将调优后得到的新的权值参数和bias(即上述和)赋值给L2层,这样就完成了局部误差的修正,可以缓解模型定点化带来的误差。
重复以上两步骤,直到神经网络中的最后一层输出的特征值及权值参数完成定点化,就完成了模型统计评估与优化过程,其示意图可以参见图10。
如图10所示,实线框方块代表原始浮点层,虚线框方块代表原始浮点层经过定点化得到的定点化层,实线框带填充方块代表根据最小化局部误差优化更新后的浮点层,虚线框带填充方块代表更新后的浮点层经过定点化得到的定点化层。
需要说明的是,在本申请实施例中,由于基于神经网络各层在原始浮点模型下输出的特征值与量化模型下输出的特征值之间的输出误差,对神经网络定点化的性能进行评估,而不再是按照传统神经网络定点化方案中基于量化模型的最终输出与样本真值之间的误差,对神经网络定点化的性能进行评估,因此,用于神经网络定点化的样本可以为不带标注信息的样本,降低了对样本的要求,提高了方案的可实现性。
因此,进行神经网络定点化处理
3、定点化测试与调优
对预处理后的浮点模型进行定点化之后,可以对定点化模型进行定点化的仿真测试,评估模型的定点化性能。根据预设的性能评价方式与指标,判断定点化模型的性能是否满足需求,若满足需求,则可以对模型进行最终的转换和部署;若不满足需求,则进行模型定点化调优,来进一步提升定点化模型的性能。
示例性的,当模型的定点化性能不满足需求时,可以对模型进行更加全局和更加细致的调优。
在一个示例中,当具备原始数据值(带有标注的样本)和对应的真值时,可以进行基于定点化预算的模型训练。
在另一个示例中,当不具备原始数据值和对应的真值时,可以使用知识蒸馏的训练方式,利用原始模型指导定点化模型的训练调优。
当调优性能满足要求后,则输出最终的定点化超参表和待转换模型。
二、定点化转换模块
基于定点化评估与调优模块输出的定点化超参表和待转换模型,定点化转换模块可以输出可部署文件,以便基于该可部署文件在待部署平台上部署量化后的神经网络模型。
当完成神经网络定点化时,可以基于定点化后的神经网络进行智能分析处理,其可以包括但不限于计算机视觉处理(如图像分类、目标检测或语音分割等)或自然语言处理。
通过以上描述可以看出,在本申请实施例提供的技术方案中,对于神经网络的待定点化单元,基于神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值的数据分布,确定该待定点化单元输出的特征值的定点化超参,并基于该定点化超参对该待定点化输出的特征值进行定点化,通过对神经网络进行逐单元的定点化,对于神经网络的待定点化单元,保持已定点化单元为定点化状态,以得到更加真实的输出特征值的数据分布,从而,提升神经网络定点化的性能。
以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:
请参见图11,为本申请实施例提供的一种神经网络定点化装置的结构示意图,如图11所示,该神经网络定点化装置可以包括:
确定模块,用于对于神经网络的待定化单元,基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值的数据分布,确定该待定点化单元输出的特征值的定点化超参;
定点化模块,用于基于该定点化超参对该待定点化单元输出的特征值进行定点化。
在一种可能的实施例中,确定模块在确定该待定点化单元输出的特征值的定点化超参之后,还包括:
基于该待定点化单元输出的特征值的定点化超参,确定第一定点化超参候选值范围;
从该第一定点化超参候选值范围中确定该待定点化单元输出的特征值的最终定点化超参;
所述定点化模块基于该定点化超参对该待定点化单元输出的特征值进行定点化,包括:
基于该待定点化单元输出的特征值的最终定点化超参对该待定点化单元输出的特征值进行定点化。
在一种可能的实施例中,所述确定模块从该第一定点化超参候选值范围中确定该待定点化单元输出的特征值的最终定点化超参,包括:
分别确定该第一定点化超参候选值范围中各候选值对应的神经网络的输出误差;
将对应的神经网络的输出误差最小的候选值,确定为该待定点化单元输出的特征值的最终定点化超参。
在一种可能的实施例中,所述确定模块分别确定该第一定点化超参候选值范围中各候选值对应的神经网络的输出误差,包括:
对于任一候选值,基于第一类型特征值以及第二类型特征值确定该候选值对应的神经网络的输出误差;其中,所述第一类型特征值为使用该候选值对该待定点化单元输出的特征值进行定点化时,所述神经网络各单元输出的特征值;所述第二类型特征值为原始浮点状态下,所述神经网络各单元输出的特征值。
在一种可能的实施例中,所述确定模块,还用于对于所述神经网络的待定点化单元,基于该待定点化单元的权值参数的数据分布,确定该待定点化单元的权值参数的定点化超参;基于该待定点化单元的权值参数的定点化超参,确定第二定点化超参候选值范围;从该第二定点化超参候选值范围中确定该待定点化单元的权值参数的最终定点化超参;
所述定点化模块,还用于基于该待定点化单元的权值参数的最终定点化超参对该待定点化单元的权值参数进行定点化。
在一种可能的实施例中,所述确定模块从该第二定点化超参候选值范围中确定该待定点化单元的权值参数的最终定点化超参,包括:
分别确定该第二定点化超参候选值范围中各候选值对应的神经网络的输出误差;
将对应的神经网络的输出误差最小的候选值,确定为该待定点化单元的权值参数的最终定点化超参。
在一种可能的实施例中,所述确定模块分别确定该第二定点化超参候选值范围中各候选值对应的神经网络的输出误差,包括:
对于任一候选值,基于第三类型特征值以及第四类型特征值确定该候选值对应的神经网络的输出误差;其中,所述第三类型特征值为使用该候选值对该待定点化单元的权值参数进行定点化时,所述神经网络各单元输出的特征值;所述第四类型特征值为原始浮点状态下,所述神经网络各单元输出的特征值。
在一种可能的实施例中,对于所述神经网络的待定点化单元,所述确定模块基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值的数据分布,确定该待定点化单元输出的特征值的定点化超参之前,还包括:
基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值,对该待定点化单元的权值参数进行优化。
在一种可能的实施例中,所述确定模块基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值,对该待定化单元的权值参数进行优化,包括:
对该待定点化单元的权值参数进行优化,以使所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值二者之间的误差最小。
在一种可能的实施例中,所述单元包括所述神经网络的一层或连续多层,所述神经网络包括多个单元。
请参见图12,为本申请实施例提供的一种神经网络定点化装置的结构示意图,如图12所示,该神经网络定点化装置可以包括:
优化模块,用于对于神经网络的待定点化单元,基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值,对该待定点化单元的权值参数进行优化;
定点化模块,用于对优化后的该待定点化单元进行定点化。
在一种可能的实施例中,所述优化模块基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值,对该待定化单元的权值参数进行优化,包括:
对该待定点化单元的权值参数进行优化,以使所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值二者之间的误差最小。
在一种可能的实施例中,所述定点化模块对优化后的该待定点化单元进行定点化,包括:
基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值的数据分布,确定优化后的该待定点化单元输出的特征值的定点化超参,并基于该定点化超参对优化后的该待定点化单元输出的特征值进行定点化。
在一种可能的实施例中,定点化模块在确定优化后的该待定点化单元输出的特征值的定点化超参之后,还包括:
基于优化后的该待定点化单元输出的特征值的定点化超参,确定第三定点化超参候选值范围;
从该第三定点化超参候选值范围中确定优化后的该待定点化单元输出的特征值的最终定点化超参;
所述定点化模块基于该定点化超参对优化后的该待定点化单元输出的特征值进行定点化,包括:
基于该待定点化单元输出的特征值的最终定点化超参对优化后的该待定点化单元输出的特征值进行定点化。
在一种可能的实施例中,所述定点化模块从该第三定点化超参候选值范围中确定优化后的该待定点化单元输出的特征值的最终定点化超参,包括:
分别确定该第三定点化超参候选值范围中各候选值对应的神经网络的输出误差;
将对应的神经网络的输出误差最小的候选值,确定为优化后的该待定点化单元输出的特征值的最终定点化超参。
在一种可能的实施例中,所述定点化模块分别确定该第三定点化超参候选值范围中各候选值对应的神经网络的输出误差,包括:
对于任一候选值,基于第五类型特征值以及第六类型特征值确定该候选值对应的神经网络的输出误差;其中,所述第五类型特征值为使用该候选值对优化后的该待定点化单元输出的特征值进行定点化时,所述神经网络各单元输出的特征值;所述第六类型特征值为原始浮点状态下,所述神经网络各单元输出的特征值。
在一种可能的实施例中,所述单元包括所述神经网络的一层或连续多层,所述神经网络包括多个单元。
请参见图13,为本申请实施例提供的一种神经网络定点化装置的结构示意图,如图13所示,该神经网络定点化装置可以包括:
解析模块,用于对输入的浮点模型的拓扑结构进行解析,以生成神经网络数据流图;
生成模块,用于基于配置文件中的样本图片信息,生成所述神经网络的数据层;
处理模块,用于基于待部署平台的优化策略,对所述神经网络的拓扑结构进行拆分和融合,以得到预处理后的浮点模型;
定点化模块,用于基于上述方法实施例中描述的方法对所述预处理后的浮点模型进行定点化。
请参见图14,为本申请实施例提供的一种电子设备的硬件结构示意图。该电子设备可包括处理器1401、存储有机器可执行指令的存储器1402。处理器1401与存储器1402可经由系统总线1403通信。并且,通过读取并执行存储器1402中与编码控制逻辑对应的机器可执行指令,处理器1401可执行上文描述的神经网络定点化方法。
本文中提到的存储器1402可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
在一些实施例中,还提供了一种机器可读存储介质,如图14中的存储器1402,该机器可读存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现上文描述的神经网络定点化方法。例如,所述机器可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (16)
1.一种神经网络定点化方法,其特征在于,包括:
对于神经网络的待定点化单元,基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值的数据分布,确定该待定点化单元输出的特征值的定点化超参;其中,所述神经网络包括预处理后的浮点模型,所述预处理后的浮点模型通过对输入的浮点模型的拓扑结构进行解析,以生成神经网络数据流图,基于配置文件中的样本图片信息,生成所述神经网络的数据层,并基于所述配置文件中的待部署硬件平台的平台特性,对所述神经网络的拓扑结构进行拆分和融合得到;该待定点化单元输出的特征值为向所述神经网络输入一定数量的样本图片的情况下的输出;
基于该定点化超参对该待定点化单元输出的特征值进行定点化,得到定点化后的神经网络;所述定点化后的神经网络部署于所述待部署硬件平台,以使所述待部署硬件平台基于所述定点化后的神经网络进行智能分析处理,所述智能分析处理包括计算机视觉处理或自然语言处理;
其中,在确定该待定点化单元输出的特征值的定点化超参之后,还包括:
基于该待定点化单元输出的特征值的定点化超参,确定第一定点化超参候选值范围;所述第一定点化超参候选值范围的下限和上限通过在所述定点化超参的基础上分别减去和加上一个大于0的特定值得到;
从该第一定点化超参候选值范围中确定该待定点化单元输出的特征值的最终定点化超参;
所述基于该定点化超参对该待定点化单元输出的特征值进行定点化,包括:
基于该待定点化单元输出的特征值的最终定点化超参对该待定点化单元输出的特征值进行定点化;
所述从该第一定点化超参候选值范围中确定该待定点化单元输出的特征值的最终定点化超参,包括:
分别确定该第一定点化超参候选值范围中各候选值对应的神经网络的输出误差;
按照对应的神经网络的输出误差从小到大的顺序对各候选值进行排序,并将排序后的前预设数量的候选值的平均值确定为待定点化单元输出的特征值的最终定点化超参。
2.根据权利要求1所述的方法,其特征在于,所述分别确定该第一定点化超参候选值范围中各候选值对应的神经网络的输出误差,包括:
对于任一候选值,基于第一类型特征值以及第二类型特征值确定该候选值对应的神经网络的输出误差;其中,所述第一类型特征值为使用该候选值对该待定点化单元输出的特征值进行定点化时,所述神经网络各单元输出的特征值;所述第二类型特征值为原始浮点状态下,所述神经网络各单元输出的特征值。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
对于所述神经网络的待定点化单元,基于该待定点化单元的权值参数的数据分布,确定该待定点化单元的权值参数的定点化超参;
基于该待定点化单元的权值参数的定点化超参,确定第二定点化超参候选值范围;
从该第二定点化超参候选值范围中确定该待定点化单元的权值参数的最终定点化超参;
基于该待定点化单元的权值参数的最终定点化超参对该待定点化单元的权值参数进行定点化。
4.根据权利要求3所述的方法,其特征在于,所述从该第二定点化超参候选值范围中确定该待定点化单元的权值参数的最终定点化超参,包括:
分别确定该第二定点化超参候选值范围中各候选值对应的神经网络的输出误差;
将对应的神经网络的输出误差最小的候选值,确定为该待定点化单元的权值参数的最终定点化超参。
5.根据权利要求4所述的方法,其特征在于,所述分别确定该第二定点化超参候选值范围中各候选值对应的神经网络的输出误差,包括:
对于任一候选值,基于第三类型特征值以及第四类型特征值确定该候选值对应的神经网络的输出误差;其中,所述第三类型特征值为使用该候选值对该待定点化单元的权值参数进行定点化时,所述神经网络各单元输出的特征值;所述第四类型特征值为原始浮点状态下,所述神经网络各单元输出的特征值。
6.根据权利要求3所述的方法,其特征在于,对于所述神经网络的待定点化单元,所述基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值的数据分布,确定该待定点化单元输出的特征值的定点化超参之前,还包括:
基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值,对该待定点化单元的权值参数进行优化。
7.根据权利要求6所述的方法,其特征在于,所述基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值,对该待定点化单元的权值参数进行优化,包括:
对该待定点化单元的权值参数进行优化,以使所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值二者之间的误差最小。
8.根据权利要求4-7任一项所述的方法,其特征在于,所述神经网络包括多个单元,各单元包括所述神经网络的一层或连续多层。
9.一种神经网络定点化方法,其特征在于,包括:
对于神经网络的待定点化单元,基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值,对该待定点化单元的权值参数进行优化;其中,所述神经网络包括预处理后的浮点模型,所述预处理后的浮点模型通过对输入的浮点模型的拓扑结构进行解析,以生成神经网络数据流图,基于配置文件中的样本图片信息,生成所述神经网络的数据层,并基于所述配置文件中的待部署硬件平台的平台特性,对所述神经网络的拓扑结构进行拆分和融合得到;该待定点化单元输出的特征值为向所述神经网络输入一定数量的样本图片的情况下的输出;
对优化后的该待定点化单元进行定点化,得到定点化后的神经网络;所述定点化后的神经网络部署于所述待部署硬件平台,以使所述待部署硬件平台基于所述定点化后的神经网络进行智能分析处理,所述智能分析处理包括计算机视觉处理或自然语言处理;
其中,所述对优化后的该待定点化单元进行定点化,包括:
基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值的数据分布,确定优化后的该待定点化单元输出的特征值的定点化超参,并基于该定点化超参对优化后的该待定点化单元输出的特征值进行定点化;
其中,在确定优化后的该待定点化单元输出的特征值的定点化超参之后,还包括:
基于优化后的该待定点化单元输出的特征值的定点化超参,确定第三定点化超参候选值范围;所述第三定点化超参候选值范围的下限和上限通过在所述优化后的该待定点化单元输出的特征值的基础上分别减去和加上一个大于0的特定值得到;
从该第三定点化超参候选值范围中确定优化后的该待定点化单元输出的特征值的最终定点化超参;
所述基于该定点化超参对优化后的该待定点化单元输出的特征值进行定点化,包括:
基于该待定点化单元输出的特征值的最终定点化超参对优化后的该待定点化单元输出的特征值进行定点化;
所述从该第三定点化超参候选值范围中确定优化后的该待定点化单元输出的特征值的最终定点化超参,包括:
分别确定该第三定点化超参候选值范围中各候选值对应的神经网络的输出误差;
按照对应的神经网络的输出误差从小到大的顺序对各候选值进行排序,并将排序后的前预设数量的候选值的平均值确定为待定点化单元输出的特征值的最终定点化超参。
10.根据权利要求9所述的方法,其特征在于,所述基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值,对该待定点化单元的权值参数进行优化,包括:
对该待定点化单元的权值参数进行优化,以使所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值二者之间的误差最小。
11.根据权利要求9所述的方法,其特征在于,所述分别确定该第三定点化超参候选值范围中各候选值对应的神经网络的输出误差,包括:
对于任一候选值,基于第五类型特征值以及第六类型特征值确定该候选值对应的神经网络的输出误差;其中,所述第五类型特征值为使用该候选值对优化后的该待定点化单元输出的特征值进行定点化时,所述神经网络各单元输出的特征值;所述第六类型特征值为原始浮点状态下,所述神经网络各单元输出的特征值。
12.根据权利要求9-11任一项所述的方法,其特征在于,所述神经网络包括多个单元,各单元包括所述神经网络的一层或连续多层。
13.一种神经网络定点化装置,其特征在于,包括:
确定模块,用于对于神经网络的待定点化单元,基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值的数据分布,确定该待定点化单元输出的特征值的定点化超参;其中,所述神经网络包括预处理后的浮点模型,所述预处理后的浮点模型通过对输入的浮点模型的拓扑结构进行解析,以生成神经网络数据流图,基于配置文件中的样本图片信息,生成所述神经网络的数据层,并基于所述配置文件中的待部署硬件平台的平台特性,对所述神经网络的拓扑结构进行拆分和融合得到;该待定点化单元输出的特征值为向所述神经网络输入一定数量的样本图片的情况下的输出;
定点化模块,用于基于该定点化超参对该待定点化单元输出的特征值进行定点化,得到定点化后的神经网络;所述定点化后的神经网络部署于所述待部署硬件平台,以使所述待部署硬件平台基于所述定点化后的神经网络进行智能分析处理,所述智能分析处理包括计算机视觉处理或自然语言处理;
其中,在确定模块确定该待定点化单元输出的特征值的定点化超参之后,还包括:
基于该待定点化单元输出的特征值的定点化超参,确定第一定点化超参候选值范围;所述第一定点化超参候选值范围的下限和上限通过在所述定点化超参的基础上分别减去和加上一个大于0的特定值得到;
从该第一定点化超参候选值范围中确定该待定点化单元输出的特征值的最终定点化超参;
所述定点化模块基于该定点化超参对该待定点化单元输出的特征值进行定点化,包括:
基于该待定点化单元输出的特征值的最终定点化超参对该待定点化单元输出的特征值进行定点化;
所述确定模块从该第一定点化超参候选值范围中确定该待定点化单元输出的特征值的最终定点化超参,包括:
分别确定该第一定点化超参候选值范围中各候选值对应的神经网络的输出误差;
按照对应的神经网络的输出误差从小到大的顺序对各候选值进行排序,并将排序后的前预设数量的候选值的平均值确定为待定点化单元输出的特征值的最终定点化超参。
14.一种神经网络定点化装置,其特征在于,包括:
优化模块,用于对于神经网络的待定点化单元,基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值,以及,原始浮点状态下该待定点化单元输出的特征值,对该待定点化单元的权值参数进行优化;其中,所述神经网络包括预处理后的浮点模型,所述预处理后的浮点模型通过对输入的浮点模型的拓扑结构进行解析,以生成神经网络数据流图,基于配置文件中的样本图片信息,生成所述神经网络的数据层,并基于所述配置文件中的待部署硬件平台的平台特性,对所述神经网络的拓扑结构进行拆分和融合得到;该待定点化单元输出的特征值为向所述神经网络输入一定数量的样本图片的情况下的输出;
定点化模块,用于对优化后的该待定点化单元进行定点化,得到定点化后的神经网络;所述定点化后的神经网络部署于所述待部署硬件平台,以使所述待部署硬件平台基于所述定点化后的神经网络进行智能分析处理,所述智能分析处理包括计算机视觉处理或自然语言处理;
其中,所述定点化模块对优化后的该待定点化单元进行定点化,包括:
基于所述神经网络的已定点化单元保持定点化状态的情况下该待定点化单元输出的特征值的数据分布,确定优化后的该待定点化单元输出的特征值的定点化超参,并基于该定点化超参对优化后的该待定点化单元输出的特征值进行定点化;
其中,在所述定点化模块确定优化后的该待定点化单元输出的特征值的定点化超参之后,还包括:
基于优化后的该待定点化单元输出的特征值的定点化超参,确定第三定点化超参候选值范围;所述第三定点化超参候选值范围的下限和上限通过在所述优化后的该待定点化单元输出的特征值的基础上分别减去和加上一个大于0的特定值得到;
从该第三定点化超参候选值范围中确定优化后的该待定点化单元输出的特征值的最终定点化超参;
所述定点化模块基于该定点化超参对优化后的该待定点化单元输出的特征值进行定点化,包括:
基于该待定点化单元输出的特征值的最终定点化超参对优化后的该待定点化单元输出的特征值进行定点化;
所述定点化模块从该第三定点化超参候选值范围中确定优化后的该待定点化单元输出的特征值的最终定点化超参,包括:
分别确定该第三定点化超参候选值范围中各候选值对应的神经网络的输出误差;
按照对应的神经网络的输出误差从小到大的顺序对各候选值进行排序,并将排序后的前预设数量的候选值的平均值确定为待定点化单元输出的特征值的最终定点化超参。
15.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现如权利要求1或9所述的方法。
16.一种机器可读存储介质,其特征在于,所述机器可读存储介质内存储有机器可执行指令,所述机器可执行指令被处理器执行时实现权利要求1或9所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010038017.1A CN113128659B (zh) | 2020-01-14 | 2020-01-14 | 神经网络定点化方法、装置、电子设备及可读存储介质 |
PCT/CN2021/071311 WO2021143686A1 (zh) | 2020-01-14 | 2021-01-12 | 神经网络定点化方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010038017.1A CN113128659B (zh) | 2020-01-14 | 2020-01-14 | 神经网络定点化方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113128659A CN113128659A (zh) | 2021-07-16 |
CN113128659B true CN113128659B (zh) | 2024-06-28 |
Family
ID=76771130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010038017.1A Active CN113128659B (zh) | 2020-01-14 | 2020-01-14 | 神经网络定点化方法、装置、电子设备及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113128659B (zh) |
WO (1) | WO2021143686A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116341633B (zh) * | 2023-05-29 | 2023-09-01 | 山东浪潮科学研究院有限公司 | 一种模型部署方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760933A (zh) * | 2016-02-18 | 2016-07-13 | 清华大学 | 卷积神经网络的逐层变精度定点化方法及装置 |
CN106650922A (zh) * | 2016-09-29 | 2017-05-10 | 清华大学 | 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101609416B (zh) * | 2009-07-13 | 2012-11-14 | 清华大学 | 提高分布式系统性能调优速度的方法 |
US9400955B2 (en) * | 2013-12-13 | 2016-07-26 | Amazon Technologies, Inc. | Reducing dynamic range of low-rank decomposition matrices |
CN107330515A (zh) * | 2016-04-29 | 2017-11-07 | 北京中科寒武纪科技有限公司 | 一种用于执行人工神经网络正向运算的装置和方法 |
US10621486B2 (en) * | 2016-08-12 | 2020-04-14 | Beijing Deephi Intelligent Technology Co., Ltd. | Method for optimizing an artificial neural network (ANN) |
US10643124B2 (en) * | 2016-08-12 | 2020-05-05 | Beijing Deephi Intelligent Technology Co., Ltd. | Method and device for quantizing complex artificial neural network |
CN106611216A (zh) * | 2016-12-29 | 2017-05-03 | 北京旷视科技有限公司 | 基于神经网络的计算方法及装置 |
CN115688877A (zh) * | 2017-06-06 | 2023-02-03 | 格兰菲智能科技有限公司 | 一种用于对待量化数据进行定点化处理的方法及计算装置 |
CN107688849B (zh) * | 2017-07-28 | 2021-04-13 | 赛灵思电子科技(北京)有限公司 | 一种动态策略定点化训练方法及装置 |
KR102589303B1 (ko) * | 2017-11-02 | 2023-10-24 | 삼성전자주식회사 | 고정 소수점 타입의 뉴럴 네트워크를 생성하는 방법 및 장치 |
CN110413255B (zh) * | 2018-04-28 | 2022-08-19 | 赛灵思电子科技(北京)有限公司 | 人工神经网络调整方法和装置 |
KR20190130443A (ko) * | 2018-05-14 | 2019-11-22 | 삼성전자주식회사 | 뉴럴 네트워크의 양자화 방법 및 장치 |
CN109635935B (zh) * | 2018-12-29 | 2022-10-14 | 北京航空航天大学 | 基于模长聚类的深度卷积神经网络模型自适应量化方法 |
CN110135565B (zh) * | 2019-05-20 | 2023-03-24 | 上海大学 | 针对神经网络算法在集成电路上实现性能的评估系统 |
-
2020
- 2020-01-14 CN CN202010038017.1A patent/CN113128659B/zh active Active
-
2021
- 2021-01-12 WO PCT/CN2021/071311 patent/WO2021143686A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760933A (zh) * | 2016-02-18 | 2016-07-13 | 清华大学 | 卷积神经网络的逐层变精度定点化方法及装置 |
CN106650922A (zh) * | 2016-09-29 | 2017-05-10 | 清华大学 | 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113128659A (zh) | 2021-07-16 |
WO2021143686A1 (zh) | 2021-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113469186B (zh) | 一种基于少量点标注的跨域迁移图像分割方法 | |
CN111127364B (zh) | 图像数据增强策略选择方法及人脸识别图像数据增强方法 | |
US11494689B2 (en) | Method and device for improved classification | |
EP3792841A1 (en) | Automated feature generation for machine learning application | |
CN113326377A (zh) | 一种基于企业关联关系的人名消歧方法及系统 | |
CN112734037A (zh) | 基于记忆引导的弱监督学习方法、计算机设备和存储介质 | |
CN113128659B (zh) | 神经网络定点化方法、装置、电子设备及可读存储介质 | |
CN115546626B (zh) | 面向数据双重不平衡的降偏场景图生成方法及系统 | |
CN116702835A (zh) | 神经网络推理加速方法、目标检测方法、设备及存储介质 | |
CN117371511A (zh) | 图像分类模型的训练方法、装置、设备及存储介质 | |
Yang et al. | Bayesian structure scores for probabilistic circuits | |
CN116861985A (zh) | 一种基于卷积层相对信息熵的神经网络剪枝子网搜索方法 | |
CN116861373A (zh) | 一种查询选择率估算方法、系统、终端设备及存储介质 | |
CN116861269A (zh) | 工程领域的多源异构数据融合及分析方法 | |
CN117011751A (zh) | 使用变换器网络分割视频图像序列 | |
US20240160196A1 (en) | Hybrid model creation method, hybrid model creation device, and recording medium | |
Aluja-Banet et al. | Stability and scalability in decision trees | |
CN113313210A (zh) | 用于数据处理的方法和设备 | |
CN113139582B (zh) | 基于人工蜂群的图像识别方法、系统及存储介质 | |
CN114077681B (zh) | 一种图像数据处理方法、装置、计算机设备及存储介质 | |
CN112161621B (zh) | 一种无模型辅助导航适配区域选取方法 | |
CN113205856B (zh) | 一种微生物宏基因组分箱方法及系统 | |
CN118070896A (zh) | 基于知识图谱的信息处理方法及系统 | |
CN116847283A (zh) | 一种基于csi的室内定位方法及系统 | |
CN117407742A (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 |