CN108596328A - 一种定点化方法及装置、计算机设备 - Google Patents
一种定点化方法及装置、计算机设备 Download PDFInfo
- Publication number
- CN108596328A CN108596328A CN201810388209.8A CN201810388209A CN108596328A CN 108596328 A CN108596328 A CN 108596328A CN 201810388209 A CN201810388209 A CN 201810388209A CN 108596328 A CN108596328 A CN 108596328A
- Authority
- CN
- China
- Prior art keywords
- data
- fixed point
- acquisition system
- parameter
- data acquisition
- 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.)
- Granted
Links
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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种定点化方法及装置、计算机程序产品、计算机设备,所述方法包括:获取神经网络中的第一网络层的第一数据集合;从所述第一数据集合中选择出第一目标数据,并基于所述第一目标数据确定第一定点化参数,所述第一定点化参数表示第一位宽;基于所述第一定点化参数和第二定点化参数,确定定点化数据范围,所述第二定点化参数表示第二位宽;在所述定点化数据范围中,确定所述第一数据集合中的各个数据对应的定点化数据,从而完成对所述第一数据集合的定点化处理。
Description
技术领域
本发明涉及神经网络技术领域,尤其涉及一种神经网络中的定点化方法及装置、计算机程序产品、计算机设备。
背景技术
目标检测是自动驾驶系统的重要组成部分,自动驾驶系统可以实现对机动车、行人、非机动车等目标进行检测。然而,原始的神经网络由于参数量大,精度高等原因,导致运行速度缓慢且处理器功耗较大,所以无法在自动驾驶系统中进行使用。模型压缩是计算机视觉领域最基本的问题之一,定点化是深度神经网络中模型压缩的一种重要方式,一直以来被投入大量的研究。模型压缩的目标是使网络在少量效果损失下,能够快速的被硬件运行计算。定点化的方式是使用尽量少的存储位来表示在计算模型运行中参与运算的数值。但由于网络参数的多样性,定点化是一种复杂且充满挑战的问题。
对于检测任务的基于区域的全卷积网络(R-FCN,Region-based FullyConvolutional Networks)框架,卷积层用来计算输入图像的特征图,在特征图上进行区域选择,并基于特征计算结果对所选择的区域进行微调,得到最后的定位选框。在机动车行人与非机动检测系统中,卷积神经网络占用绝大部分计算资源以及耗时,高精度计算带来更加精确的计算结果,但是往往造成更大的时间与空间消耗。其中,对于需要检测的模型,往往具有较深的网络层,每个网络层均有独一无二的数据分布与计算,每一网络层的量化参数都是多样的。然而很多现有的在目标检测中的定点化部分,需要对每一网络层的网络参数进行调整,往往带来巨大的工作量,效率低下。
发明内容
为解决上述技术问题,本发明实施例提供了一种定点化方法及装置、计算机程序产品、计算机设备。
本发明实施例提供的定点化方法,包括:
获取神经网络中的第一网络层的第一数据集合;
从所述第一数据集合中选择出第一目标数据,并基于所述第一目标数据确定第一定点化参数,所述第一定点化参数表示第一位宽;
基于所述第一定点化参数和第二定点化参数,确定定点化数据范围,所述第二定点化参数表示第二位宽;
在所述定点化数据范围中,确定所述第一数据集合中的各个数据对应的定点化数据,从而完成对所述第一数据集合的定点化处理。
本发明实施例中,所述第一数据集合包括所述第一网络层的多个权重参数或多个偏置参数;
所述从所述第一数据集合中选择出第一目标数据,并基于所述第一目标数据确定第一定点化参数,包括:
确定所述第一数据集合中的各个数据的绝对值,得到第二数据集合;
从所述第二数据集合中选择第一目标数据,并基于所述第一目标数据确定所述第一定点化参数,其中,所述第一目标数据为所述第二数据集合中的最大数据。
本发明实施例中,所述基于所述第一目标数据确定第一定点化参数,包括:
基于所述第一目标数据和所述第二定点化参数确定所述第一定点化参数。
本发明实施例中,所述第一数据集合包括所述第一网络层的多个输入数据或多个输出数据;
所述从所述第一数据集合中选择出第一目标数据,并基于所述第一目标数据确定第一定点化参数,包括:
确定所述第一数据集合中的各个数据的绝对值,得到第二数据集合;
对所述第二数据集合中的数据从小到大进行排序,得到第一数列;
确定所述第一数列中第i个数据对应的前缀和,如果所述第i个数据对应的前缀和大于等于第一阈值,则将所述第i个数据作为所述第一目标数据,并基于所述第一目标数据确定第一定点化参数;
其中,所述i为大于等于1且小于等于所述第一数列的个数的整数,所述第i个数据对应的前缀和是指所述第一数列中所述第i个数据与所述第i个数据之前的全部数据之和。
本发明实施例中,所述方法还包括:
基于所述第一数列中全部数据之和,以及第一系数,确定所述第一阈值。
本发明实施例中,所述基于所述第一目标数据确定第一定点化参数,包括:
基于所述第一目标数据和所述第二定点化参数确定所述第一定点化参数。
本发明实施例中,所述基于所述第一定点化参数和第二定点化参数,确定定点化数据范围,包括:
基于所述第一定点化参数和第二定点化参数,确定位于第一数值和第二数值之间的第二数列,所述第二数列中相邻两个数据之差基于所述第一定点化参数确定。
本发明实施例中,所述在所述定点化数据范围中,确定所述第一数据集合中的各个数据对应的定点化数据,包括:
确定所述第一数据集合中的各个数据在所述第二数列中对应的数据,作为定点化数据。
本发明实施例中,所述第一网络层为所述神经网络中的任意一个网络层,所述网络层为输入层、或隐层、或输出层。
本发明实施例提供的定点化装置,包括:
获取单元,用于获取神经网络中的第一网络层的第一数据集合;
选择单元,用于从所述第一数据集合中选择出第一目标数据,并基于所述第一目标数据确定第一定点化参数,所述第一定点化参数表示第一位宽;
第一确定单元,用于基于所述第一定点化参数和第二定点化参数,确定定点化数据范围,所述第二定点化参数表示第二位宽;
第二确定单元,用于在所述定点化数据范围中,确定所述第一数据集合中的各个数据对应的定点化数据,从而完成对所述第一数据集合的定点化处理。
本发明实施例中,所述第一数据集合包括所述第一网络层的多个权重参数或多个偏置参数;
所述选择单元,用于确定所述第一数据集合中的各个数据的绝对值,得到第二数据集合;从所述第二数据集合中选择第一目标数据,并基于所述第一目标数据确定所述第一定点化参数,其中,所述第一目标数据为所述第二数据集合中的最大数据。
本发明实施例中,所述选择单元,用于基于所述第一目标数据和所述第二定点化参数确定所述第一定点化参数。
本发明实施例中,所述第一数据集合包括所述第一网络层的多个输入数据或多个输出数据;
所述选择单元,用于确定所述第一数据集合中的各个数据的绝对值,得到第二数据集合;对所述第二数据集合中的数据从小到大进行排序,得到第一数列;确定所述第一数列中第i个数据对应的前缀和,如果所述第i个数据对应的前缀和大于等于第一阈值,则将所述第i个数据作为所述第一目标数据,并基于所述第一目标数据确定第一定点化参数;
其中,所述i为大于等于1且小于等于所述第一数列的个数的整数,所述第i个数据对应的前缀和是指所述第一数列中所述第i个数据与所述第i个数据之前的全部数据之和。
本发明实施例中,所述选择单元,还用于基于所述第一数列中全部数据之和,以及第一系数,确定所述第一阈值。
本发明实施例中,所述选择单元,用于基于所述第一目标数据和所述第二定点化参数确定所述第一定点化参数。
本发明实施例中,所述第一确定单元,用于基于所述第一定点化参数和第二定点化参数,确定位于第一数值和第二数值之间的第二数列,所述第二数列中相邻两个数据之差基于所述第一定点化参数确定。
本发明实施例中,所述第二确定单元,用于确定所述第一数据集合中的各个数据在所述第二数列中对应的数据,作为定点化数据。
本发明实施例中,所述第一网络层为所述神经网络中的任意一个网络层,所述网络层为输入层、或隐层、或输出层。
本发明实施例提供的计算机程序产品上存储有计算机可执行指令,该计算机可执行指令被执行后,能够实现上述的定点化方法。
本发明实施例提供的计算机设备包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时可实现上述的定点化方法。
本发明实施例的技术方案中,获取神经网络中的第一网络层的第一数据集合;从所述第一数据集合中选择出第一目标数据,并基于所述第一目标数据确定第一定点化参数,所述第一定点化参数表示第一位宽;基于所述第一定点化参数和第二定点化参数,确定定点化数据范围,所述第二定点化参数表示第二位宽;在所述定点化数据范围中,确定所述第一数据集合中的各个数据对应的定点化数据,从而完成对所述第一数据集合的定点化处理。采用本发明实施例的技术方案,保障了卷积神经网络的每一网络层的定点化精度,能够显著降低存储网络数据需要的空间,提高了网络参数传输的速度,提高了网络参数和数据的计算速度。
附图说明
图1为本发明实施例的定点化方法的流程示意图;
图2为本发明实施例的定点化装置的结构组成示意图;
图3为本发明实施例的计算机设备的结构组成示意图。
具体实施方式
为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。
未经定点化的神经网络,采用单精度浮点(float)、双精度浮点(double)等浮点类型对数据进行存储和计算。在计算机平台和网络框架中,数据通过32比特或者64比特进行存储和计算。定点化的目标是将数据用较少的比特,如4比特或者8比特进行表示,通过降低数据的精度来提高模型的处理效率。
在卷积神经网络中,卷积运算是比较重要的一种运算,实现卷积运算的网络层称为卷积层。卷积层中的基本运算为wx+b,其中,w是权重,x是输入数据,b是偏置,卷积层由这样的基本运算组成。
本发明实施例的技术方案,对于神经网络中某个网络层(以下以第一网络层为例)的某类数据而言(例如权重参数、或偏置参数、或输入数据、或输出数据),根据这类数据的分布,从高位到低位的优先顺序保证这类数据所需的位数,然后,为该网络层配置针对这类数据的定点化参数,从而通过定点化参数实现对这类数据的定点化。
图1为本发明实施例的定点化方法的流程示意图,如图1所示,所述定点化方法包括以下步骤:
步骤101:获取神经网络中的第一网络层的第一数据集合。
本发明实施例中的神经网络可以是卷积神经网络,所述第一网络层为所述神经网络中的任意一个网络层,所述网络层为输入层、或隐层、或输出层。例如:卷积神经网络包括输入层、卷积层1、卷积层2、卷积层3、输出层,其中,卷积层1、卷积层2以及卷积层3均为隐层,卷积层1的输入数据由输入层输入,卷积层1的输出数据作为卷积层2的输入数据,卷积层2的输出数据作为卷积层3的输入数据,卷积层3的输出数据作为输出层的输入数据,输出层的输出数据为最终的训练结果或测试结果。
步骤102:从所述第一数据集合中选择出第一目标数据,并基于所述第一目标数据确定第一定点化参数,所述第一定点化参数表示第一位宽。
在一实施方式中,所述第一数据集合包括所述第一网络层的多个权重参数、或多个偏置参数、或多个输入数据、或多个输出数据。
以下对不同类型的第一数据集合如何确定其第一定点化参数进行描述。
1)所述第一数据集合包括所述第一网络层的多个权重参数。
确定所述第一数据集合中的各个数据的绝对值,得到第二数据集合;从所述第二数据集合中选择第一目标数据,并基于所述第一目标数据确定所述第一定点化参数,其中,所述第一目标数据为所述第二数据集合中的最大数据。在一实施方式中,基于所述第一目标数据和所述第二定点化参数确定所述第一定点化参数。
在一示例中,对神经网络进行训练,得到已经训练好的网络参数(例如各网络层的权重参数和偏置参数),已经训练好的网络参数存储在模型文件中,可以在该模型文件中读取已经训练好的权重参数。对于某个网络层(如第一网络层)的权重参数(对应第一数据集合),将所有的权重参数取绝对值(对应第二数据集合),在所有的绝对值中取最大值作为所述第一目标数据,假设第二数据集合为{a1,a2,...,an},第一目标数为amax=maxiai,其中i=1,2,...,n。根据公式计算第一定点化参数fl,其中,bw为第二定点化参数,第一定点化参数代表定点化参数的浮点数的位宽,第二定点化参数代表定点化参数的总位宽,应理解,位宽的意思是比特的长度。这里,定点化参数的总位宽是指定点数据(定点化处理后的数据)的二进制表示的总位宽,一般,定点数据的总位宽包括:符号位宽(如通过1比特表示正号或负号)、阶码位宽、尾数位宽,其中,阶码位宽指明小数点在定点数据中的位置,决定了定点数据的表示范围,尾数位宽给出了定点数据的有效数字的位数,决定了定点数据的精度。定点化参数的浮点数的位宽即是尾数位宽,用于表示定点化数据的小数部分的精度。
权重参数的定点化是通过对某一网络层的各个权重参数进行遍历,对所有权重参数的分布范围,依据高位到低位的优先保证原则,对定点化参数进行确定。
2)所述第一数据集合包括所述第一网络层的多个偏置参数。
在卷积神经网络中,偏置参数的数据量极少,偏置参数所参与的运算的次数也极少,所以偏置参数可以不需要定点化。在自动驾驶系统中,可以采用浮点数对偏置参数进行表示,也可以采用较高精度的定点化方式对偏置参数进行定点化,也可以采用同权重参数一样的方法对偏置参数进行定点化。具体所采用的偏置参数的定点化方法,可以根据实际项目和模型的运行效率以及效果的需求进行设计。
在一实施方式中,偏置参数可以采用与权重参数相同的定点化方式,具体地,确定所述第一数据集合中的各个数据的绝对值,得到第二数据集合;从所述第二数据集合中选择第一目标数据,并基于所述第一目标数据确定所述第一定点化参数,其中,所述第一目标数据为所述第二数据集合中的最大数据。在一实施方式中,基于所述第一目标数据和所述第二定点化参数确定所述第一定点化参数。
在一示例中,对神经网络进行训练,得到已经训练好的网络参数(例如各网络层的权重参数和偏置参数),已经训练好的网络参数存储在模型文件中,可以在该模型文件中读取已经训练好的偏置参数。对于某个网络层(如第一网络层)的偏置参数(对应第一数据集合),将所有的偏置参数取绝对值(对应第二数据集合),在所有的绝对值中取最大值作为所述第一目标数据,假设第二数据集合为{a1,a2,...,an},第一目标数为amax=maxiai,其中i=1,2,...,n。根据公式计算第一定点化参数fl,其中,bw为第二定点化参数,第一定点化参数代表定点化参数的浮点数的位宽,第二定点化参数代表定点化参数的总位宽,应理解,位宽的意思是比特的长度。
3)所述第一数据集合包括所述第一网络层的多个输入数据。
确定所述第一数据集合中的各个数据的绝对值,得到第二数据集合;对所述第二数据集合中的数据从小到大进行排序,得到第一数列;确定所述第一数列中第i个数据对应的前缀和,如果所述第i个数据对应的前缀和大于等于第一阈值,则将所述第i个数据作为所述第一目标数据,并基于所述第一目标数据确定第一定点化参数;其中,所述i为大于等于1且小于等于所述第一数列的个数的整数,所述第i个数据对应的前缀和是指所述第一数列中所述第i个数据与所述第i个数据之前的全部数据之和。在一实施方式中,基于所述第一数列中全部数据之和,以及第一系数,确定所述第一阈值。在一实施方式中,基于所述第一目标数据和所述第二定点化参数确定所述第一定点化参数。这里,第一系数可以根据实际项目和模型的运行效率以及效果的需求进行设计。
在一示例中,所述第一数列中全部数据之和通过sum表示,第一系数通过y表示,则所述第一阈值为sum*y。具体地,1)随机选取一定数量的图片作为神经网络的输入;2)获取神经网络中某个网络层的输入数据;3)对输入数据取绝对值,将所有的绝对值由小到大进行排序,得到数列A,假设数列A为{a1,a2,...,an},根据公式计算ai对应的前缀和(i=1,2,...,n),当Si≥sum*y时,停止计算,将当前的ai作为所述第一目标数据,这里也记作amax。其中,y可以根据实际项目和模型的运行效率以及效果的需求进行设计,例如y=0.99。最后,根据公式计算第一定点化参数fl,其中,bw为第二定点化参数,第一定点化参数代表定点化参数的浮点数的位宽,第二定点化参数代表定点化参数的总位宽,应理解,位宽的意思是比特的长度。此处将fl相对于权重参数的计算减1,是考虑到计算的样本如果数量较少会导致不充分的情况。
输入数据的定点化,是通过配置激活阈值(也即y)确定定点化参数。依据高位到低位的优先保证原则,对定点化参数进行确定。利用激活阈值可以极大表示数据分布也可以忽略严重脱离大部分数据分布的部分数据,有效保证训练效果或测试效果。
4)所述第一数据集合包括所述第一网络层的多个输出数据。
确定所述第一数据集合中的各个数据的绝对值,得到第二数据集合;对所述第二数据集合中的数据从小到大进行排序,得到第一数列;确定所述第一数列中第i个数据对应的前缀和,如果所述第i个数据对应的前缀和大于等于第一阈值,则将所述第i个数据作为所述第一目标数据,并基于所述第一目标数据确定第一定点化参数;其中,所述i为大于等于1且小于等于所述第一数列的个数的整数,所述第i个数据对应的前缀和是指所述第一数列中所述第i个数据与所述第i个数据之前的全部数据之和。在一实施方式中,基于所述第一数列中全部数据之和,以及第一系数,确定所述第一阈值。在一实施方式中,基于所述第一目标数据和所述第二定点化参数确定所述第一定点化参数。
对于输出数据的定点化与输入数据同理,此处不再赘述。
步骤103:基于所述第一定点化参数和第二定点化参数,确定定点化数据范围,所述第二定点化参数表示第二位宽。
本发明实施例中,基于所述第一定点化参数和第二定点化参数,确定位于第一数值和第二数值之间的第二数列,所述第二数列中相邻两个数据之差基于所述第一定点化参数确定。
在一示例中,第一数值为-1*2bw-1*2-1*fl,第二数值为2bw-1*2-1*fl,其中,fl为第一定点化参数,bw为第二定点化参数,第一定点化参数代表定点化参数的浮点数的位宽,第二定点化参数代表定点化参数的总位宽。定点化数据范围为[-1*2bw-1*2-1*fl,2bw-1*2-1*fl],这个数据范围中的数据分布为一个由bw和fl所表示的等差数列,2-1*fl也可以表示为等差数列的差。
步骤104:在所述定点化数据范围中,确定所述第一数据集合中的各个数据对应的定点化数据,从而完成对所述第一数据集合的定点化处理。
本发明实施例中,确定所述第一数据集合中的各个数据在所述第二数列中对应的数据,作为定点化数据。
在一示例中,将第一数据集合中的数据都量化为上述第二数列中的数据。具体实现时,可以采用向下取数、或者四舍五入、或者向上取数的方法,量化为第二数列中的相应数据,具体采用的取数方式,可以根据实际项目和模型的运行效率以及效果的需求进行配置。
值得注意的是,采用本发明实施例的方法可以对神经网络中的每个网络层分别进行处理,每个网络层对应不同的定点化参数(如第一定点化参数和第二定点化参数),从而每个网络层可以进行灵活的定点化处理。本发明实施例的技术方案,通过自动化的定点化方式,大大降低了人为在定点化项目中的参与,有效降低了人力成本,提高了定点化项目的效率。与此同时,降低了人为参与每个网络层的参数调整,带来的对其他网络层的影响的干扰。
本发明实施例的技术方案,通过定点化的方式对网络进行压缩,可以提高运行速度、节省处理器的功耗,这种定点化方法可以应用于各种类型的视觉任务中,如分割任务、分类任务等,只要涉及深度学习的任务均可使用本发明实施例的定点化方法。
图2为本发明实施例的定点化装置的结构组成示意图,如图2所示,所述定点化装置包括:
获取单元201,用于获取神经网络中的第一网络层的第一数据集合;
选择单元202,用于从所述第一数据集合中选择出第一目标数据,并基于所述第一目标数据确定第一定点化参数,所述第一定点化参数表示第一位宽;
第一确定单元203,用于基于所述第一定点化参数和第二定点化参数,确定定点化数据范围,所述第二定点化参数表示第二位宽;
第二确定单元204,用于在所述定点化数据范围中,确定所述第一数据集合中的各个数据对应的定点化数据,从而完成对所述第一数据集合的定点化处理。
在一实施方式中,所述第一数据集合包括所述第一网络层的多个权重参数或多个偏置参数;
所述选择单元202,用于确定所述第一数据集合中的各个数据的绝对值,得到第二数据集合;从所述第二数据集合中选择第一目标数据,并基于所述第一目标数据确定所述第一定点化参数,其中,所述第一目标数据为所述第二数据集合中的最大数据。
在一实施方式中,所述选择单元202,用于基于所述第一目标数据和所述第二定点化参数确定所述第一定点化参数。
在一实施方式中,所述第一数据集合包括所述第一网络层的多个输入数据或多个输出数据;
所述选择单元202,用于确定所述第一数据集合中的各个数据的绝对值,得到第二数据集合;对所述第二数据集合中的数据从小到大进行排序,得到第一数列;确定所述第一数列中第i个数据对应的前缀和,如果所述第i个数据对应的前缀和大于等于第一阈值,则将所述第i个数据作为所述第一目标数据,并基于所述第一目标数据确定第一定点化参数;
其中,所述i为大于等于1且小于等于所述第一数列的个数的整数,所述第i个数据对应的前缀和是指所述第一数列中所述第i个数据与所述第i个数据之前的全部数据之和。
在一实施方式中,所述选择单元202,还用于基于所述第一数列中全部数据之和,以及第一系数,确定所述第一阈值。
在一实施方式中,所述选择单元202,用于基于所述第一目标数据和所述第二定点化参数确定所述第一定点化参数。
在一实施方式中,所述第一确定单元203,用于基于所述第一定点化参数和第二定点化参数,确定位于第一数值和第二数值之间的第二数列,所述第二数列中相邻两个数据之差基于所述第一定点化参数确定。
在一实施方式中,所述第二确定单元204,用于确定所述第一数据集合中的各个数据在所述第二数列中对应的数据,作为定点化数据。
在一实施方式中,所述第一网络层为所述神经网络中的任意一个网络层,所述网络层为输入层、或隐层、或输出层。
本领域技术人员应当理解,图2所示的定点化装置中的各单元的实现功能可参照前述定点化方法的相关描述而理解。图2所示的定点化装置中的各单元的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。
本发明实施例上述定点化装置如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。
相应地,本发明实施例还提供一种计算机程序产品,其中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本发明实施例的上述定点化方法。
图3为本发明实施例的计算机设备的结构组成示意图,如图3所示,计算机设备100可以包括一个或多个(图中仅示出一个)处理器1002(处理器1002可以包括但不限于微处理器(MCU,Micro Controller Unit)或可编程逻辑器件(FPGA,Field Programmable GateArray)等的处理装置)、用于存储数据的存储器1004、以及用于通信功能的传输装置1006。本领域普通技术人员可以理解,图3所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机设备100还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。
存储器1004可用于存储应用软件的软件程序以及模块,如本发明实施例中的方法对应的程序指令/模块,处理器1002通过运行存储在存储器1004内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器1004可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1004可进一步包括相对于处理器1002远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备100。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置1006用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机设备100的通信供应商提供的无线网络。在一个实例中,传输装置1006包括一个网络适配器(NIC,Network Interface Controller),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置1006可以为射频(RF,Radio Frequency)模块,其用于通过无线方式与互联网进行通讯。
本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
在本发明所提供的几个实施例中,应该理解到,所揭露的方法和智能设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个第二处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种定点化方法,其特征在于,所述方法包括:
获取神经网络中的第一网络层的第一数据集合;
从所述第一数据集合中选择出第一目标数据,并基于所述第一目标数据确定第一定点化参数,所述第一定点化参数表示第一位宽;
基于所述第一定点化参数和第二定点化参数,确定定点化数据范围,所述第二定点化参数表示第二位宽;
在所述定点化数据范围中,确定所述第一数据集合中的各个数据对应的定点化数据,从而完成对所述第一数据集合的定点化处理。
2.根据权利要求1所述的方法,其特征在于,所述第一数据集合包括所述第一网络层的多个权重参数或多个偏置参数;
所述从所述第一数据集合中选择出第一目标数据,并基于所述第一目标数据确定第一定点化参数,包括:
确定所述第一数据集合中的各个数据的绝对值,得到第二数据集合;
从所述第二数据集合中选择第一目标数据,并基于所述第一目标数据确定所述第一定点化参数,其中,所述第一目标数据为所述第二数据集合中的最大数据。
3.根据权利要求1或2所述的方法,其特征在于,所述第一数据集合包括所述第一网络层的多个输入数据或多个输出数据;
所述从所述第一数据集合中选择出第一目标数据,并基于所述第一目标数据确定第一定点化参数,包括:
确定所述第一数据集合中的各个数据的绝对值,得到第二数据集合;
对所述第二数据集合中的数据从小到大进行排序,得到第一数列;
确定所述第一数列中第i个数据对应的前缀和,如果所述第i个数据对应的前缀和大于等于第一阈值,则将所述第i个数据作为所述第一目标数据,并基于所述第一目标数据确定第一定点化参数;
其中,所述i为大于等于1且小于等于所述第一数列的个数的整数,所述第i个数据对应的前缀和是指所述第一数列中所述第i个数据与所述第i个数据之前的全部数据之和。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述基于所述第一定点化参数和第二定点化参数,确定定点化数据范围,包括:
基于所述第一定点化参数和第二定点化参数,确定位于第一数值和第二数值之间的第二数列,所述第二数列中相邻两个数据之差基于所述第一定点化参数确定。
5.根据权利要求4所述的方法,其特征在于,所述在所述定点化数据范围中,确定所述第一数据集合中的各个数据对应的定点化数据,包括:
确定所述第一数据集合中的各个数据在所述第二数列中对应的数据,作为定点化数据。
6.一种定点化装置,其特征在于,所述装置包括:
获取单元,用于获取神经网络中的第一网络层的第一数据集合;
选择单元,用于从所述第一数据集合中选择出第一目标数据,并基于所述第一目标数据确定第一定点化参数,所述第一定点化参数表示第一位宽;
第一确定单元,用于基于所述第一定点化参数和第二定点化参数,确定定点化数据范围,所述第二定点化参数表示第二位宽;
第二确定单元,用于在所述定点化数据范围中,确定所述第一数据集合中的各个数据对应的定点化数据,从而完成对所述第一数据集合的定点化处理。
7.根据权利要求6所述的装置,其特征在于,所述第一数据集合包括所述第一网络层的多个权重参数或多个偏置参数;
所述选择单元,用于确定所述第一数据集合中的各个数据的绝对值,得到第二数据集合;从所述第二数据集合中选择第一目标数据,并基于所述第一目标数据确定所述第一定点化参数,其中,所述第一目标数据为所述第二数据集合中的最大数据。
8.根据权利要求6或7所述的装置,其特征在于,所述第一数据集合包括所述第一网络层的多个输入数据或多个输出数据;
所述选择单元,用于确定所述第一数据集合中的各个数据的绝对值,得到第二数据集合;对所述第二数据集合中的数据从小到大进行排序,得到第一数列;确定所述第一数列中第i个数据对应的前缀和,如果所述第i个数据对应的前缀和大于等于第一阈值,则将所述第i个数据作为所述第一目标数据,并基于所述第一目标数据确定第一定点化参数;
其中,所述i为大于等于1且小于等于所述第一数列的个数的整数,所述第i个数据对应的前缀和是指所述第一数列中所述第i个数据与所述第i个数据之前的全部数据之和。
9.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机可执行指令,该计算机可执行指令被执行后,能够实现权利要求1至5任一项所述的方法步骤。
10.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时可实现权利要求1至5任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810388209.8A CN108596328B (zh) | 2018-04-26 | 2018-04-26 | 一种定点化方法及装置、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810388209.8A CN108596328B (zh) | 2018-04-26 | 2018-04-26 | 一种定点化方法及装置、计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108596328A true CN108596328A (zh) | 2018-09-28 |
CN108596328B CN108596328B (zh) | 2021-02-02 |
Family
ID=63609886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810388209.8A Active CN108596328B (zh) | 2018-04-26 | 2018-04-26 | 一种定点化方法及装置、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108596328B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110070867A (zh) * | 2019-04-26 | 2019-07-30 | 珠海普林芯驰科技有限公司 | 语音指令识别方法、计算机装置及计算机可读存储介质 |
CN110109646A (zh) * | 2019-03-28 | 2019-08-09 | 北京迈格威科技有限公司 | 数据处理方法、装置和乘加器及存储介质 |
CN111210017A (zh) * | 2019-12-24 | 2020-05-29 | 北京迈格威科技有限公司 | 确定布局顺序及数据处理的方法、装置、设备及存储介质 |
CN112085193A (zh) * | 2019-06-12 | 2020-12-15 | 上海寒武纪信息科技有限公司 | 一种神经网络的量化参数确定方法及相关产品 |
WO2021044241A1 (en) * | 2019-09-03 | 2021-03-11 | International Business Machines Corporation | Deep neural network on field-programmable gate array |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110060781A1 (en) * | 2009-09-08 | 2011-03-10 | Shigeaki Iwasa | Systems and Methods for Performing Fixed-Point Fractional Multiplication Operations in a SIMD Processor |
CN102622207A (zh) * | 2011-01-30 | 2012-08-01 | 中兴通讯股份有限公司 | 定点化处理方法及装置 |
CN104461459A (zh) * | 2013-09-23 | 2015-03-25 | 富士通株式会社 | 定点化处理方法及其装置 |
CN105760933A (zh) * | 2016-02-18 | 2016-07-13 | 清华大学 | 卷积神经网络的逐层变精度定点化方法及装置 |
WO2016182672A1 (en) * | 2015-05-08 | 2016-11-17 | Qualcomm Incorporated | Reduced computational complexity for fixed point neural network |
WO2017053277A1 (en) * | 2015-09-21 | 2017-03-30 | Qualcomm Incorporated | Fixed point implementation of range adjustment of components in video coding |
CN106897734A (zh) * | 2017-01-12 | 2017-06-27 | 南京大学 | 基于深度卷积神经网络的层内非均匀的k平均聚类定点量化方法 |
CN107204954A (zh) * | 2016-03-16 | 2017-09-26 | 中国科学院上海高等研究院 | 一种定点化软信息的优化方法及系统 |
CN107239826A (zh) * | 2017-06-06 | 2017-10-10 | 上海兆芯集成电路有限公司 | 在卷积神经网络中的计算方法及装置 |
CN107644254A (zh) * | 2017-09-09 | 2018-01-30 | 复旦大学 | 一种卷积神经网络权重参数量化训练方法及系统 |
CN107688849A (zh) * | 2017-07-28 | 2018-02-13 | 北京深鉴科技有限公司 | 一种动态策略定点化训练方法及装置 |
CN107766939A (zh) * | 2017-11-07 | 2018-03-06 | 维沃移动通信有限公司 | 一种数据处理方法、装置及移动终端 |
CN108701250A (zh) * | 2017-10-16 | 2018-10-23 | 深圳市大疆创新科技有限公司 | 数据定点化方法和装置 |
-
2018
- 2018-04-26 CN CN201810388209.8A patent/CN108596328B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110060781A1 (en) * | 2009-09-08 | 2011-03-10 | Shigeaki Iwasa | Systems and Methods for Performing Fixed-Point Fractional Multiplication Operations in a SIMD Processor |
CN102622207A (zh) * | 2011-01-30 | 2012-08-01 | 中兴通讯股份有限公司 | 定点化处理方法及装置 |
CN104461459A (zh) * | 2013-09-23 | 2015-03-25 | 富士通株式会社 | 定点化处理方法及其装置 |
WO2016182672A1 (en) * | 2015-05-08 | 2016-11-17 | Qualcomm Incorporated | Reduced computational complexity for fixed point neural network |
WO2017053277A1 (en) * | 2015-09-21 | 2017-03-30 | Qualcomm Incorporated | Fixed point implementation of range adjustment of components in video coding |
CN105760933A (zh) * | 2016-02-18 | 2016-07-13 | 清华大学 | 卷积神经网络的逐层变精度定点化方法及装置 |
CN107204954A (zh) * | 2016-03-16 | 2017-09-26 | 中国科学院上海高等研究院 | 一种定点化软信息的优化方法及系统 |
CN106897734A (zh) * | 2017-01-12 | 2017-06-27 | 南京大学 | 基于深度卷积神经网络的层内非均匀的k平均聚类定点量化方法 |
CN107239826A (zh) * | 2017-06-06 | 2017-10-10 | 上海兆芯集成电路有限公司 | 在卷积神经网络中的计算方法及装置 |
CN107688849A (zh) * | 2017-07-28 | 2018-02-13 | 北京深鉴科技有限公司 | 一种动态策略定点化训练方法及装置 |
CN107644254A (zh) * | 2017-09-09 | 2018-01-30 | 复旦大学 | 一种卷积神经网络权重参数量化训练方法及系统 |
CN108701250A (zh) * | 2017-10-16 | 2018-10-23 | 深圳市大疆创新科技有限公司 | 数据定点化方法和装置 |
CN107766939A (zh) * | 2017-11-07 | 2018-03-06 | 维沃移动通信有限公司 | 一种数据处理方法、装置及移动终端 |
Non-Patent Citations (5)
Title |
---|
AGRAWAL, A 等: "INVITED: Accelerator Design for Deep Learning Training", 《PROCEEDINGS OF THE 2017 54TH ACM/EDAC/IEEE DESIGN AUTOMATION CONFERENCE (DAC)》 * |
SAJID ANWAR 等: "FIXED POINT OPTIMIZATION OF DEEP CONVOLUTIONAL NEURAL NETWORKS FOR OBJECT RECOGNITION", 《ICASSP》 * |
张启荣: "基于仿射算术的位宽优化方法研究", 《中国优秀硕士学位论文全文数据库-信息科技辑》 * |
张林生: "数字信号处理系统的定点化技术研究", 《中国博士学位论文全文数据库-信息科技辑》 * |
裴晓芳 等: "基于 FPGA 的快速图像纹理特征提取方法的研究", 《电子测量与仪器学报》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110109646A (zh) * | 2019-03-28 | 2019-08-09 | 北京迈格威科技有限公司 | 数据处理方法、装置和乘加器及存储介质 |
CN110109646B (zh) * | 2019-03-28 | 2021-08-27 | 北京迈格威科技有限公司 | 数据处理方法、装置和乘加器及存储介质 |
CN110070867A (zh) * | 2019-04-26 | 2019-07-30 | 珠海普林芯驰科技有限公司 | 语音指令识别方法、计算机装置及计算机可读存储介质 |
CN112085193A (zh) * | 2019-06-12 | 2020-12-15 | 上海寒武纪信息科技有限公司 | 一种神经网络的量化参数确定方法及相关产品 |
CN112085193B (zh) * | 2019-06-12 | 2024-03-29 | 上海寒武纪信息科技有限公司 | 一种神经网络的量化参数确定方法及相关产品 |
WO2021044241A1 (en) * | 2019-09-03 | 2021-03-11 | International Business Machines Corporation | Deep neural network on field-programmable gate array |
US11907828B2 (en) | 2019-09-03 | 2024-02-20 | International Business Machines Corporation | Deep neural network on field-programmable gate array |
CN111210017A (zh) * | 2019-12-24 | 2020-05-29 | 北京迈格威科技有限公司 | 确定布局顺序及数据处理的方法、装置、设备及存储介质 |
CN111210017B (zh) * | 2019-12-24 | 2023-09-26 | 北京迈格威科技有限公司 | 确定布局顺序及数据处理的方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108596328B (zh) | 2021-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108596328A (zh) | 一种定点化方法及装置、计算机设备 | |
CN110689109B (zh) | 神经网络方法和装置 | |
CN112183713A (zh) | 神经网络装置和操作神经网络的方法 | |
CN111401516B (zh) | 一种神经网络通道参数的搜索方法及相关设备 | |
CN110610237A (zh) | 模型的量化训练方法、装置及存储介质 | |
CN111950723B (zh) | 神经网络模型训练方法、图像处理方法、装置及终端设备 | |
CN109816009A (zh) | 基于图卷积的多标签图像分类方法、装置及设备 | |
CN107977665A (zh) | 一种发票中关键信息的识别方法及计算设备 | |
CN110717585B (zh) | 神经网络模型的训练方法、数据处理方法和相关产品 | |
CN110956202B (zh) | 基于分布式学习的图像训练方法、系统、介质及智能设备 | |
CN106855952B (zh) | 基于神经网络的计算方法及装置 | |
TW202119293A (zh) | 對人工神經網路進行量化的方法及系統以及人工神經網路設備 | |
CN105139282B (zh) | 一种电网指标数据处理方法、装置以及计算设备 | |
CN109902716A (zh) | 一种对齐分类模型的训练方法和图像分类方法 | |
CN107909016A (zh) | 一种卷积神经网络生成方法及车系识别方法 | |
US20200184245A1 (en) | Improper neural network input detection and handling | |
CN107886516A (zh) | 一种计算人像中发丝走向的方法及计算设备 | |
CN110020616B (zh) | 一种目标识别方法及设备 | |
US11704543B2 (en) | Neural network hardware acceleration with stochastic adaptive resource allocation | |
CN110647974A (zh) | 深度神经网络中的网络层运算方法及装置 | |
CN108875924A (zh) | 基于神经网络的数据处理方法、装置、系统及存储介质 | |
CN107402905B (zh) | 基于神经网络的计算方法及装置 | |
WO2018175164A1 (en) | Resource-efficient machine learning | |
CN112819157A (zh) | 神经网络训练的方法及装置、智能行驶控制的方法及装置 | |
CN114677548A (zh) | 基于阻变存储器的神经网络图像分类系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |