CN113222098A - 数据处理方法和相关产品 - Google Patents
数据处理方法和相关产品 Download PDFInfo
- Publication number
- CN113222098A CN113222098A CN202010068866.1A CN202010068866A CN113222098A CN 113222098 A CN113222098 A CN 113222098A CN 202010068866 A CN202010068866 A CN 202010068866A CN 113222098 A CN113222098 A CN 113222098A
- Authority
- CN
- China
- Prior art keywords
- quantization
- layer
- data
- processing
- quantized
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000013139 quantization Methods 0.000 claims abstract description 241
- 238000000034 method Methods 0.000 claims abstract description 120
- 238000003062 neural network model Methods 0.000 claims abstract description 98
- 230000004913 activation Effects 0.000 claims abstract description 47
- 238000012545 processing Methods 0.000 claims description 198
- 238000007667 floating Methods 0.000 claims description 28
- 230000015654 memory Effects 0.000 claims description 18
- 239000006185 dispersion Substances 0.000 claims description 10
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 6
- 238000013528 artificial neural network Methods 0.000 abstract description 11
- 238000013473 artificial intelligence Methods 0.000 abstract 1
- 230000000875 corresponding effect Effects 0.000 description 52
- 238000010586 diagram Methods 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 9
- 238000012360 testing method Methods 0.000 description 8
- 238000003064 k means clustering Methods 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000002596 correlated effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 238000011176 pooling Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 235000018185 Betula X alpestris Nutrition 0.000 description 1
- 235000018212 Betula X uliginosa Nutrition 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient 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/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- 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/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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)
- Computing Systems (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
本申请实施例公开了人工智能领域,尤其涉及神经网络技术领域的一种数据处理方法和相关产品,该方法包括:神经网络模型中第L层的待量化数据包括的多个数值进行聚类处理,得到聚类结果,所述L为大于0的整数;基于所述聚类结果,得到量化最大值和量化最小值;基于所述量化最大值和所述量化最小值,确定所述第L层的第一量化处理对应的量化参数,其中,所述第一量化处理用于将所述第L层的激活数据中的数值量化为M比特表示的整数;能更精确地用有限的量化阶表达该待量化数据的分布情况,进而提高量化精度。
Description
技术领域
本申请涉及神经网络技术领域,尤其涉及一种数据处理方法和相关产品。
背景技术
随着神经网络技术的发展,出现了神经网络量化技术,主要是对神经网络中每个网络层(如卷积层和全连接层)中的权重、激活值(即各层的输出特征图或输入特征图)等进行压缩,降低权重的位宽、激活值的位宽等,从而实现压缩神经网络模型的数据量、降低神经网络模型在预测过程中的计算资源需求等目的。
当前,通常采用的神经网络量化方案是直接压缩神经网络模型的模型参数值和激活值到固定位宽。例如,将残差网络ResNet-18中的模型参数值和激活值压缩至8比特(bit)。然而,这种神经网络量化方案不能大幅减少模型运算量以及计算资源开销。为进一步减少神经网络模型的模型运算量和计算资源开销,需要更低比特的神经网络量化方案。
发明内容
本申请实施例公开了一种数据处理方法和相关产品。
第一方面,本申请实施例提供了一种数据处理方法,该方法包括:对神经网络模型中第L层输出的待量化数据包括的多个数值进行聚类处理,得到聚类结果,所述L为大于0的整数;基于所述聚类结果,得到量化最大值和量化最小值;基于所述量化最大值和所述量化最小值,确定所述第L层的第一量化处理对应的量化参数,其中,所述第一量化处理用于将所述第L层的激活数据中的数值量化为M比特表示的整数。
可选的,所述待量化数据是测试图像或者是通过所述神经网络模型的前(L-1)个网络层对测试图像或样本图像进行处理得到的。上述量化最大值小于所述待量化数据包括的各数值中的最大值,上述最小值大于所述待量化数据包括的各数值中的最小值。
本申请实施例中,对待量化数据包括的各数值进行聚类以得到该待量化数据对应的量化最大值和量化最小值,进而基于该量化最大值和该量化最小值确定该待量化数据对应的量化参数;以便于能更精确地用有限的量化阶表达该待量化数据的分布情况,进而提高量化精度。
在一个可选的实现方式中,所述基于所述聚类结果,得到量化最大值和量化最小值,包括:将所述聚类结果中包括的至少两个聚类中心中的最大值作为所述量化最大值,并将所述至少两个聚类中心中的最小值作为所述量化最小值。
在该实现方式中,根据聚类结果中包括的至少两个聚类中心,可以准确、快速地得到量化最大值和量化最小值。
在一个可选的实现方式中,所述基于所述量化最大值和所述量化最小值,确定所述第L层的第一量化处理对应的量化参数,包括:以所述量化最小值为第一项且以所述量化最大值为最后一项,得到包括N个数值的第一等差数列;基于所述第一等差数列中包含的所述N个数值,确定所述量化参数。
在该实现方式中,将第一等差数列中包含的各数值的公共因子作为量化参数,以便于利用该量化参数将第L层的激活数据量化为整数。
在一个可选的实现方式中,所述方法还包括:基于所述待量化数据包括的多个数值的分布离散度,确定所述第L层的第一量化处理对应的比特数M。可选的,所述待量化数据包括的多个数值的离散度与所述比特数M正相关。
在该实现方式中,基于待量化数据包括的多个数值的分布离散度,确定第L层的第一量化处理对应的比特数M;减少量化后的数据所占用的比特数,进而节省计算资源。
在一个可选的实现方式中,所述第一量化处理对应的比特数M为预先设置的。也就是说,第一量化处理对应的比特数M是事先确定的,并不是由待量化数据包括的多个数值的分布离散度确定的。
在一个可选的实现方式中,在所述基于所述量化最大值和所述量化最小值,确定所述第L层的第一量化处理对应的量化参数之后,所述方法还包括:获得利用所述神经网络模型对第一图像进行预测处理的过程中,所述第L层的激活数据;基于所述量化参数对所述激活数据进行第一量化处理,得到所述第L层的处理结果。
在该实现方式中,基于量化数据对第L层的激活数据进行量化处理,可以节省计算资源和存储资源。
在一个可选的实现方式中,所述基于所述量化最大值和所述量化最小值,确定所述第L层的第一量化处理对应的量化参数之后,所述方法还包括:将第一运算参数转换为定点数,得到第二运算参数;所述第一运算参数为执行第一运算处理所需的参数,所述第一运算参数包括所述量化参数,所述第一运算处理是通过合并包括所述第L层在内的至少一个网络层执行的网络模型处理和所述第一量化处理得到的;基于所述第二运算参数,对所述至少一个网络层的输入数据执行所述第一运算处理,得到所述至少一个网络层的处理结果。可选的,所述至少一个网络层的输入数据是待预测图像,或者是通过所述神经网络模型中位于所述至少一个网络层之前的至少一个第二网络层对待预测图像进行处理得到的。
在该实现方式中,执行第一运算处理的过程中仅存在定点运算,而不存在浮点运算,可以提高计算效率。
在一个可选的实现方式中,所述将第一运算参数转换为定点数,得到第二运算参数,包括:将所述第一运算参数中包括的每个数值扩大K倍,得到扩大数值,所述K为大于1的整数;将所述扩大数值转换为定点数,得到所述第二运算参数。可选的,将所述扩大数值通过四舍五入取整转换为定点数。
在该实现方式中,能够快速、准确地将第一运算参数中的浮点数转换为定点数。
在一个可选的实现方式中,所述第一运算处理是通过合并包括所述第L层在内的至少两个相邻网络层执行的网络模型处理和所述第一量化处理得到的。
在一个可选的实现方式中,包括所述第L层在内的至少两个相邻网络层执行的网络模型处理均为线性运算处理。
第二方面,本申请实施例提供了一种数据处理装置,包括:聚类单元,用于对神经网络模型的第L层输出的待量化数据包括的多个数值进行聚类处理,得到聚类结果,所述L为大于0的整数;确定单元,用于基于所述聚类结果,得到量化最大值和量化最小值;所述确定单元,还用于基于所述量化最大值和所述量化最小值,确定所述第L层的第一量化处理对应的量化参数,其中,所述第一量化处理用于将所述第L层的激活数据中的数值量化为M比特表示的整数。可选的,所述待量化数据是测试图像或者是通过所述神经网络模型的前(L-1)个网络层对测试图像或样本图像进行处理得到的。
在一个可选的实现方式中,所述确定单元,具体用于将所述聚类结果中包括的至少两个聚类中心中的最大值作为所述量化最大值,并将所述至少两个聚类中心中的最小值作为所述量化最小值。
在一个可选的实现方式中,所述确定单元,具体用于以所述量化最小值为第一项且以所述量化最大值为最后一项,得到包括N个数值的第一等差数列;基于所述第一等差数列中包含的所述N个数值,确定所述量化参数。
在一个可选的实现方式中,所述确定单元,还用于基于所述待量化数据包括的多个数值的分布离散度,确定所述第L层的第一量化处理对应的比特数M。
在一个可选的实现方式中,所述第一量化处理对应的比特数M为预先设置的。也就是说,第一量化处理对应的比特数M是事先确定的,并不是由待量化数据包括的多个数值的分布离散度确定的。
在一个可选的实现方式中,所述装置还包括:第一处理单元,用于获得利用所述神经网络模型对第一图像进行预测处理的过程中,所述第L层的激活数据;量化单元,用于基于所述量化参数对所述激活数据进行第一量化处理,得到所述第L层的处理结果。
在一个可选的实现方式中,所述装置还包括:第一转换单元,用于将第一运算参数转换为定点数,得到第二运算参数;所述第一运算参数为执行第一运算处理所需的参数,所述第一运算参数包括所述量化参数,所述第一运算处理是通过合并包括所述第L层在内的至少一个网络层执行的网络模型处理和所述第一量化运算处理得到的;第二处理单元,用于基于所述第二运算参数,对所述至少一个网络层的输入数据执行所述第一运算处理得到所述至少一个网络层的。可选的,所述至少一个网络层的输入数据是待预测图像,或者是通过所述神经网络模型中位于所述至少一个网络层之前的至少一个第二网络层对待预测图像进行处理得到的的处理结果。
在一个可选的实现方式中,所述第一转换单元,具体用于将所述第一运算参数中包括的每个数值扩大K倍,得到扩大数值,所述K为大于1的整数;将所述扩大数值转换为定点数,得到所述第二运算参数。
在一个可选的实现方式中,所述第一运算处理是通过合并包括所述第L层在内的至少两个相邻网络层执行的网络模型处理和所述第一量化处理得到的。
在一个可选的实现方式中,包括所述第L层在内的至少两个相邻网络层执行的网络模型处理均为线性运算处理。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如上述第一方面以及任一种可选的实现方式的方法。
第四方面,本申请实施例提供了一种芯片,该芯片包括处理器与数据接口,该处理器通过该数据接口读取存储器上存储的指令,执行如上述第一方面以及任一种可选的实现方式的方法。
第五方面,本申请实施例提供了一种计算机可读存储介质,该计算机存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行上述第一方面及任一种可选的实现方式的方法。
第六方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面以及任一种可选的实现方式的方法。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1为本申请实施例提供的一种数据处理方法流程图;
图2为本申请实施例提供的另一种数据处理方法流程图;
图3为本申请实施例提供的一种量化阶的示意图;
图4为本申请实施例提供的又一种数据处理方法流程图;
图5为本申请实施例提供的又一种数据处理方法流程图;
图6为本申请实施例提供的一种数据处理装置的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图;
图8为本申请实施例提供的一种服务器的结构示意图。
具体实施方式
本申请的说明书实施例和权利要求书及上述附图中的术语“第一”、“第二”、和“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。“和/或”用于表示在其所连接的两个对象之间选择一个或全部。例如“A和/或B”表示A、B或A+B。
神经网络量化技术主要是对神经网络中的网络层(如卷积层、池化层、全连接层等)的权重或激活值(activation)量化为由特定比特数表示的量,从而达到压缩神经网络模型的数据量、降低神经网络模型在预测过程中的计算资源需求等目的,例如,将神经网络模型中的权重量化为一个用8比特表示的整数。对神经网络模型进行量化主要包括:对神经网络模型中的权重进行量化,和/或对神经网络模型的网络层得到的激活值(即激活数据)进行量化。神经网络模型中的一个网络层的激活值可以指该网络层的输出数据(即输出特征图),量化后的输出数据可以作为下一网络层的输入数据(即输入特征图)。在实际应用中,对神经网络模型中的权重进行量化可以是训练过程中进行的,例如对神经网络模型进行量化训练,或者可以先对神经网络模型进行训练,并对训练得到的神经网络模型中的权重进行量化。对神经网络模型中的激活值进行量化可以在利用神经网络模型执行预测处理任务的过程中进行。可以理解,对神经网络模型中的权重进行量化和对神经网络模型在预测处理过程中得到的激活值进行量化是分开进行的,在实际应用中,可以仅对权值进行量化,仅对激活值进行量化,或者,对权值和激活值均进行量化。
在本公开实施例中,可以根据神经网络模型的各层(例如卷积层)的输出特征图包括的数值的分布来确定各层的量化参数,以便于在利用该神经网络模型进行预测处理时利用各层的量化参数对各层输出的激活数据进行量化,进而提高量化效率。
请参见图1,图1为本申请实施例提供的一种数据处理方法流程图。如图1所示,该方法可包括:
101、数据处理装置对神经网络模型的第L层的待量化数据包括的多个数值进行聚类处理,得到聚类结果。
该数据处理装置可以是手机、平板电脑、可穿戴设备、笔记本电脑、台式电脑等终端设备,也可以是服务器。上述L为大于0的整数,即第L层为神经网络模型的第一层、中间的某个层、或者是最后一层。上述待量化数据包括至少一个用M个以上比特表示的数值,上述M为大于1的整数。该第L层的待量化数据可以为该第L层对输入数据进行处理得到的特征图(也可以称为输出特征图)或者数据。示例性的,所述待量化数据是测试图像或者是通过所述神经网络模型的前(L-1)个网络层对测试图像或样本图像进行处理得到的。在一些实施例中,上述待量化数据可以为上述神经网络模型中除最后一层之外的任一层输出的特征图,即输出特征图。神经网络模型中的任一层输出的特征图(即输出特征图)为该任一层的输出数据(即激活数据),任一层输入的特征图(即输入特征图)为该任一层的输入数据。特征图可以理解一组或多组矩阵(两维或两维以上)。在一些实施例中,神经网络模型的第一层的输入数据可以是经过预处理的图像数据,该图像数据中的数值可以用8比特表示。
该神经网络模型可以是深度神经网络模型,例如卷积神经网络、循环神经网络、长短期记忆网络(Long Short-Term Memory,LSTM)等任一种,本申请不作限定。在一些实施例中,神经网络模型是通过训练得到的。例如,神经网络模型为利用训练数据训练得到的预测模型。该神经网络模型中的权重可以是未被量化的权重,或者,神经网络模型中的至少一部分权重被量化。例如,神经网络模型中的权重均被量化为用小于8比特表示的整数。
在一些实施例中,数据处理装置可获得训练得到的神经网络模型;将训练样本输入至该神经网络模型进行预测处理,并获得该神经网络模型的第L层输出的待量化数据;对该待量化数据包括的多个数值进行聚类处理,得到聚类结果。可以理解,数据处理装置可采用类似的方式获取神经网络模型的任一层输出的特征图(对应于待量化数据)。
在一些实施例中,数据处理装置可获得训练得到的神经网络模型;对该神经网络模型中的权重进行量化得到量化后的神经网络模型;将训练样本输入至该量化后的神经网络模型进行预测处理,并获得该量化后的神经网络模型的第L层输出的待量化数据;对该待量化数据包括的多个数值进行聚类处理,得到聚类结果。
可选的,数据处理装置采用聚类算法对上述待量化数据包括的各数值进行聚类,得到聚类结果,该聚类结果可以为对上述待量化数据包括的各数值进行聚类得到的至少两个聚类中心。该聚类算法可以是K均值(K-means)聚类算法、层次聚类算法(例如birch算法)、基于密度的聚类算法、图论聚类法等聚类算法中的任一种,本申请不作限定。示例性的,数据处理装置采用K-means聚类算法对待量化数据进行聚类以得到至少两个聚类中心,即聚类结果。
102、数据处理装置基于上述聚类结果,得到量化最大值和量化最小值。
可选的,上述量化最大值小于上述待量化数据中的最大值,上述量化最小值大于上述待量化数据中的最小值。
在一些实施例中,数据处理装置基于上述聚类结果,得到量化最大值和量化最小值的实现方式如下:将上述聚类结果中包括的至少两个聚类中心中的最大值作为上述量化最大值,并将上述至少两个聚类中心中的最小值作为上述量化最小值。示例性的,数据处理装置采用K-means聚类算法对上述待量化数据进行聚类,得到至少两个聚类中心;将上述至少两个聚类中心中的最大值作为上述量化最大值;将上述至少两个聚类中心中的最小值作为上述量化最小值。举例来说,数据处理装置采用K-means聚类算法对待量化数据进行聚类,得到5聚类中心;将该5个聚类中心中的最大值作为量化最大值;将该5个聚类中心中的最小值作为量化最小值。应理解,数据处理装置可根据实际需要相应的设置聚类的个数,即聚类中心的个数。
103、基于上述量化最大值和上述量化最小值,确定上述第L层的第一量化处理对应的量化参数。
上述第一量化处理用于将上述第L层的激活数据中的数值量化为M比特表示的整数。
具体地,可以基于量化最大值和量化最小值,得到量化序列,并基于该量化序列得到量化参数。在一些实施例中,基于上述量化最大值和上述量化最小值,确定上述第L层的第一量化处理对应的量化参数的一种实现方式如下:以上述量化最小值为第一项且以上述量化最大值为最后一项,得到包括N个数值的第一等差数列;将上述第一等差数列中包含的上述N个数值的公共因子作为上述量化参数。举例来说,数据处理装置采用K-means聚类算法对第L层输出的特征图进行聚类得到该特征图对应的最大值(即max)1.3和最小值(min)-0.2;确定以-0.2为第一项,以1.3为最后一项,且包括16个数值的第一等差数列{-0.2,-0.1,0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8.0.9,1.0,1.1,1.2,1.3};将该第一等差数列中各项的公共因子0.1作为该层的量化参数,即第一量化处理对应的量化参数。
在一些实施例中,数据处理装置在执行步骤103之前,可执行如下操作:获取量化上述待量化数据包括的数值待采用的比特位的个数M。其中,比特数M可以是预先设置的,例如,数据处理装置或者其他装置可预先存储有量化上述待量化数据包括的数值待采用的比特位的个数。相应地,在需要进行量化参数的确定时,从存储器中获取存储的。在另一些实施例中,比特数M也可以是基于待量化数据确定的,例如,基于上述待量化数据包括的多个数值的分布离散度,确定上述第L层的第一量化处理对应的比特数M。或者,也可以基于需要量化的数据的其他分布特性或参数,来确定比特数M。
可选的,N为2的M次方。举例来说,数据处理装置确定待采用4比特量化神经网络模型的某一层输出的特征图(对应于待量化数据),采用K-means聚类算法对该层输出的特征图进行聚类得到该特征图对应的最大值(即max)1.3和最小值(min)-0.2;确定以-0.2为第一项,以1.3为最后一项,且包括16个数值的第一等差数列{-0.2,-0.1,0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8.0.9,1.0,1.1,1.2,1.3}。可以理解,上述第一等差数列提取上述公共因子之后可得到第二等差数列,该第二等差数列包括的数值均为整数,可以将第L层的输出数据量化为采用M个比特表示的第二等差数列中的某个数值。
本申请实施例中,对待量化数据包括的各数值进行聚类以得到该待量化数据对应的量化最大值和量化最小值,进而基于该量化最大值和该量化最小值确定该待量化数据对应的量化参数;以便于能更精确地用有限的量化阶表达该待量化数据的分布情况,进而提高量化精度。
下面介绍基于上述待量化数据确定上述第L层的第一量化处理对应的比特数M的一些可选实现方式。
示例性的,数据处理装置基于上述待量化数据包括的各数值的方差,确定上述第L层的第一量化处理对应的比特数M;上述第L层的第一量化处理对应的比特数M与上述待量化数据包括的各数值的方差正相关。举例来说,数据处理装置可以将方差与一个或多个阈值进行比较来确定比特数M,在待量化数据包括的各数值的方差小于第一阈值时,确定采用3比特量化该待量化数据包括的各数值;在该待量化数据包括的各数值的方差不小于该第一阈值时,确定采用4比特量化该待量化数据包括的各数值。该第一阈值可以是0.016、0.2、1.2、10、100等,本申请不作限定。又举例来说,也可以设置多个分段区间,数据处理装置在待量化数据包括的各数值的方差小于第二阈值且大于第三阈值时,确定采用4比特量化该待量化数据包括的各数值;在该待量化数据包括的各数值的方差不小于该第二阈值时,确定采用6比特量化该待量化数据包括的各数值;在该待量化数据包括的各数值的方差不大于该第三阈值时,确定采用2比特量化该待量化数据包括的各数值。该第三阈值可以是0.016、0.2、1.2等,该第二阈值可以是10、25等,本申请不作限定。
示例性的,数据处理装置基于上述待量化数据包括的各数值的极差,确定上述第L层的第一量化处理对应的比特数M;上述第L层的第一量化处理对应的比特数M与上述待量化数据包括的各数值的极差正相关。该待量化数据包括的各数值的极差是该待量化数据包括的最大值与最小值的差值。举例来说,数据处理装置在待量化数据包括的各数值的极差小于第四阈值时,确定采用3比特(对应于M)量化该待量化数据包括的各数值;在该待量化数据包括的各数值的方差不小于该第四阈值时,确定采用4比特量化该待量化数据包括的各数值。该第四阈值可以是1.2、10、100等,本申请不作限定。又举例来说,数据处理装置在待量化数据包括的各数值的极差小于第五阈值且大于第六阈值时,确定采用4比特量化该待量化数据包括的各数值;在该待量化数据包括的各数值的极差不小于该第五阈值时,确定采用6比特量化该待量化数据包括的各数值;在该待量化数据包括的各数值的极差不大于该第六阈值时,确定采用2比特量化该待量化数据包括的各数值。该第六阈值可以是0.016、0.2、1.2等,该第五阈值可以是10、25等,本申请不作限定。
示例性的,数据处理装置基于上述待量化数据包括的各数值的标准差,确定上述第L层的第一量化处理对应的比特数M;上述第L层的第一量化处理对应的比特数M与上述待量化数据包括的各数值的标准差正相关。举例来说,数据处理装置在待量化数据包括的各数值的标准差小于第七阈值时,确定采用3比特量化该待量化数据包括的各数值;在该待量化数据包括的各数值的标准差不小于该第七阈值时,确定采用4比特量化该待量化数据包括的各数值。该第七阈值可以是0.04、0.2、1.2、10等,本申请不作限定。
在该实现方式中,数据处理装置根据待量化数据包括的各数值的分布情况,确定上述第L层的第一量化处理对应的比特数M,即量化待量化数据包括的各数值待采用的比特数;能够减少量化所使用的比特位,从而减少利用该神经网络模型进行预测处理所需消耗的计算资源。
图2为本申请实施例提供的另一种数据处理方法流程图。图2中的方法流程是对图1中的方法流程的进一步细化和完善。如图2所示,该方法可包括:
201、数据处理装置获取神经网络模型的第L层输出的待量化数据。
上述待量化数据包括至少一个用M个以上比特表示的数值,上述L为大于0的整数,上述M为大于1的整数。步骤201的实现方式与步骤101的实现方式类似,这里不再赘述。
202、对上述待量化数据包括的各数值进行聚类,得到至少两个聚类中心。
203、将上述至少两个聚类中心中的最大值作为上述量化最大值,以及将上述至少两个聚类中心中的最小值作为上述量化最小值。
204、确定以上述量化最小值为第一项,以上述量化最大值为最后一项,且包括N个数值的第一等差数列。
上述N为2的M次方,M为第L层的第一量化处理对应的比特数。在一些实施例中,数据处理装置可预先存储有量化上述待量化数据包括的数值待采用的比特位的个数。相应地,在需要进行量化参数的确定时,从存储器中获取存储的量化处理对应的比特数M。在一些实施例中,数据处理装置在执行步骤204之前,可执行如下操作:确定上述第L层的第一量化处理对应的比特数M。
205、将上述第一等差数列中各项的公共因子作为上述神经网络模型的第L层的量化参数,并存储上述量化参数。
可以理解,步骤201至步骤205为数据处理装置确定神经网络模型中的第L层的量化参数的方法流程。在实际应用中,数据处理装置可采用类似的方法流程来确定神经网络模型中各层的量化参数,并存储各层的量化参数,以便于在利用该神经网络模型执行预测处理任务时,利用各层的量化参数对各层输出的特征图(对应于待量化数据)进行量化。可选的,数据处理装置存储上述第L层的量化参数、上述量化最小值以及上述量化最大值。在一些实施例中,数据处理装置可存储各层的量化参数、最大值以及最小值;其中,任一层的最大值和最小值是对该任一层的输出特征图包括的数值进行聚类得到的。
206、获得利用上述神经网络模型对第一待处理数据进行预测处理的过程中,上述第L层输出的激活数据。
可选地,第一待处理数据可以为输入的图片数据,或者是通过神经网络模型对输入图片进行预处理所产生的数据,还可以是其他数据。该第L层可以是卷积层、池化层、批归一化层等。上述第L层输出的激活数据为该第L层对其输入的特征图执行某种运算处理(例如卷积处理)得到的输出特征图。
207、基于上述量化参数,采用M比特对上述激活数据进行第一量化处理,得到上述第L层的处理结果。
可以理解,步骤206至步骤207为数据处理装置利用第L层的量化参数对该第L层输出的第一中间数据进行量化。在实际应用中,数据处理装置可采用类似的步骤来神经网络模型中各层(除最后一层)输出的数据(即特征图)进行量化,使得每层输出量化后的特征图。在一些实施例中,神经网络模型的最后一层的激活数据一般也不做低比特量化,而是保留浮点输出。在一些实施例中,数据处理装置在利用量化后的神经网络模型进行预测处理的过程中,神经网络模型的第一层的输入数据一般为经过预处理的图像数据(例如8比特表示一个像素),即不对第一层的输入做低比特量化处理;神经网络模型的最后一层也不做低比特量化处理,而是保留浮点输出;神经网络模型的各中间网络层的输出数据(即激活数据)的量化位宽(对应于上述M)保持一致以及各中间网络层的权重的量化位宽保持一致。例如各中间网络层的输出数据均采用4比特量化,各中间网络层的权重均为2比特。
本申请实施例中,数据处理装置在利用神经网络模型执行预测处理任务时,对该神经网络模型中的各层输出的数据进行量化,可以有效减少计算量。
下面以量化神经网络模型中的第L层输出的数据为例,介绍数据处理装置对神经网络模型的各层输出的数据进行量化的方式。
在一些实施例中,数据处理装置可存储有神经网络模型的第L层的量化参数、量化最大值、量化最小值以及量化该第L层输出的数据待采用的比特位的个数M;该数据处理装置可基于该量化最大值、该量化最小值、量化该第L层待采用的比特位的个数M以及该量化参数,对上述第一中间数据进行量化。示例性的,数据处理装置确定以量化最小值为第一项,以量化最大值为最后一项,且包括N个数值的第一等差数列,N为2的M次方;提取该第一等差数列中各项的公共因子(即量化参数)以得到第二等差数列,该第二等差数列中各项均为整数;基于该第一等差数列和该第二等差数列,采用M比特对第一中间数据进行量化。举例来说,量化最大值(即max)为1.3、量化最小值(min)为-0.2、量化参数为0.1、M为4;确定以-0.2为第一项,以1.3为最后一项,且包括16个数值的第一等差数列{-0.2,-0.1,0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8.0.9,1.0,1.1,1.2,1.3};提取该第一等差数列中各项的公共因子0.1(即量化参数)以得到第二等差数列{-2,-1,0,1,2,3,4,5,6,7,8.9,10,11,12,13};基于该第一等差数列和该第二等差数列,采用4比特对该待量化数据进行量化。在该举例中,该第一中间数据对应的公共因子Q(即量化参数)为0.1,偏移值shift为2。在该举例中,量化后的第一中间数据的通用表达式为:activation∈Q*{0-shift,1-shift,..,15-shift},shift采用4bit表达,activation表示第一中间数据中的每个数值。也就是说,第一中间数据中的每个数值均可以量化为量化参数与第二等差数列中的一个数值的乘积。例如,0.71可以量化为Q*7,即0.71的量化值为7。下面介绍基于该第一等差数列和该第二等差数列,采用M比特对第一中间数据进行量化的实现方式。
可选的,数据处理装置基于该第一等差数列和该第二等差数列,采用M比特对第一中间数据进行量化的实现方式如下:在该第一中间数据中的第一数值大于第一平均值且不小于第二平均值的情况下,采用M比特将上述第一数值量化为上述第二等差数列中的第i项;其中,上述第一平均值为上述第一等差数列中的第(i-1)项和第i项的平均值,上述第二平均值为上述第一等差数列中的上述第i项和第(i+1)项的平均值,上述i为大于1且小于上述N的整数;在上述第一中间数据中的第二数值不大于第三平均值的情况下,采用M比特将上述第二数值量化为上述第二等差数列中的第一项;上述第三平均值为上述第一等差数列中的第一项和第二项的平均值;在上述第一中间数据中的第三数值大于第四平均值的情况下,采用M比特将上述第三数值量化为上述第二等差数列中的最后一项;上述第四平均值为上述第一等差数列中的第(N-1)项和第N项的平均值。
可选的,第二等差数列中的每个数值为一个量化阶。图3为本申请实施例提供的一种量化阶的示意图。示例性的,第二等差数列包括16个整数,图3中的q0,q1,…,q15依次为第二等差数列中的第一项至最后一项。举例来说,第二等差数列包括16个整数,数据处理装置可以根据该第二等差数列生成15个阈值,分别记为thr0,thr1,…,thr14。这15个阈值与量化阶之间存在如下关系:thri=(qi+q(i+1))/2,i∈[1,14]。在一些实施例中,数据处理装置可以采用如下方式确定各待量化的数值对应的量化阶:
当Qin<=(q0+q1)/2,即当Qin<=thr0时,Qout=q0/Q;
当Qin>(q14+q15)/2,即当Qin>thr14时,Qout=q15/Q;
当(q(i-1)+qi)/2<Qin<=(qi+q(i+1))/2,即当thr(i-1)<Qin<thri时,Qout=qi/Q,i∈[1,14];
其中,Qin表示待量化的数值,即量化输入;Qout表示量化后的数值,即量化输出;Q为上述公共因子(即量化参数)。上述各待量化的数值可以是第一中间数据包括的各数值。可以理解,在该实施例中,(q0+q1)/2对应于上述第三平均值,q0/Q对应于上述第二等差数列中的第一项;(q14+q15)/2对应于上述第四平均值,q15/Q对应于上述第二等差数列中的最后一项;(q(i-1)+qi)/2对应于上述第一等差数列中的第(i-1)项和第i项的平均值,(qi+q(i+1))/2对应于上述第一等差数列中的第i项和第(i+1)项的平均值,qi/Q对应于上述第二等差数列中的第i项。
在一些实施例中,数据处理装置可存储有神经网络模型的第L层的量化参数以及量化该第L层输出的数据待采用的比特位的个数M;该数据处理装置可基于量化该第L层输出的数据待采用的比特位的个数M以及该量化参数,对上述第一中间数据进行量化。示例性的,数据处理装置基于上述量化参数,采用M比特对上述第一中间数据进行量化对应的量化公式可表达为:Qout=ceil[(Qin-Q/2)/Q],其中,Qin表示待量化的数值,即量化输入;Qout表示量化后的数值,即量化输出,Q表示量化参数。ceil是函数名,用于返回大于或者等于指定表达式的最小整数。ceil[(Qin-Q/2)/Q]为大于或者等于[(Qin-Q/2)/Q]的最小整数。例如ceil(0.54)等于1。
本申请实施例中,数据处理装置在利用神经网络模型执行预测处理任务时,对该神经网络模型中的各层输出的数据进行量化,可以有效减少计算量。
前述实施例介绍了数据处理装置对神经网络模型的各层输出的数据进行量化的方式。在一些实施例中,数据处理装置可以将各层执行的运算处理和对各层输出的数据进行的量化运算处理合并至同一个运算处理中,并将合并得到的运算处理转换为定点运算处理。下面以神经网络模型中的第L层为例进行介绍。
图4为本申请实施例提供的另一种数据处理方法流程图。如图4所示,该方法可包括:
401、数据处理装置获得利用神经网络模型对第二待处理数据进行预测处理的过程中,获得上述神经网络模型的第L层执行第一运算处理所需的第一运算参数。
上述第二待处理数据可以为输入的图片数据,或者是通过神经网络模型对输入图片进行预处理所产生的数据,还可以是其他数据。上述第一运算参数为执行第一运算处理所需的参数,上述第一运算参数包括上述量化参数,上述第一运算处理为合并上述第L层执行的运算处理和上述第L层对应的量化运算处理得到的运算处理。
402、将第一运算参数转换为定点数,得到第二运算参数。
定点数是计算机中数据的一种形式,与之相对的有浮点数。在运算中,其小数点始终不会发生移动。本申请实施例中的定点数可以是整数,也可以是非整数。
可选的,上述将第一运算参数转换为定点数,得到第二运算参数的一种实现方式如下:将上述第一运算参数中包括的每个浮点数扩大K倍,得到扩大数值,上述K为大于1的整数;将上述扩大数值转换为定点数,得到上述第二运算参数。
举例来说,神经网络模型中的第L层(Eltwise层)执行的运算处理为:Out=x*A+y*B,其中,x和y均为浮点参数,A和B为该Eltwise层的两个输入特征图;对第L层输出的激活数据进行的量化运算处理如下:Qout=ceil[(Qin-Q/2)/Q],其中,Qin表示该第L层输出的数据,即量化输入;Qout表示量化后的数值,即量化输出,Q表示量化参数;该第L层执行的第一运算处理为:Qout=ceil[(x*A+y*B-Q/2)/Q]。示例性的,数据处理装置可执行如下计算公式将该第L层执行第一运算处理所需数据(即第一运算参数)中的浮点数均转换为定点数并执行该第一运算处理:Out=ceil[(round(x*K)*A+round(y*K)-round(Q/2*K))/round(Q*K)]。round函数是将某个数字四舍五入到指定的位数,其函数公式为:round(要四舍五入的数字,保留的位数)。例如,round(3.1415926,2)=3.14,round(3.1415926,3)=3.142。在一些实施例中,round函数可以是将浮点数四舍五入转成整数。例如,round(3.1415926,0)=3,round(7.76)=8。
又举例来说,神经网络模型中的第L层(卷积层)执行的卷积运算为:Conv_out=W×A,其中,W为第L层的权重矩阵(weight),A为该第L层的输入特征图(即activation)。假设当前量化采用2W4A,即权重矩阵W中的每个元素量化后的位宽为2bit,输入特征图A中的每个元素量化后的位宽为4bit。W=alpha*B,A=Qparam*M,其中,B={-3,-1,1,3},M={0-shift,1-shift,…,15-shift},alpha(浮点数)表示该权重矩阵对应的公共因子,B表示量化后的权重矩阵,Qparam(浮点数)表示输入特征图对应的公共因子,M表示量化后的输入特征图。Conv_out=W×A=alpha*Qparam*(B×M)=scale*(B*M),因此卷积运算可以提取公共因子scale(即alpha*Qparam),硬件运算时由B与M进行定点卷积运算。数据处理装置对该第L层输出的特征图进行量化运算处理的计算公式如下:Qout=ceil[(Qin-Q/2)/Q],Q表示该第L层输出的激活数据对应的量化参数。应理解,该第L层执行的运算处理(对应于上述第一运算处理)的公式表示如下:Qout=ceil[(scale*(B*M)-Q/2)/Q]。示例性的,数据处理装置可执行如下计算公式将该第L层执行第一运算处理所需数据(即第一运算参数)中的浮点数均转换化为定点数,并执行该第一运算处理:Qout=ceil[(round(scale*K)*(B*M)-round(Q/2*K))/round(Q/2*K)]。
403、基于上述第二运算参数,执行上述第一运算处理得到上述第L层的处理结果。
应理解,数据处理装置可采用类似步骤401至步骤403的方式,执行神经网络模型中的每层对应的运算处理和量化运算处理。在一些实施例中,神经网络模型的一层或者多层执行的运算处理可以与对其输出数据执行的量化运算处理合并为一个运算处理,并将合并后的运算处理转换为定点运算处理,参阅上述Eltwise层执行的运算处理。
本申请实施例提出的方法可消除神经网络模型中的所有浮点参数及浮点运算,全流程采用定点运算,可以提高计算效率。
图5为本申请实施例提供的另一种数据处理方法流程图。如图5所示,该方法可包括:
501、数据处理装置获得利用上述神经网络模型对第三待处理数据进行预测处理的过程中,执行第二运算处理所需的第三运算参数。
上述第三运算参考为执行第二运算处理所需的参数,上述第三运算参数包括上述量化参数,上述第二运算处理为合并包括上述第L层执行的运算处理在内的至少两个网络层执行的运算处理和上述第L层对应的量化运算处理得到的运算处理。可选的,上述至少两个网络层执行的运算处理均为线性运算处理。线性运算是加法和数量乘法,在实数领域像只包含加法和数量乘法二元一次方程就属于线性运算,如y=3x+5。如果是矩阵的加法和数乘运算,就称为矩阵的线性运算;如果是向量的加法和数乘运算,统称为向量的线性运算。
502、将第三运算参数转换为定点数,得到第四运算参数。
可选的,上述将上述第三中间数据中的浮点数均量化为定点数的一种实现方式如下:将上述第三运算参数中的各浮点数分别扩大K倍数,并分别转换为定点数;上述K为大于1的整数。
503、基于上述第四运算参数,执行上述第二运算处理得到上述第L层的处理结果。
举例来说,神经网络模型中的第L层(卷积层)执行的卷积运算为:Conv_out=W×A,其中,W为第L层的权重矩阵(weight),A为该第L层的输入特征图(即activation),W=alpha*B,A=Qparam*M,alpha(浮点数)表示该权重矩阵对应的公共因子,B表示量化后的权重矩阵,Qparam(浮点数)表示输入特征图对应的公共因子,M表示量化后的输入特征图。Conv_out=W×A=alpha*Qparam*(B×M)=scale*(B*M)。假定神经网络模型中的部分网络结构是卷积层(即第L层,conv)->批归一化层(即BN层)->激活层(即relu层),该卷积层执行的运算处理、该批归一化层执行的运算(线性运算)处理以及激活层执行的运算(线性运算)处理通过参数合并后可简化为:BNout=scale1*A+bias,scale1为合并后(包含alpha,Qparam等)的浮点参数,A为卷积层的输出结果。接下来对BNout进行量化处理。量化函数可以为:Qout=ceil[(Qin-Q/2)/Q],Qin为BNout,可将Q/2合并到bias,最终conv->BN->relu执行的运算处理(对应于第二运算处理)可简化为:Qout=ceil[(scale1*A+bias)/Q],其中scale1,bias及Q均为浮点数。接下来要进行浮点数的消除。示例性的,数据处理装置将scale1,bias及Q同时乘上一个放大倍数K,通过round函数将浮点数转为定点,Qout=ceil[(round(N*scale)*A+round(N*bias))/round(N*Q)]=ceil[(scale_new*A+bias_new)/Q_new],scale_new,bias_new及Q_new均为定点数。
数据处理装置利用神经网络模型执行预测处理时执行的计算会存在浮点参数,例如批归一化、缩放操作等。除此外,量化过程也会引入浮点数,如weight量化中的参数alpha以及activation量化的量化参数Q等。考虑到硬件实现的复杂度,面积,计算资源等因素,本申请实施例提出的方法可消除神经网络模型中的所有浮点参数及浮点运算,全流程采用定点运算,可以提高计算效率。
图6为本申请实施例提供的一种数据处理装置的结构示意图。如图6所示,该数据处理装置包括:
聚类单元601,用于对神经网络模型的第L层输出的待量化数据包括的多个数值进行聚类处理,得到聚类结果,上述L为大于0的整数,所述待量化数据是测试图像或者是通过所述神经网络模型的前(L-1)个网络层对测试图像或样本图像进行处理得到的;
确定单元602,用于基于上述聚类结果,得到量化最大值和量化最小值;
确定单元602,还用于基于上述量化最大值和上述量化最小值,确定上述第L层的第一量化处理对应的量化参数,其中,上述第一量化处理用于将上述第L层的激活数据中的数值量化为M比特表示的整数。
在一个可选的实现方式中,确定单元602,具体用于将上述聚类结果中包括的至少两个聚类中心中的最大值作为上述量化最大值,并将上述至少两个聚类中心中的最小值作为上述量化最小值。
在一个可选的实现方式中,确定单元602,具体用于以上述量化最小值为第一项且以上述量化最大值为最后一项,得到包括N个数值的第一等差数列;基于所述第一等差数列中包含的所述N个数值,确定所述量化参数。
在一个可选的实现方式中,确定单元602,还用于基于上述待量化数据包括的多个数值的分布离散度,确定上述第L层的第一量化处理对应的比特数M。
在一个可选的实现方式中,上述装置还包括:
第一处理单元603,用于获得利用上述神经网络模型对第一图像进行预测处理的过程中,上述第L层的激活数据;
量化单元604,用于基于上述量化参数对上述激活数据进行第一量化处理,得到上述第L层的处理结果。
在一个可选的实现方式中,上述装置还包括:
第一转换单元605,用于将第一运算参数转换为定点数,得到第二运算参数;所述第一运算参数为执行第一运算处理所需的参数,所述第一运算参数包括所述量化参数,所述第一运算处理是通过合并包括所述第L层在内的至少一个网络层执行的网络模型处理和所述第一量化运算处理得到的;
第二处理单元606,用于基于所述第二运算参数,对所述至少一个网络层的输入数据执行所述第一运算处理得到所述至少一个网络层的;所述至少一个网络层的输入数据是待预测图像,或者是通过所述神经网络模型中位于至少一个网络层之前的至少一个第二网络层对待预测图像进行处理得到的的处理结果。
在一个可选的实现方式中,第一转换单元605,具体用于将上述第一运算参数中包括的每个浮点数扩大K倍,得到扩大数值,上述K为大于1的整数;将上述扩大数值转换为定点数,得到上述第二运算参数。
在一个可选的实现方式中,所述第一运算处理是通过合并包括所述第L层在内的至少两个相邻网络层执行的网络模型处理和所述第一量化处理得到的。
应理解以上数据处理装置的各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。例如,以上各个单元可以为单独设立的处理元件,也可以集成同一个芯片中实现,此外,也可以以程序代码的形式存储于控制器的存储元件中,由处理器的某一个处理元件调用并执行以上各个单元的功能。此外各个单元可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。该处理元件可以是通用处理器,例如中央处理器(英文:central processing unit,简称:CPU),还可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(英文:application-specific integrated circuit,简称:ASIC),或,一个或多个微处理器(英文:digitalsignal processor,简称:DSP),或,一个或者多个现场可编程门阵列(英文:field-programmable gate array,简称:FPGA)等。
图7为本申请实施例提供的一种电子设备的结构示意图。如图7所示,该电子设备70包括处理器701、存储器702和通信接口703;该处理器701、存储器702和通信接口703通过总线相互连接。图7中的电子设备可以为前述实施例中的数据处理装置。
存储器702包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmablereadonly memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CDROM),该存储器702用于相关指令及数据。通信接口703用于接收和发送数据。
处理器701可以是一个或多个中央处理器(central processing unit,CPU),在处理器701是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。上述实施例中由数据处理装置所执行的步骤可以基于该图7所示的电子设备的结构。具体的,处理器701可实现图6中各单元的功能。
该电子设备70中的处理器701用于读取该存储器702中存储的程序代码,执行前述实施例中的数据处理方法。
图8是本申请实施例提供的一种服务器800的结构示意图,该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在服务器800上执行存储介质830中的一系列指令操作。服务器800可以为本申请提供的数据处理装置。
服务器800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,和/或,一个或一个以上操作系统841,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由数据处理装置所执行的步骤可以基于该图8所示的服务器结构。具体的,中央处理器822可实现图6中各单元的功能。
在本申请的实施例中提供一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现前述实施例所提供的数据处理方法。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (19)
1.一种数据处理方法,其特征在于,包括:
对神经网络模型中第L层的待量化数据包括的多个数值进行聚类处理,得到聚类结果,所述L为大于0的整数;
基于所述聚类结果,得到量化最大值和量化最小值;
基于所述量化最大值和所述量化最小值,确定所述第L层的第一量化处理对应的量化参数,其中,所述第一量化处理用于将所述第L层的激活数据中的数值量化为M比特表示的整数。
2.根据权利要求1所述的方法,其特征在于,所述基于所述聚类结果,得到量化最大值和量化最小值,包括:
将所述聚类结果中包括的至少两个聚类中心中的最大值作为所述量化最大值,并将所述至少两个聚类中心中的最小值作为所述量化最小值。
3.根据权利要求1或2所述的方法,其特征在于,所述基于所述量化最大值和所述量化最小值,确定所述第L层的第一量化处理对应的量化参数,包括:
以所述量化最小值为第一项且以所述量化最大值为最后一项,得到包括N个数值的第一等差数列;
基于所述第一等差数列中包含的所述N个数值,确定所述量化参数。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
基于所述待量化数据包括的多个数值的分布离散度,确定所述第L层的第一量化处理对应的比特数M。
5.根据权利要求1至4任一项所述的方法,其特征在于,在所述基于所述量化最大值和所述量化最小值,确定所述第L层的第一量化处理对应的量化参数之后,所述方法还包括:
获得利用所述神经网络模型对第一图像进行预测处理的过程中,所述第L层的激活数据;
基于所述量化参数对所述激活数据进行所述第一量化处理,得到所述第L层的处理结果。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述基于所述量化最大值和所述量化最小值,确定所述第L层的第一量化处理对应的量化参数之后,所述方法还包括:
将第一运算参数转换为定点数,得到第二运算参数;所述第一运算参数为执行第一运算处理所需的参数,所述第一运算参数包括所述量化参数,所述第一运算处理是通过合并包括所述第L层在内的至少一个网络层执行的网络模型处理和所述第一量化处理得到的;
基于所述第二运算参数,对所述至少一个网络层的输入数据执行所述第一运算处理,得到所述至少一个网络层的处理结果。
7.根据权利要求6所述的方法,其特征在于,所述将第一运算参数转换为定点数,得到第二运算参数,包括:
将所述第一运算参数中包括的每个浮点数扩大K倍,得到扩大数值,所述K为大于1的整数;
将所述扩大数值转换为定点数,得到所述第二运算参数。
8.根据权利要求6或7所述的方法,其特征在于,所述第一运算处理是通过合并包括所述第L层在内的至少两个相邻网络层执行的网络模型处理和所述第一量化处理得到的。
9.一种数据处理装置,其特征在于,包括:
聚类单元,用于对神经网络模型的第L层输出的待量化数据包括的多个数值进行聚类处理,得到聚类结果,所述L为大于0的整数;
确定单元,用于基于所述聚类结果,得到量化最大值和量化最小值;
所述确定单元,还用于基于所述量化最大值和所述量化最小值,确定所述第L层的第一量化处理对应的量化参数,其中,所述第一量化处理用于将所述第L层的激活数据中的数值量化为M比特表示的整数。
10.根据权利要求9所述的装置,其特征在于,
所述确定单元,具体用于将所述聚类结果中包括的至少两个聚类中心中的最大值作为所述量化最大值,并将所述至少两个聚类中心中的最小值作为所述量化最小值。
11.根据权利要求8或9所述的装置,其特征在于,
所述确定单元,具体用于以所述量化最小值为第一项且以所述量化最大值为最后一项,得到包括N个数值的第一等差数列;基于所述第一等差数列中包含的所述N个数值,确定所述量化参数。
12.根据权利要求9至11任一项所述的装置,其特征在于,
所述确定单元,还用于基于所述待量化数据包括的多个数值的分布离散度,确定所述第L层的第一量化处理对应的比特数M。
13.根据权利要求9至12任一项所述的装置,其特征在于,所述装置还包括:
第一处理单元,用于获得利用所述神经网络模型对第一图像进行预测处理的过程中,所述第L层的激活数据;
量化单元,用于基于所述量化参数对所述激活数据进行所述第一量化处理,得到所述第L层的处理结果。
14.根据权利要求9至12任一项所述的装置,其特征在于,所述装置还包括:
第一转换单元,用于将第一运算参数转换为定点数,得到第二运算参数;所述第一运算参数为执行第一运算处理所需的参数,所述第一运算参数包括所述量化参数,所述第一运算处理是通过合并包括所述第L层在内的至少一个网络层执行的网络模型处理和所述第一量化运算处理得到的;
第二处理单元,用于基于所述第二运算参数,对所述至少一个网络层的输入数据执行所述第一运算处理得到所述至少一个网络层的。
15.根据权利要求14所述的装置,其特征在于,
所述第一转换单元,具体用于将所述第一运算参数中包括的每个浮点数扩大K倍,得到扩大数值,所述K为大于1的整数;将所述扩大数值转换为定点数,得到所述第二运算参数。
16.根据权利要求14或15所述的装置,其特征在于,所述第一运算处理是通过合并包括所述第L层在内的至少两个相邻网络层执行的网络模型处理和所述第一量化处理得到的。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,使所述处理器执行权利要求1至8任意一项所述的方法。
18.一种电子设备,其特征在于,包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如权利要求1至8中任一项所述的方法。
19.一种芯片,其特征在于,包括:处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010068866.1A CN113222098A (zh) | 2020-01-21 | 2020-01-21 | 数据处理方法和相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010068866.1A CN113222098A (zh) | 2020-01-21 | 2020-01-21 | 数据处理方法和相关产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113222098A true CN113222098A (zh) | 2021-08-06 |
Family
ID=77085068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010068866.1A Pending CN113222098A (zh) | 2020-01-21 | 2020-01-21 | 数据处理方法和相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113222098A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113222097A (zh) * | 2020-01-21 | 2021-08-06 | 上海商汤智能科技有限公司 | 数据处理方法和相关产品 |
WO2023231794A1 (zh) * | 2022-05-30 | 2023-12-07 | 华为技术有限公司 | 一种神经网络参数量化方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109389219A (zh) * | 2017-08-04 | 2019-02-26 | 三星电子株式会社 | 用于对神经网络的参数进行量化的方法和装置 |
EP3474194A1 (en) * | 2017-10-19 | 2019-04-24 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network parameter quantization |
CN110222821A (zh) * | 2019-05-30 | 2019-09-10 | 浙江大学 | 基于权重分布的卷积神经网络低位宽量化方法 |
JP2019160319A (ja) * | 2018-03-09 | 2019-09-19 | キヤノン株式会社 | 多階層ニューラルネットワークモデルを最適化して適用する方法及び装置、及び記憶媒体 |
CN110443165A (zh) * | 2019-07-23 | 2019-11-12 | 北京迈格威科技有限公司 | 神经网络量化方法、图像识别方法、装置和计算机设备 |
US20190347550A1 (en) * | 2018-05-14 | 2019-11-14 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network parameter quantization |
CN110659725A (zh) * | 2019-09-20 | 2020-01-07 | 字节跳动有限公司 | 神经网络模型的压缩与加速方法、数据处理方法及装置 |
CN113222097A (zh) * | 2020-01-21 | 2021-08-06 | 上海商汤智能科技有限公司 | 数据处理方法和相关产品 |
-
2020
- 2020-01-21 CN CN202010068866.1A patent/CN113222098A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109389219A (zh) * | 2017-08-04 | 2019-02-26 | 三星电子株式会社 | 用于对神经网络的参数进行量化的方法和装置 |
EP3474194A1 (en) * | 2017-10-19 | 2019-04-24 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network parameter quantization |
US20190122100A1 (en) * | 2017-10-19 | 2019-04-25 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network parameter quantization |
JP2019160319A (ja) * | 2018-03-09 | 2019-09-19 | キヤノン株式会社 | 多階層ニューラルネットワークモデルを最適化して適用する方法及び装置、及び記憶媒体 |
US20190347550A1 (en) * | 2018-05-14 | 2019-11-14 | Samsung Electronics Co., Ltd. | Method and apparatus with neural network parameter quantization |
CN110222821A (zh) * | 2019-05-30 | 2019-09-10 | 浙江大学 | 基于权重分布的卷积神经网络低位宽量化方法 |
CN110443165A (zh) * | 2019-07-23 | 2019-11-12 | 北京迈格威科技有限公司 | 神经网络量化方法、图像识别方法、装置和计算机设备 |
CN110659725A (zh) * | 2019-09-20 | 2020-01-07 | 字节跳动有限公司 | 神经网络模型的压缩与加速方法、数据处理方法及装置 |
CN113222097A (zh) * | 2020-01-21 | 2021-08-06 | 上海商汤智能科技有限公司 | 数据处理方法和相关产品 |
Non-Patent Citations (2)
Title |
---|
NORBERT MITSCHKE ET AL: "A Fixed-Point Quantization Technique for Convolutional Neural Networks Based on Weight Scaling", 《 2019 IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING (ICIP)》, pages 3836 - 3840 * |
陈俊保 等: "卷积神经网络的定点化研究", 《信息技术》, vol. 42, no. 07, pages 94 - 96 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113222097A (zh) * | 2020-01-21 | 2021-08-06 | 上海商汤智能科技有限公司 | 数据处理方法和相关产品 |
WO2023231794A1 (zh) * | 2022-05-30 | 2023-12-07 | 华为技术有限公司 | 一种神经网络参数量化方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190164043A1 (en) | Low-power hardware acceleration method and system for convolution neural network computation | |
US10491239B1 (en) | Large-scale computations using an adaptive numerical format | |
CN110175641B (zh) | 图像识别方法、装置、设备和存储介质 | |
CN111401550A (zh) | 神经网络模型量化方法、装置及电子设备 | |
CN113132723B (zh) | 一种图像压缩方法及装置 | |
WO2023236365A1 (zh) | 数据处理方法、装置、ai芯片、电子设备及存储介质 | |
CN113222098A (zh) | 数据处理方法和相关产品 | |
CN111240746B (zh) | 一种浮点数据反量化及量化的方法和设备 | |
CN111176853A (zh) | 数据量化方法、装置、计算机设备和存储介质 | |
US20200302283A1 (en) | Mixed precision training of an artificial neural network | |
CN110874627A (zh) | 数据处理方法、数据处理装置及计算机可读介质 | |
CN113284001A (zh) | 用电量预测方法、装置、计算机设备和存储介质 | |
US10769517B2 (en) | Neural network analysis | |
Bajaj et al. | Reduction of memory footprint and computation time for embedded Support Vector Machine (SVM) by kernel expansion and consolidation | |
CN113222097A (zh) | 数据处理方法和相关产品 | |
CN113298224A (zh) | 神经网络模型的重训练方法和相关产品 | |
US11036980B2 (en) | Information processing method and information processing system | |
US20200242467A1 (en) | Calculation method and calculation device for sparse neural network, electronic device, computer readable storage medium, and computer program product | |
CN113554097B (zh) | 模型量化方法、装置、电子设备和存储介质 | |
CN111614358B (zh) | 基于分通道量化的特征提取方法、系统、设备及存储介质 | |
CN111444319B (zh) | 文本匹配方法、装置和电子设备 | |
CN113554149A (zh) | 神经网络处理单元npu、神经网络的处理方法及其装置 | |
CN113159297A (zh) | 一种神经网络压缩方法、装置、计算机设备及存储介质 | |
CN115705486A (zh) | 量化模型的训练方法、装置、电子设备和可读存储介质 | |
CN113052290A (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 |