CN108875921A - 神经网络参数定点化方法、装置、系统和计算机可读介质 - Google Patents

神经网络参数定点化方法、装置、系统和计算机可读介质 Download PDF

Info

Publication number
CN108875921A
CN108875921A CN201710657697.3A CN201710657697A CN108875921A CN 108875921 A CN108875921 A CN 108875921A CN 201710657697 A CN201710657697 A CN 201710657697A CN 108875921 A CN108875921 A CN 108875921A
Authority
CN
China
Prior art keywords
parameter
section
neural network
point
parameter sets
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
Application number
CN201710657697.3A
Other languages
English (en)
Inventor
周舒畅
何钦尧
郭嘉丞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Megvii Technology Co Ltd
Beijing Maigewei Technology Co Ltd
Original Assignee
Beijing Megvii Technology Co Ltd
Beijing Maigewei Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Megvii Technology Co Ltd, Beijing Maigewei Technology Co Ltd filed Critical Beijing Megvii Technology Co Ltd
Priority to CN201710657697.3A priority Critical patent/CN108875921A/zh
Publication of CN108875921A publication Critical patent/CN108875921A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供了一种神经网络参数定点化方法、装置、系统和计算机可读介质,所述方法包括:将神经网络的每一层的参数集合均等地划分到N个区间,其中N为大于等于2的整数;以及对所述N个区间对应的参数做定点处理以生成与每个区间对应的定点参数,并将所述定点参数更新至所述神经网络。根据本发明实施例的神经网络参数定点化方法、装置、系统和计算机可读介质通过对神经网络参数的分布进行均匀地分割,使得定点数的每个取值大致均衡,从而提高了有效位宽,能够大幅度提高神经网络的精度。

Description

神经网络参数定点化方法、装置、系统和计算机可读介质
技术领域
本发明涉及神经网络技术领域,更具体地涉及一种神经网络参数定点化方法、装置、系统和计算机可读介质。
背景技术
现有的神经网络的训练和预测过程都需要耗费大量的计算量,这限制了它在低功耗设备(如嵌入式设备、移动设备)上的应用。为了降低计算量和功耗,近年来一个常用的方法是,在神经网络的参数中使用低位宽的定点数来代替浮点数,这样可以使用快速的位操作来代替耗时的浮点计算。
在过去的方法中,通常需要将浮点数的参数均等地舍入到低位宽的定点数,这之中存在着舍入误差。此外,通常情况下,神经网络的参数大致呈钟形分布,且通常含有较大或较小的极端值。这通常导致了在可能的若干取值当中,参数大量集中于位于中间的取值区间内,而在其他的值上非常稀少,这样神经网络中的参数实际上只利用了非常少的可能取值,对于非常有限的位宽的利用不高效。
发明内容
为了解决上述问题提出了本发明。根据本发明一方面,提供了一种神经网络参数定点化方法,所述方法包括:将神经网络的每一层的参数集合均等地划分到N个区间,其中N为大于等于2的整数;以及对所述N个区间对应的参数做定点处理以生成与每个区间对应的定点参数,并将所述定点参数更新至所述神经网络。
在本发明的一个实施例中,所述将神经网络的每一层的参数集合均等地划分到N个区间包括:计算所述神经网络的每一层的参数集合的各分位数;基于所述各分位数确定将所述参数集合均等划分的N个区间;以及将所述参数集合均等地划分到所确定的N个区间。
在本发明的一个实施例中,所述计算所述神经网络的每一层的参数集合的各分位数包括:基于待生成的定点参数的位数确定所述N的取值;基于所述N的取值确定需要计算的所述神经网络的每一层的参数集合的分位数的个数;以及基于所确定的所述分位数的个数计算所述各分位数。
在本发明的一个实施例中,所述N的取值通过公式N=2k来计算,其中k为待生成的定点参数的位数。
在本发明的一个实施例中,所述将所述参数集合均等地划分到所确定的N个区间包括:当N等于2时,计算所述神经网络的每一层的参数集合的中位数以将所述参数集合均等地划分到两个区间;以及当N大于2时,分别计算所述两个区间内的子参数集的各自的中位数以将所述参数集合均等地划分到四个区间,如此递归操作直到将所述参数集合均等地划分到所述N个区间。
在本发明的一个实施例中,所述将神经网络的每一层的参数集合均等地划分到N个区间还包括:将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中。
在本发明的一个实施例中,所述将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中包括:基于所述N的取值确定所述N个区间各自被映射到[0,1]之间的区间后各自所在区间的端点;基于所述N个区间各自被映射到[0,1]之间的区间后各自所在区间的端点以及所述N个区间的各自区间内所包括参数的最小值和最大值计算所述N个区间各自的线性映射参数;以及基于所述线性映射参数将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中。
在本发明的一个实施例中,所述对所述N个区间对应的参数做定点处理以生成与每个区间对应的定点参数包括:对经过线性映射到[0,1]之间的N个区间对应的参数进行定点处理以得到离散的定点参数。
在本发明的一个实施例中,所述方法还包括:使用定点参数对所述神经网络进行训练并进行梯度计算。
根据本发明另一方面,提供了一种神经网络参数定点化装置,所述装置包括:均匀分割模块,用于将神经网络的每一层的参数集合均等地划分到N个区间,其中N为大于等于2的整数;以及定点化处理模块,用于对所述N个区间对应的参数做定点处理以生成与每个区间对应的定点参数,并将所述定点参数更新至所述神经网络。
在本发明的一个实施例中,所述均匀分割模块将神经网络的每一层的参数集合均等地划分到N个区间包括:计算所述神经网络的每一层的参数集合的各分位数;基于所述各分位数确定将所述参数集合均等划分的N个区间;以及将所述参数集合均等地划分到所确定的N个区间。
在本发明的一个实施例中,所述均匀分割模块计算所述神经网络的每一层的参数集合的各分位数包括:基于待生成的定点参数的位数确定所述N的取值;基于所述N的取值确定需要计算的所述神经网络的每一层的参数集合的分位数的个数;以及基于所确定的所述分位数的个数计算所述各分位数。
在本发明的一个实施例中,所述N的取值通过公式N=2k来计算,其中k为待生成的定点参数的位数。
在本发明的一个实施例中,所述均匀分割模块将所述参数集合均等地划分到所确定的N个区间包括:当N等于2时,计算所述神经网络的每一层的参数集合的中位数以将所述参数集合均等地划分到两个区间;以及当N大于2时,分别计算所述两个区间内的子参数集的各自的中位数以将所述参数集合均等地划分到四个区间,如此递归操作直到将所述参数集合均等地划分到所述N个区间。
在本发明的一个实施例中,所述均匀分割模块将神经网络的每一层的参数集合均等地划分到N个区间还包括:将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中。
在本发明的一个实施例中,所述均匀分割模块将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中包括:基于所述N的取值确定所述N个区间各自被映射到[0,1]之间的区间后各自所在区间的端点;基于所述N个区间各自被映射到[0,1]之间的区间后各自所在区间的端点以及所述N个区间的各自区间内所包括参数的最小值和最大值计算所述N个区间各自的线性映射参数;以及基于所述线性映射参数将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中。
在本发明的一个实施例中,所述定点化处理模块对所述N个区间对应的参数做定点处理以生成与每个区间对应的定点参数包括:对经过线性映射到[0,1]之间的N个区间对应的参数进行定点处理以得到离散的定点参数。
在本发明的一个实施例中,所述装置还包括:映射模块,用于使用定点参数对所述神经网络进行训练并进行梯度计算。
根据本发明再一方面,提供了一种神经网络参数定点化系统,所述系统包括存储装置和处理器,所述存储装置上存储有由所述处理器运行的计算机程序,所述计算机程序在被所述处理器运行时执行上述任一项所述的神经网络参数定点化方法。
根据本发明又一方面,提供了一种计算机可读介质,所述计算机可读介质上存储有计算机程序,所述计算机程序在运行时执行上述任一项所述的神经网络参数定点化方法。
根据本发明实施例的神经网络参数定点化方法、装置、系统和计算机可读介质通过对神经网络参数的分布进行均匀地分割,使得定点数的每个取值大致均衡,从而提高了有效位宽,能够大幅度提高神经网络的精度。
附图说明
通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1示出用于实现根据本发明实施例的神经网络参数定点化方法、装置、系统和计算机可读介质的示例电子设备的示意性框图;
图2示出根据本发明实施例的神经网络参数定点化方法的示意性流程图;
图3A-3C示出根据本发明实施例的神经网络参数定点化方法的过程的示例性示意图;
图4示出基于根据本发明实施例的神经网络参数定点化方法训练神经网络的示意图;
图5示出根据本发明实施例的神经网络参数定点化装置的示意性框图;以及
图6示出根据本发明实施例的神经网络参数定点化系统的示意性框图。
具体实施方式
为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
首先,参照图1来描述用于实现本发明实施例的神经网络参数定点化方法、装置、系统和计算机可读介质的示例电子设备100。
如图1所示,电子设备100包括一个或多个处理器102、一个或多个存储装置104、输入装置106、输出装置108以及图像传感器110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。
所述处理器102可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制所述电子设备100中的其它组件以执行期望的功能。
所述存储装置104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理器实现)的客户端功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
所述输出装置108可以向外部(例如用户)输出各种信息(例如图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
所述图像传感器110可以拍摄用户期望的图像(例如照片、视频等),并且将所拍摄的图像存储在所述存储装置104中以供其它组件使用。
示例性地,用于实现根据本发明实施例的神经网络参数定点化方法、装置、系统和计算机可读介质的示例电子设备可以被实现为诸如智能手机、平板电脑等。
下面,将参考图2描述根据本发明实施例的神经网络参数定点化方法200。
在步骤S210,将神经网络的每一层的参数集合均等地划分到N个区间,其中N为大于等于2的整数。
在一个实施例中,可以基于待生成的定点参数的位数确定所述N的取值。具体地,假定待生成的定点参数的位数表示为k(k为大于等于1的整数),则所述N的取值可以表示为:N=2k。也就是说,如果待生成的定点参数的位数为1,则在步骤S210中可以将神经网络的每一层的参数集合均等地划分到两个区间;如果待生成的定点参数的位数为2,则在步骤S210中可以将神经网络的每一层的参数集合均等地划分到四个区间,以此类推。
在本发明的实施例中,将神经网络的每一层的参数集合“均等”地划分到N个区间可以理解为:将神经网络的每一层的参数集合划分到N个区间,并使得每个区间中的参数的数量大致均等。
在一个实施例中,步骤S210可以进一步包括:计算所述神经网络的每一层的参数集合的各分位数;基于所述各分位数确定将所述参数集合均等划分的N个区间;以及将所述参数集合均等地划分到所确定的N个区间。示例性地,计算所述神经网络的每一层的参数集合的各分位数可以包括:基于待生成的定点参数的位数确定所述N的取值;基于所述N的取值确定需要计算的所述神经网络的每一层的参数集合的分位数的个数;以及基于所确定的所述分位数的个数计算所述各分位数。
具体地,假设待生成的定点参数的位数为k,则N=2k,则需要计算的所述神经网络的每一层的参数集合的分位数的个数为2k-1。例如,待生成的定点参数的位数为2,则需要将神经网络的每一层的参数集合均等地划分到四个区间中,划分这四个区间除去两端以外包括三个分割点即为需要计算的分位数的个数,即需要计算3个分位数,也就是分别为25%分位数、50%分位数以及75%分位数,如图3A所示的。
在一个实施例中,将神经网络的每一层的参数集合均等地划分到所确定的N个区间可以包括:当N等于2时,计算所述神经网络的每一层的参数集合的中位数以将所述参数集合均等地划分到两个区间;以及当N大于2时,分别计算所述两个区间内的子参数集的各自的中位数以将所述参数集合均等地划分到四个区间,如此递归操作直到将所述参数集合均等地划分到所述N个区间。
如同前述的示例,当N=4时,可先计算神经网络的每一层的参数集合的中位数,即该参数集合(可称为母参数集)的50%分位数,以将该参数集合均等地划分到两个区间:即小于50%分位数的参数划分到第一区间,大于等于50%分位数的参数划分到第二区间(或者小于等于50%分位数的参数划分到第一区间,大于50%分位数的参数划分到第二区间)。接着,可分别计算第一区间中参数集合(可称为第一子参数集)的中位数(即为母参数集的25%分位数)以及第二区间中参数集合(可称为第二子参数集)的中位数(即为母参数集的75%分位数),以分别将第一子参数集合和第二子参数集各自再划分到两个区间中,从而使得母参数集被均等地划分到四个区间。50%也就是中位数,25%是中位数之前的那一部分的中位数,而75%是中位数后一半的中位数。这给递归的进行处理和分割创造了条件。因此,递归地实施上述操作即可将神经网络的每一层的参数集合均等地划分到N个区间。
在将神经网络的每一层的参数集合均等地划分到N个区间中后,可将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中。具体地,将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中可以包括:基于所述N的取值确定所述N个区间各自被映射到[0,1]之间的区间后各自所在区间的端点;基于所述N个区间各自被映射到[0,1]之间的区间后各自所在区间的端点以及所述N个区间的各自区间内所包括参数的最小值和最大值计算所述N个区间各自的线性映射参数;以及基于所述线性映射参数将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中。
接着上面的示例,待生成的定点化后的参数为2位的定点数,可将神经网络的每一层的参数集合均等地划分到4个区间中,这4个区间可以采用神经网络的每一层参数的25%、50%和75%的分位点作为分割点,然后将其线性映射到[0,1]之间的均匀分隔的区间中。由于N的取值为4,则可确定这4个区间被映射到[0,1]之间的区间后各自所在区间分别为0到1/4的区间、1/4到1/2的区间、1/2到3/4的区间、以及3/4到1的区间,如图3B所示的。即,这4个区间的第一区间被映射到[0,1]之间的区间为0到1/4的区间;这4个区间的第二区间被映射到[0,1]之间的区间为1/4到1/2的区间;这4个区间的第三区间被映射到[0,1]之间的区间为1/2到3/4的区间;这4个区间的第四区间被映射到[0,1]之间的区间为3/4到1的区间。
然后,第一区间中的参数的最小值和最大值分别为m1和M1,则第一区间的线性映射参数k1、b1的计算可以基于k1m1+b1=0以及k1M1+b1=1/4来计算;第二区间中的参数的最小值和最大值分别为m2和M2,则第二区间的线性映射参数k2、b2的计算可以基于k2m2+b2=1/4以及k2M2+b2=1/2来计算;第三区间中的参数的最小值和最大值分别为m3和M3,则第三区间的线性映射参数k3、b3的计算可以基于k3m3+b3=1/2以及k3M3+b3=3/4来计算;第四区间中的参数的最小值和最大值分别为m4和M4,则第一区间的线性映射参数k4、b4的计算可以基于k4m4+b4=3/4以及k4M4+b4=1来计算。
基于每个区间各自的线性映射参数,可以将上述每个区间中的参数各自线性映射到[0,1]之间的各自的区间中。
基于经映射后的参数,可进行定点处理,如下面的步骤将描述的。
在步骤S220,对所述N个区间对应的参数做定点处理以生成与每个区间对应的定点参数,并将所述定点参数更新至所述神经网络。
在一个实施例中,对所述N个区间对应的参数做定点处理以生成与每个区间对应的定点参数可以包括:对经过线性映射到[0,1]之间的N个区间对应的参数进行定点处理以得到离散的定点参数。
接着上面的示例,待生成的定点化后的参数为2位的定点数,可将神经网络的每一层的参数集合均等地划分到4个区间中,这4个区间可以采用神经网络的每一层参数的25%、50%和75%的分位点作为分割点,然后将其线性映射到[0,1]之间的均匀分隔的区间中,基于映射后的参数,可对其进行均匀的定点处理以得到离散的低位宽定点参数,例如将[0,0.25]、[0.25,0.5]、[0.5,0.75]和[0.75,1]这4个区间分别定点成0,1,2,3四个数,如图3C所示的。
在得到离散的定点参数后,可将定点参数更新至所述神经网络。可对更新后的神经网络进行训练并进行梯度计算。如图4所示的,可基于根据本发明实施例的神经网络参数定点化方法将神经网络的浮点参数均衡化处理(均衡化处理可理解为根据本发明实施例的神经网络参数定点化方法的处理过程)为离散定点参数,然后基于离散定点参数对神经网络进行训练并进行梯度更新。基于该方法训练出来的神经网络,在接收输入数据后,可输出更为精确的识别结果。
基于上面的描述,根据本发明实施例的神经网络参数定点化方法通过对神经网络参数的分布进行均匀地分割,使得定点数的每个取值大致均衡,从而提高了有效位宽,能够大幅度提高神经网络的精度。
示例性地,根据本发明实施例的神经网络参数定点化方法可以在具有存储器和处理器的设备、装置或者系统中实现。
示例性地,根据本发明实施例的神经网络参数定点化方法可以部署在个人终端处,诸如智能电话、平板电脑、个人计算机等。替代地,根据本发明实施例的神经网络参数定点化方法还可以部署在服务器端(或云端)。替代地,根据本发明实施例的神经网络参数定点化方法还可以分布地部署在服务器端(或云端)和个人终端处。替代地,根据本发明实施例的神经网络参数定点化方法还可以分布地部署在不同的个人终端处。
以上示例性地描述了根据本发明实施例的神经网络参数定点化方法所包括的示例性步骤流程。
下面结合图5描述本发明另一方面提供的神经网络参数定点化装置。图5示出了根据本发明实施例的神经网络参数定点化装置500的示意性框图。
如图5所示,根据本发明实施例的神经网络参数定点化装置500包括均匀分割模块510和定点化处理模块520。所述各个模块可分别执行上文中结合图2描述的神经网络参数定点化方法的各个步骤/功能。以下仅对神经网络参数定点化装置500的各单元的主要功能进行描述,而省略以上已经描述过的细节内容。
均匀分割模块510用于将神经网络的每一层的参数集合均等地划分到N个区间,其中N为大于等于2的整数。定点化处理模块520用于对所述N个区间对应的参数做定点处理以生成与每个区间对应的定点参数,并将所述定点参数更新至所述神经网络。均匀分割模块510和定点化处理模块520均可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现。
在一个实施例中,均匀分割模块510基于待生成的定点参数的位数确定所述N的取值。具体地,假定待生成的定点参数的位数表示为k(k为大于等于1的整数),则所述N的取值可以表示为:N=2k。也就是说,如果待生成的定点参数的位数为1,则均匀分割模块510将神经网络的每一层的参数集合均等地划分到两个区间;如果待生成的定点参数的位数为2,则均匀分割模块510将神经网络的每一层的参数集合均等地划分到四个区间,以此类推。
在本发明的实施例中,均匀分割模块510将神经网络的每一层的参数集合“均等”地划分到N个区间可以理解为:将神经网络的每一层的参数集合划分到N个区间,并使得每个区间中的参数的数量大致均等。
在一个实施例中,均匀分割模块510将神经网络的每一层的参数集合均等地划分到N个区间的操作可以进一步包括:计算所述神经网络的每一层的参数集合的各分位数;基于所述各分位数确定将所述参数集合均等划分的N个区间;以及将所述参数集合均等地划分到所确定的N个区间。
示例性地,均匀分割模块510计算所述神经网络的每一层的参数集合的各分位数的操作可以包括:基于待生成的定点参数的位数确定所述N的取值;基于所述N的取值确定需要计算的所述神经网络的每一层的参数集合的分位数的个数;以及基于所确定的所述分位数的个数计算所述各分位数。具体地,假设待生成的定点参数的位数为k,则N=2k,则均匀分割模块510需要计算的所述神经网络的每一层的参数集合的分位数的个数为2k-1。
在一个实施例中,均匀分割模块510将神经网络的每一层的参数集合均等地划分到所确定的N个区间的操作可以包括:当N等于2时,计算所述神经网络的每一层的参数集合的中位数以将所述参数集合均等地划分到两个区间;以及当N大于2时,分别计算所述两个区间内的子参数集的各自的中位数以将所述参数集合均等地划分到四个区间,如此递归操作直到将所述参数集合均等地划分到所述N个区间。
在将神经网络的每一层的参数集合均等地划分到N个区间中后,均匀分割模块510可将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中。具体地,均匀分割模块510将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中的操作可以包括:基于所述N的取值确定所述N个区间各自被映射到[0,1]之间的区间后各自所在区间的端点;基于所述N个区间各自被映射到[0,1]之间的区间后各自所在区间的端点以及所述N个区间的各自区间内所包括参数的最小值和最大值计算所述N个区间各自的线性映射参数;以及基于所述线性映射参数将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中。
基于经映射后的参数,定点化处理模块520可对经过线性映射到[0,1]之间的N个区间对应的参数进行定点处理以得到离散的定点参数。在得到离散的定点参数后,定点化处理模块520可将定点参数更新至所述神经网络。
在一个实施例中,用于训练神经网络的训练模块(未在图5中示出)可以基于定点参数对神经网络进行训练并进行梯度计算。
基于上面的描述,根据本发明实施例的神经网络参数定点化装置通过对神经网络参数的分布进行均匀地分割,使得定点数的每个取值大致均衡,从而提高了有效位宽,能够大幅度提高神经网络的精度。
图6示出了根据本发明实施例的神经网络参数定点化系统600的示意性框图。神经网络参数定点化系统600包括存储装置610以及处理器620。
其中,存储装置610存储用于实现根据本发明实施例的神经网络参数定点化方法中的相应步骤的程序代码。处理器620用于运行存储装置610中存储的程序代码,以执行根据本发明实施例的神经网络参数定点化方法的相应步骤,并且用于实现根据本发明实施例的神经网络参数定点化装置中的相应模块。
在一个实施例中,在所述程序代码被处理器620运行时使得神经网络参数定点化系统600执行以下操作:将神经网络的每一层的参数集合均等地划分到N个区间,其中N为大于等于2的整数;以及对所述N个区间对应的参数做定点处理以生成与每个区间对应的定点参数,并将所述定点参数更新至所述神经网络。
在一个实施例中,在所述程序代码被处理器620运行时使得神经网络参数定点化系统600执行的所述将神经网络的每一层的参数集合均等地划分到N个区间包括:计算所述神经网络的每一层的参数集合的各分位数;基于所述各分位数确定将所述参数集合均等划分的N个区间;以及将所述参数集合均等地划分到所确定的N个区间。
在一个实施例中,在所述程序代码被处理器620运行时使得神经网络参数定点化系统600执行的所述计算所述神经网络的每一层的参数集合的各分位数包括:基于待生成的定点参数的位数确定所述N的取值;基于所述N的取值确定需要计算的所述神经网络的每一层的参数集合的分位数的个数;以及基于所确定的所述分位数的个数计算所述各分位数。
在一个实施例中,所述N的取值通过公式N=2k来计算,其中k为待生成的定点参数的位数。
在一个实施例中,在所述程序代码被处理器620运行时使得神经网络参数定点化系统600执行的所述将所述参数集合均等地划分到所确定的N个区间包括:当N等于2时,计算所述神经网络的每一层的参数集合的中位数以将所述参数集合均等地划分到两个区间;以及当N大于2时,分别计算所述两个区间内的子参数集的各自的中位数以将所述参数集合均等地划分到四个区间,如此递归操作直到将所述参数集合均等地划分到所述N个区间。
在一个实施例中,在所述程序代码被处理器620运行时使得神经网络参数定点化系统600执行的所述将神经网络的每一层的参数集合均等地划分到N个区间还包括:将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中。
在一个实施例中,在所述程序代码被处理器620运行时使得神经网络参数定点化系统600执行的所述将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中包括:基于所述N的取值确定所述N个区间各自被映射到[0,1]之间的区间后各自所在区间的端点;基于所述N个区间各自被映射到[0,1]之间的区间后各自所在区间的端点以及所述N个区间的各自区间内所包括参数的最小值和最大值计算所述N个区间各自的线性映射参数;以及基于所述线性映射参数将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中。
在一个实施例中,在所述程序代码被处理器620运行时使得神经网络参数定点化系统600执行的所述对所述N个区间对应的参数做定点处理以生成与每个区间对应的定点参数包括:对经过线性映射到[0,1]之间的N个区间对应的参数进行定点处理以得到离散的定点参数。
在一个实施例中,在所述程序代码被处理器620运行时还使得神经网络参数定点化系统600执行以下操作:使用定点参数对所述神经网络进行训练并进行梯度计算。
此外,根据本发明实施例,还提供了一种计算机可读介质,在所述计算机可读介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本发明实施例的神经网络参数定点化方法的相应步骤,并且用于实现根据本发明实施例的神经网络参数定点化装置中的相应模块。所述计算机可读介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合,例如一个计算机可读存储介质包含将神经网络的每一层的参数集合均等地划分到N个区间的计算机可读的程序代码,另一个计算机可读存储介质包含对所述N个区间对应的参数做定点处理以生成与每个区间对应的定点参数的计算机可读的程序代码。
在一个实施例中,所述计算机程序指令在被计算机运行时可以实现根据本发明实施例的神经网络参数定点化装置的各个功能模块,并且/或者可以执行根据本发明实施例的神经网络参数定点化方法。
在一个实施例中,所述计算机程序指令在被计算机或处理器运行时使计算机或处理器执行以下操作:将神经网络的每一层的参数集合均等地划分到N个区间,其中N为大于等于2的整数;以及对所述N个区间对应的参数做定点处理以生成与每个区间对应的定点参数,并将所述定点参数更新至所述神经网络。
在一个实施例中,所述计算机程序指令在被计算机或处理器运行时使计算机或处理器执行的所述将神经网络的每一层的参数集合均等地划分到N个区间包括:计算所述神经网络的每一层的参数集合的各分位数;基于所述各分位数确定将所述参数集合均等划分的N个区间;以及将所述参数集合均等地划分到所确定的N个区间。
在一个实施例中,所述计算机程序指令在被计算机或处理器运行时使计算机或处理器执行的所述计算所述神经网络的每一层的参数集合的各分位数包括:基于待生成的定点参数的位数确定所述N的取值;基于所述N的取值确定需要计算的所述神经网络的每一层的参数集合的分位数的个数;以及基于所确定的所述分位数的个数计算所述各分位数。
在本发明的一个实施例中,所述N的取值通过公式N=2k来计算,其中k为待生成的定点参数的位数。
在一个实施例中,所述计算机程序指令在被计算机或处理器运行时使计算机或处理器执行的所述将所述参数集合均等地划分到所确定的N个区间包括:当N等于2时,计算所述神经网络的每一层的参数集合的中位数以将所述参数集合均等地划分到两个区间;以及当N大于2时,分别计算所述两个区间内的子参数集的各自的中位数以将所述参数集合均等地划分到四个区间,如此递归操作直到将所述参数集合均等地划分到所述N个区间。
在一个实施例中,所述计算机程序指令在被计算机或处理器运行时使计算机或处理器执行的所述将神经网络的每一层的参数集合均等地划分到N个区间还包括:将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中。
在一个实施例中,所述计算机程序指令在被计算机或处理器运行时使计算机或处理器执行的所述将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中包括:基于所述N的取值确定所述N个区间各自被映射到[0,1]之间的区间后各自所在区间的端点;基于所述N个区间各自被映射到[0,1]之间的区间后各自所在区间的端点以及所述N个区间的各自区间内所包括参数的最小值和最大值计算所述N个区间各自的线性映射参数;以及基于所述线性映射参数将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中。
在一个实施例中,所述计算机程序指令在被计算机或处理器运行时使计算机或处理器执行的所述对所述N个区间对应的参数做定点处理以生成与每个区间对应的定点参数包括:对经过线性映射到[0,1]之间的N个区间对应的参数进行定点处理以得到离散的定点参数。
在一个实施例中,所述计算机程序指令在被计算机或处理器运行时还使计算机或处理器执行以下操作:使用定点参数对所述神经网络进行训练并进行梯度计算。
根据本发明实施例的神经网络参数定点化方法、装置、系统以及计算机可读介质通过对神经网络参数的分布进行均匀地分割,使得定点数的每个取值大致均衡,从而提高了有效位宽,能够大幅度提高神经网络的精度。
尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者其他合适的处理器来实现根据本发明实施例的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。

Claims (12)

1.一种神经网络参数定点化方法,其特征在于,所述方法包括:
将神经网络的每一层的参数集合均等地划分到N个区间,其中N为大于等于2的整数;以及
对所述N个区间对应的参数做定点处理以生成与每个区间对应的定点参数,并将所述定点参数更新至所述神经网络。
2.根据权利要求1所述的方法,其特征在于,所述将神经网络的每一层的参数集合均等地划分到N个区间包括:
计算所述神经网络的每一层的参数集合的各分位数;
基于所述各分位数确定将所述参数集合均等划分的N个区间;以及
将所述参数集合均等地划分到所确定的N个区间。
3.根据权利要求2所述的方法,其特征在于,所述计算所述神经网络的每一层的参数集合的各分位数包括:
基于待生成的定点参数的位数确定所述N的取值;
基于所述N的取值确定需要计算的所述神经网络的每一层的参数集合的分位数的个数;以及
基于所确定的所述分位数的个数计算所述各分位数。
4.根据权利要求3所述的方法,其特征在于,所述N的取值通过公式N=2k来计算,其中k为待生成的定点参数的位数。
5.根据权利要求2所述的方法,其特征在于,所述将所述参数集合均等地划分到所确定的N个区间包括:
当N等于2时,计算所述神经网络的每一层的参数集合的中位数以将所述参数集合均等地划分到两个区间;以及
当N大于2时,分别计算所述两个区间内的子参数集的各自的中位数以将所述参数集合均等地划分到四个区间,如此递归操作直到将所述参数集合均等地划分到所述N个区间。
6.根据权利要求1所述的方法,其特征在于,所述将神经网络的每一层的参数集合均等地划分到N个区间还包括:
将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中。
7.根据权利要求6所述的方法,其特征在于,所述将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中包括:
基于所述N的取值确定所述N个区间各自被映射到[0,1]之间的区间后各自所在区间的端点;
基于所述N个区间各自被映射到[0,1]之间的区间后各自所在区间的端点以及所述N个区间的各自区间内所包括参数的最小值和最大值计算所述N个区间各自的线性映射参数;以及
基于所述线性映射参数将所述N个区间中的参数线性映射到[0,1]之间的均匀分隔的N个区间中。
8.根据权利要求6所述的方法,其特征在于,所述对所述N个区间对应的参数做定点处理以生成与每个区间对应的定点参数包括:
对经过线性映射到[0,1]之间的N个区间对应的参数进行定点处理以得到离散的定点参数。
9.根据权利要求1-8中的任一项所述的方法,其特征在于,所述方法还包括:
使用定点参数对所述神经网络进行训练并进行梯度计算。
10.一种神经网络参数定点化装置,其特征在于,所述装置包括:
均匀分割模块,用于将神经网络的每一层的参数集合均等地划分到N个区间,其中N为大于等于2的整数;以及
定点化处理模块,用于对所述N个区间对应的参数做定点处理以生成与每个区间对应的定点参数,并将所述定点参数更新至所述神经网络。
11.一种神经网络参数定点化系统,其特征在于,所述系统包括存储装置和处理器,所述存储装置上存储有由所述处理器运行的计算机程序,所述计算机程序在被所述处理器运行时执行如权利要求1-9中的任一项所述的神经网络参数定点化方法。
12.一种计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机程序,所述计算机程序在运行时执行如权利要求1-9中的任一项所述的神经网络参数定点化方法。
CN201710657697.3A 2017-08-03 2017-08-03 神经网络参数定点化方法、装置、系统和计算机可读介质 Pending CN108875921A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710657697.3A CN108875921A (zh) 2017-08-03 2017-08-03 神经网络参数定点化方法、装置、系统和计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710657697.3A CN108875921A (zh) 2017-08-03 2017-08-03 神经网络参数定点化方法、装置、系统和计算机可读介质

Publications (1)

Publication Number Publication Date
CN108875921A true CN108875921A (zh) 2018-11-23

Family

ID=64325447

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710657697.3A Pending CN108875921A (zh) 2017-08-03 2017-08-03 神经网络参数定点化方法、装置、系统和计算机可读介质

Country Status (1)

Country Link
CN (1) CN108875921A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109800865A (zh) * 2019-01-24 2019-05-24 北京市商汤科技开发有限公司 神经网络生成及图像处理方法和装置、平台、电子设备
CN111563600A (zh) * 2019-02-14 2020-08-21 北京嘀嘀无限科技发展有限公司 一种用于定点转化的系统和方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109800865A (zh) * 2019-01-24 2019-05-24 北京市商汤科技开发有限公司 神经网络生成及图像处理方法和装置、平台、电子设备
CN109800865B (zh) * 2019-01-24 2021-03-23 北京市商汤科技开发有限公司 神经网络生成及图像处理方法和装置、平台、电子设备
CN111563600A (zh) * 2019-02-14 2020-08-21 北京嘀嘀无限科技发展有限公司 一种用于定点转化的系统和方法
CN111563600B (zh) * 2019-02-14 2024-05-10 北京嘀嘀无限科技发展有限公司 一种用于定点转化的系统和方法

Similar Documents

Publication Publication Date Title
Pani et al. An FPGA platform for real-time simulation of spiking neuronal networks
Sanaullah et al. Real-time data analysis for medical diagnosis using FPGA-accelerated neural networks
CN109146830A (zh) 用于生成训练数据的方法、装置、系统和存储介质
CN108875522A (zh) 人脸聚类方法、装置和系统及存储介质
CN108833458B (zh) 一种应用推荐方法、装置、介质及设备
CN107729532A (zh) 一种简历匹配方法及计算设备
CN108875523A (zh) 人体关节点检测方法、装置、系统和存储介质
CN108875521A (zh) 人脸检测方法、装置、系统和存储介质
CN106529511A (zh) 图像结构化方法及装置
CN108875778A (zh) 人脸聚类方法、装置、系统和存储介质
CN106875110A (zh) 业务指标分层计算方法及装置、分布式计算方法及系统
CN112257578B (zh) 人脸关键点检测方法、装置、电子设备及存储介质
CN106855952A (zh) 基于神经网络的计算方法及装置
CN106779057A (zh) 基于gpu的计算二值神经网络卷积的方法及装置
CN108876764A (zh) 渲染图像获取方法、装置、系统和存储介质
CN110097170A (zh) 信息推送对象预测模型获取方法、终端及存储介质
CN108875483A (zh) 图像检测方法、装置、系统和计算机可读介质
CN108008942A (zh) 对数据记录进行处理的方法及系统
CN113822207A (zh) 高光谱遥感图像识别方法、装置、电子设备及存储介质
CN107402905A (zh) 基于神经网络的计算方法及装置
CN108875923A (zh) 用于神经网络的数据处理方法、装置和系统及存储介质
CN110362481A (zh) 自动测试方法及终端设备
CN108875921A (zh) 神经网络参数定点化方法、装置、系统和计算机可读介质
Mishra et al. Segmentation of mri brain tumor image using optimization based deep convolutional neural networks (dcnn)
CN108875920A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20181123

RJ01 Rejection of invention patent application after publication