CN111191766A - 一种数据处理方法、装置、处理器及计算机可读存储介质 - Google Patents
一种数据处理方法、装置、处理器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111191766A CN111191766A CN202010001416.0A CN202010001416A CN111191766A CN 111191766 A CN111191766 A CN 111191766A CN 202010001416 A CN202010001416 A CN 202010001416A CN 111191766 A CN111191766 A CN 111191766A
- Authority
- CN
- China
- Prior art keywords
- fitting
- data
- input data
- interval
- specific
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种数据处理方法、装置、处理器以及计算机可读存储介质。本发明采用反向移位单元与拟合运算电路配合,快速、高效地处理数据,以满足神经网络对于非线性度的需求,从而提高神经网络对于复杂函数的逼近能力。相较于现有技术单纯仅采用拟合运算电路进行全区间拟合运算以拟合特定函数的函数值的方式,本发明不仅能够通过减少拟合参数的使用从而减少硬件资源开销,还能够通过减少拟合运算电路匹配拟合参数的时间,从而加快数据处理装置对于数据的处理速度。
Description
技术领域
本发明涉及神经网络领域,具体涉及一种数据处理方法、装置、处理器以及计算机可读存储介质。
背景技术
在神经网络的深度学习应用场景中,我们用神经网络来表述输入与输出之间的复杂关系。用数学语言来说,就是用人工神经网络来实现复杂的函数。神经网络由多层的神经元构成,每个神经元中都有一个激活函数,神经元会同时接收多个输入并将它们统一起来,然后使用激活函数处理后进行输出,使输入与输出之间存在一定的映射关系,如果每个神经元中的激活函数均是线性函数,则输入与输出之间的映射关系均是线性的,那么神经网络只是将多个输入经过线性组合再输出,即神经网络缺乏非线性度,对于复杂函数的逼近能力十分有限。
为了让神经网络对于复杂函数的表达能力更加强大,需要引入非线性激活函数进行神经网络的构建。要引入非线性函数用于神经网络,相当于要拟合出非线性函数的函数值。通常来说,现有技术拟合非线性函数的函数值一般采用通用型处理器进行计算,效率低下。即使采用专用的拟合电路,其需要的拟合区间庞大、涉及的拟合参数繁多,导致存储资源开销高、电路面积大,同时其数据处理速度难以满足神经网络的需求。
发明内容
针对上述问题,为满足神经网络对于非线性度的需求,以专用电路结合仅配置了特定拟合区间的拟合运算电路的方案替换配置全区间的拟合运算电路方案为基础,提供了一整套提高神经网络数据处理能力的解决措施,显著减少硬件资源的开销。
为实现上述目的,根据本发明的第一方面,提供一种数据处理方法,该方法应用于神经网络。提供拟合运算电路,拟合运算电路用于调用拟合参数对数据进行拟合运算;提供特定函数定义域内的至少一个特定拟合区间,特定拟合区间对应至少一组拟合参数;提供输入数据x,输入数据x为标准化的浮点数,输入数据x包括有效数字、指数和符号。本发明提供的数据处理方法包括以下步骤:
步骤S10:获取输入数据x,并基于该输入数据x的有效数字、指数和符号判断输入数据x是否位于特定拟合区间;
若输入数据x位于特定拟合区间内,使用拟合运算电路调用拟合参数对输入数据x进行拟合运算得到拟合运算结果,并基于拟合运算结果得到最终运算结果;
若输入数据x位于特定拟合区间外,则跳过直接调用拟合运算电路处理输入数据x的步骤,直接执行步骤S20;
步骤S20:对输入数据x进行移位处理,得到移位数据x’;移位处理包括,获取移位数据x’的指数t,t为整数,然后计算输入数据x的指数与指数t的差值;之后基于该差值对输入数据x的有效数字进行移位,得到移位数据x’的有效数字;
步骤S30:基于移位数据x’获取拟合部x1和非拟合部x2,拟合部x1与非拟合部x2的和等于移位数据x’;其中,拟合部x1的有效数字等于移位数据x’的有效数字的小数部分加上整数r,拟合部x1位于特定拟合区间内;非拟合部x2的有效数字等于移位数据x’的有效数字的整数部分减去整数r;
步骤S40:使用拟合运算电路调用拟合参数对拟合部x1进行拟合运算,得到第一运算结果f(x1);
步骤S50:基于非拟合部x2对第一运算结果f(x1)进行反向移位处理得到最终运算结果。
本发明通过将输入数据x分解为拟合部x1和非拟合部x2,并通过拟合运算电路对拟合部x1进行拟合运算,得到第一运算结果f(x1),然后基于非拟合部x2对第一运算结果f(x1)进行反向移位处理,以此还原出特定函数的函数拟合值。相比于最接近的现有技术中以覆盖全区间的拟合运算电路进行拟合的具体实现方案,本发明以反向移位单元配合仅配置了极小特定拟合区间的拟合运算电路,代替配置了高功耗、多部件的全区间拟合区间的拟合运算电路,以大量减少拟合参数的数量,从而减少硬件资源尤其是存储资源的开销。同时,相较于现有技术,本发明提供的仅配置了极小特定拟合区间的拟合运算电路由于拟合参数较少,从而可以缩短拟合运算电路在调用拟合参数时,选择并匹配拟合参数的时间,从而在整体上提高了对于数据的处理速度,该数据处理方法具体应用于神经网络,特别是用于神经网络逼近特定函数的函数值时,使得神经网络对于非线性度的需求得以满足,从而使神经网络对于复杂函数的逼近能力得到进一步提高。
优选的,上述特定函数包括指数函数,该指数函数的底数等于2k,k为不等于零的整数。二进制是在计算机程序处理中应用最广泛和常见的情形,当特定函数为底数等于2k的指数函数时,反向移位处理操作简单、易于实现,具有很强的可应用性和推广意义。
优选的,上述特定拟合区间包括[-2t+n,2t+m],n和m均为正整数。在一种优选的实施方式中,上述整数r的取值通常为1。因此,由上述拟合部x1的构建方式可知,拟合部x1的有效数字小于2,拟合部x1的指数等于t,拟合部x1的符号包括正和负两种情形。因此,在本发明优选的二进制神经网络处理***中保持n和m均为正整数的前提下,拟合部x1必定位于特定拟合区间[-2t+n,2t+m],从而不需要对拟合部x1进行额外处理,即可对其进行拟合运算,从而进一步提高本方法对于数据的处理速度,并仅需存储特定拟合区间[-2t+n,2t+m]对应的拟合参数,减少存储资源的开销。
更为优选的,上述特定拟合区间包括第一拟合区间和第二拟合区间,第一拟合区间包括[-2t+n,-2t-p],第二拟合区间包括[2t-q,2t+m],p和q均为非负整数。由上述拟合部x1的构建方式可知,拟合部x1的有效数字大于1,拟合部x1的指数等于t,拟合部x1的符号包括正和负两种情形。因此,在p和q均为非负整数的前提下,拟合部x1必定位于第一拟合区间[-2t +n,-2t-p]或第二拟合区间[2t-q,2t+m],从而更进一步减少拟合参数的数量,以减少存储资源的开销。
更为优选的,m和n等于1,p和q等于0。在保证拟合部x1位于特定拟合区间的前提下,将特定拟合区间固定在最方便使用的[-2t+1,2t+1]或[-2t+1,-2t]U[2t,2t+1],从而将拟合参数的数量减少至局部最优的情形,以减少存储资源的开销。
为实现上述目的,根据本发明的第二方面,提供一种数据处理装置。提供特定函数对应的至少一个特定拟合区间,特定拟合区间对应至少一组拟合参数;并提供输入数据x,输入数据x为标准化的浮点数,输入数据x包括有效数字、指数和符号。本发明提供的数据处理装置包括:
判断单元,判断单元用于根据输入数据x的有效数字、指数和符号判断输入数据x是否位于特定拟合区间;
移位单元,移位单元与判断单元相连,移位单元用于获取位于特定拟合区间外的输入数据x,并对其进行移位处理,得到移位数据x’;
拆分单元,拆分单元与移位单元相连,拆分单元用于获取移位数据x’,并将移位数据x’拆分为拟合部x1和非拟合部x2,拟合部x1与非拟合部x2的和等于移位数据x’;
拟合运算电路,拟合运算电路用于接收位于特定拟合区间内的输入数据x,并调用拟合参数对其进行拟合运算得到拟合运算结果;所述拟合运算电路还用于接收拟合部x1,并调用拟合参数对拟合部x1进行拟合运算得到第一运算结果f(x1);
反向移位单元,反向移位单元与拟合运算电路以及拆分单元分别相连,反向移位单元用于获取第一运算结果f(x1)以及非拟合部x2,并基于非拟合部x2对第一运算结果f(x1)进行反向移位处理得到最终运算结果。
本发明通过将输入数据x分解为拟合部x1和非拟合部x2,并通过拟合运算电路对拟合部x1进行拟合运算,得到第一运算结果f(x1),然后基于非拟合部x2对第一运算结果f(x1)进行反向移位处理,以此还原出特定函数的函数拟合值。因此,通过上述处理过程,本发明以仅配置了极小特定拟合区间的拟合运算电路配合反向移位单元代替配置了极大拟合区间的拟合运算电路,以此减少拟合参数的数量,从而减少存储资源的开销。
优选的,上述数据处理装置还包括多路调制器,多路调制器包括输出端和至少两个输入端。多路调制器的输入端与判断单元相连,多路调制器的另一输入端与拆分单元相连,多路调制器的输出端与拟合运算电路相连。多路调制器用于获取拟合部x1和/或位于特定拟合区间内的输入数据x,并择一发送至拟合运算电路。通过设置多路调制器,可以在拟合运算电路进行流水化的拟合运算时,避免拟合运算电路同时接收到多个数据造成运算错误,提高装置的稳定性。
针对上述问题,根据本发明的第三方面,本发明提供一种计算机可读存储介质,该可读存储介质上存储有程序代码,该程序代码被处理器执行时,实现上述第一方面中的数据处理方法的步骤。
针对上述问题,根据本发明的第四方面,本发明提供一种处理器,该处理器包括上述第二方面中的数据处理装置。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据处理方法的流程示意图;
图2是本发明实施例提供的一种数据处理装置的结构示意图;
图3是本发明实施例提供的一种拟合参数表;
图4是本发明实施例提供的另一种拟合参数表;
图5是本发明实施例提供的另一种拟合参数表;
图6是本发明实施例提供的一种数据处理设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及所述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。术语“至少一个”的含义是一个或一个以上,术语“多个”的含义是两个或两个以上,除非另有明确具体的限定。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。需要说明的是,当一个元件被称作与另一个或多个元件“耦合”、“连接”时,它可以是一个元件直接连接到另一个或多个元件,也可以是间接连接至该另一个或多个元件。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
请参见图1,是本发明实施例提供的一种数据处理方法的流程示意图。具体的,包括如下步骤。
步骤S1:获取输入数据x。输入数据x为标准化的浮点数,包括有效数字、指数和符号。在本发明一种优选的实施方式中,输入数据x可以为IEEE-754浮点数。
步骤S2:根据输入数据x的有效数字、指数和符号判断输入数据x是否位于特定拟合区间。若输入数据x位于特定拟合区间内,执行步骤S3;若输入数据x位于特定拟合区间外,执行步骤S4。
步骤S3:使用拟合运算电路调用特定拟合区间对应的拟合参数对输入数据x进行拟合运算得到拟合运算结果。
步骤S4:对输入数据x进行移位处理得到移位数据x’。移位处理包括,获取移位数据x’的指数t,t为整数,然后计算输入数据x的指数与指数t的差值,之后基于该差值对输入数据x的有效数字进行移位,得到移位数据x’的有效数字。具体的,可以将输入数据x的指数减去移位数据x’的指数t,得到差值,若差值大于零,将输入数据x的有效数字进行左移,左移的位数等于差值;若差值小于零,将输入数据x的有效数字进行右移,右移的位数等于差值。还可以将移位数据x’的指数t减去输入数据x的指数得到差值,若差值小于零,将输入数据x的有效数字进行左移,左移的位数等于差值;若差值大于零,将输入数据x的有效数字进行右移,右移的位数等于差值。
步骤S5:对移位数据x’进行拆分处理得到拟合部x1和非拟合部x2,拟合部x1与非拟合部x2的和等于移位数据x’。其中,拟合部x1的有效数字等于移位数据x’的有效数字的小数部分加上整数r,拟合部x1位于特定拟合区间内;非拟合部x2的有效数字等于移位数据x’的有效数字的整数部分减去整数r。在本发明一种优选的实施方式中,r等于1。
步骤S6:使用拟合运算电路调用拟合参数对拟合部x1进行拟合运算,得到第一运算结果f(x1)。
步骤S7:基于非拟合部x2对第一运算结果f(x1)进行反向移位处理,得到最终运算结果。具体的,若进行拟合的特定函数为指数函数,该指数函数的底数为2k,k为不等于零的整数。反向移位处理包括:当kx2大于零时,将第一运算结果f(x1)对应的二进制数左移kx2位作为最终运算结果;当kx2小于零时,将第一运算结果f(x1)对应的二进制数右移|kx2|位作为最终运算结果。应当注意的是,由于非拟合部x2的有效数字等于移位数据x’的有效数字的整数部分减去整数r,因此,非拟合部x2的有效数字为整数,非拟合部x2的指数等于移位数据x’的指数t,t为整数,且通常设定t为非负整数,因此非拟合部x2通常为整数。
步骤S8:将步骤S3中的拟合运算结果的数值作为最终运算结果输出和/或将步骤S7中的最终运算结果输出。
现有技术往往将一个较大的区间配置为拟合区间,例如,在IEEE-754单精度浮点数的***中对函数2x进行拟合,由于IEEE-754单精度浮点数所能表示的最大值为2127,因此往往将拟合区间配置为[-127,127],而为了保证拟合的精度要求,通常将拟合区间划分为多个子区间。若每隔0.1划分一个子区间,那拟合区间[-127,127]将可以划分为2540个子区间,因此,理论上需要2540组拟合参数来实现函数的拟合,对于存储资源占用的极大。而在本发明中,对函数2x进行拟合运算,仅需将拟合区间设定为[-2,2],以同样的方式对[-2,2]进行划分,可知一共为40个子区间,因此,只需要40组拟合参数即可完成在[-2,2]的拟合运算,之后通过反向移位单元基于非拟合部x2对进行反向移位处理,即还原出了输入数据x在[-127,127]的函数拟合值。
从存储资源的角度来看,节省了约2500组拟合参数的存储资源开销。在对拟合精度有较高要求的***中,通常将子区间划分间隔设定在0.1或更小;当以0.1作为共同的最小子区间标准时,本发明相比现有技术至少节约了两个数量级的区间,因此本发明对于存储资源的节省是十分可观的。若不使用存储资源存储拟合参数,而是将拟合参数固化于电路之中,则相对于现有技术需要固化2500余组拟合参数而言,本发明可以大幅度减少电路的面积与功耗。
此外,为了调用对应的拟合参数进行拟合运算,需要判断输入数据x位于哪一子区间,因此,现有技术理论上需要log22540个门电路(Gate)进行子区间的判断,而本发明仅需log240个门电路。因此,本发明的电路面积明显小于现有技术。同时,在流水化的拟合运算中,本发明由于使用较少的门电路进行判断,电路延迟(即拟合部x1匹配对应拟合参数的时间)显著低于现有技术。
在本发明一些实施方式中,特定拟合区间可设置为[-2t+n,2t+m],m和n均为正整数。在本发明其它一些实施方式中,还可以设置多个特定拟合区间,例如可以将特定拟合区间设置为[-2t+n,-2t-p]U[2t-q,2t+m],p和q均为非负整数。在本发明一种优选的实施方式中,通常取m和n为1,取p和q为0。在本发明一些实施方式中,特定拟合区间还可以配置为开区间或半开半闭区间。
例如,当移位数据x’的指数t等于0时,特定拟合区间可以设置为[-2,2],(-2,2],[-2,2),(-2,2)等等。还可以将特定拟合区间设置为[-2,-1]U[1,2],(-2,-1)U(1,2),(-2,-1]U[1,2)等等,此处不再赘述。在本发明一种优选的实施方式中,特定拟合区间包括多个子区间,这些子区间均对应一组拟合参数。
请参见图2,是本发明实施例提供的一种数据处理装置200的结构示意图。数据处理装置200包括判断单元210、移位单元220、拆分单元230、多路调制器240、拟合运算电路250以及反向移位单元260。
判断单元210与移位单元220相连;移位单元220与拆分单元230相连;多路调制器240的一个输入端与判断单元210相连,多路调制器240的另一个输入端与拆分单元230相连,多路调制器240的输出端与拟合运算电路250相连;反向移位单元260与拆分单元230以及拟合运算电路250分别相连。
其中,判断单元210用于接收输入数据x,并根据输入数据x的有效数字、指数和符号判断输入数据x是否位于特定拟合区间。若输入数据x位于特定拟合区间内,判断单元210将输入数据x发送至多路调制器240;若输入数据x位于特定拟合区间外,判断单元210将输入数据x发送至移位单元220。
移位单元220用于对输入数据x进行移位处理,得到移位数据x’,并将移位数据x’发送至拆分单元230。
拆分单元230用于将移位数据x’拆分为拟合部x1和非拟合部x2,拟合部x1与非拟合部x2的和等于移位数据x’。然后将拟合部x1发送至多路调制器240,并将非拟合部x2发送反向移位单元260。
多路调制器240用于从接收到的位于特定拟合区间内的输入数据x和/或拟合部x1中择一发送至拟合运算电路250。经过一定选择从而将多个数据通道的数据传送到唯一的公共通道上,以实现数据选择功能的逻辑电路均可视为对多路调制器(multiplexer)的简单置换。例如数据选择器、多路选择器均可用于代替上述多路调制器。
拟合运算电路250用于接收位于特定拟合区间内的输入数据x进行拟合运算得到拟合运算结果;拟合运算电路250还用于接收拟合部x1进行拟合运算得到第一运算结果f(x1)。
反向移位单元260用于接收第一运算结果f(x1)和非拟合部x2,并基于非拟合部x2对第一运算结果f(x1)进行反向移位处理,得到最终运算结果。
为了便于理解,下面以数据处理装置200结合具体的函数和输入数据,阐述数据处理的过程。
在本发明的一个实施例中,优选提供用于拟合的函数为2x,优选预设特定拟合区间为[-2,2],该特定拟合区间被划分为多个子区间,每个子区间对应一组拟合参数。请参见图3,为本实施例提供的部分拟合参数。
提供一个IEEE-754浮点数8.5作为输入数据,其有效数字为1.0001,指数为3,符号为正,可表示为1.0001*23(以二进制进行表示)。
判断单元210接收输入数据8.5,判断其不位于特定拟合区间[-2,2],将其发送至移位单元220。
移位单元220接收输入数据进行移位处理得到移位数据。具体的,可以设置移位数据的指数为0。首先,将输入数据的指数减去移位数据的指数,得到差值为3,然后将输入数据的有效数字左移3位,得到移位数据的有效数字。因此,移位数据可表示为1000.1*20(以二进制进行表示)。
拆分单元230获取该移位数据,并拆分为拟合部和非拟合部。具体的,将移位数据的有效数字的小数部分加1作为拟合部的有效数字,因此,拟合部可表示为1.1*20(以二进制进行表示,相当于十进制的1.5);将移位数据的有效数字的整数部分减1作为非拟合部的有效数字,因此,非拟合部可表示为111*20(以二进制进行表示,相当于十进制的7)。
拟合运算电路250通过多路调制器240获取拟合部,并判断其位于特定拟合区间的子区间[1.5,2]内,调用拟合参数a、拟合参数b以及拟合参数c对其进行拟合运算,得到第一运算结果。其中,拟合参数a为0.8,拟合参数b为-0.6,拟合参数c为1.8,进行二项式拟合运算的公式为ax2+bx+c,因此,可得第一运算结果为2.7(以十进制进行表示)。应当理解的是,为保证拟合运算的精度,拟合参数需经过多次迭代或调试。本实施例示出的拟合参数仅为了示例性的说明拟合运算过程,给出了用于演示的试算拟合参数,不应将其理解为本发明实际使用时最优情形下的的拟合参数。
反向移位单元260获取非拟合部以及上述第一运算结果。其中,非拟合部等于7,函数2x的底数为21,因此,反向移位单元260将第一运算结果对应的二进制数左移7位(在数值上相当于乘上27),得到最终运算结果等于345.6。
在本发明另一种实施方式中,提供用于拟合的特定函数为4x,设定特定拟合区间为(-2,-1)U(1,2),该特定拟合区间被划分为多个子区间,每个子区间对应一组拟合参数。请参见图4,为本实施例提供的部分拟合参数。
提供一个IEEE-754浮点数-4.75作为输入数据,其有效数字为1.0011,指数为2,符号为负,可表示为-1.0011*22(以二进制进行表示)。
判断单元210接收输入数据,判断其不位于特定拟合区间(-2,-1)U(1,2),因此,将其发送至移位单元220。
移位单元220接收输入数据,对其进行移位处理。具体的,可设定移位数据的指数为0。首先,将输入数据的指数减去移位数据的指数得到差值为2,然后将输入数据的有效数字左移2位,得到移位数据的有效数字。因此,移位数据可表示为-100.11*20(以二进制进行表示)。
拆分单元230接收移位数据,将其拆分为拟合部和非拟合部。具体的,将移位数据的有效数字的小数部分加1作为拟合部,因此拟合部可表示为-1.11*20(以二进制进行表示,相当于十进制的-1.75),将移位数据的有效数字的整数部分减1作为非拟合部,因此非拟合部可表示为-11*20(以二进制表示,相当于十进制的-3)。
拟合运算电路250通过多路调制器240获取拟合部,并判断其位于特定拟合区间的子区间(-2,-1.5)内,调用对应的拟合参数a、拟合参数b以及拟合参数c对其进行拟合运算得到第一运算结果。其中,拟合参数a为0.0049,拟合参数b为0.25,拟合参数c为0.64,进行二项式拟合运算的公式为ax2+bx+c,因此,可得第一运算结果为0.21750625(以十进制进行表示)。应当理解的是,为保证拟合运算的精度,拟合参数需经过多次迭代或调试。本实施例示出的拟合参数仅为了示例性的说明拟合运算过程,给出了用于演示的试算拟合参数,不应将其理解为本发明实际使用时最优情形下的的拟合参数。
反向移位单元260获取上述非拟合部和第一运算结果。其中,非拟合部等于-3,函数4x的底数为22。因此,将第一运算结果对应的二进制数右移6位,得到最终运算结果等于0.00339853515625(以十进制进行表示)。
提供一个IEEE-754浮点数-4.75作为输入数据,其有效数字为1.0011,指数为2,符号为负,可表示为-1.0011*22(以二进制进行表示)。
判断单元210接收输入数据,判断其不位于特定拟合区间(-2,2],因此,将其发送至移位单元220。
移位单元220接收输入数据,对其进行移位处理。具体的,可设定移位数据的指数为0。首先,将输入数据的指数减去移位数据的指数得到差值为2,然后将输入数据的有效数字左移2位,得到移位数据的有效数字。因此,移位数据可表示为-100.11*20(以二进制进行表示)。
拆分单元230接收移位数据,将其拆分为拟合部和非拟合部。具体的,将移位数据的有效数字的小数部分加1作为拟合部,因此拟合部可表示为-1.11*20(以二进制进行表示,相当于十进制的-1.75);将移位数据的有效数字的整数部分减1作为非拟合部,因此非拟合部可表示为-11*20(以二进制进行表示,相当于十进制的-3)。
拟合运算电路250通过多路调制器240获取拟合部,并判断其位于特定拟合区间的子区间(-2,-1.5)内,调用对应的拟合参数a、拟合参数b以及拟合参数c对其进行拟合运算得到第一运算结果。其中,拟合参数a为1,拟合参数b为1,拟合参数c为2.05,进行二项式拟合运算的公式为ax2+bx+c,因此,可得第一运算结果为3.3625(以十进制进行表示)。应当理解的是,为保证拟合运算的精度,拟合参数需经过多次迭代或调试。本实施例示出的拟合参数仅为了示例性的说明拟合运算过程,给出了用于演示的试算拟合参数,不应将其理解为本发明实际使用时最优情形下的的拟合参数。
显而易见的,移位数据的指数并不局限于上述示出的0,而是可以根据实际实施进行调整。类似的,特定拟合区间的选择并不局限于上述示出的情形,而是可以根据移位数据的指数进行确定,确定特定拟合区间的方式已在上文中详细描述,此处不再赘述。进行拟合的函数也不仅限于上述实施例所示出的2x、4x或在其它一些实施方式中,进行拟合的函数可以为指数函数,指数函数的底数为2k,k为不为零的整数。
上述拟合参数表中示出的拟合参数和子区间的划分仅为示例性的数据,而不能将其理解成本发明对拟合参数或各个拟合子区间的具体限定。拟合参数或子区间的范围,可根据对于拟合精度的需求进行调整。
请参见图6,是本发明实施例提供的一种数据处理设备600的结构示意图。如图6所示的数据处理设备600包括一个或多个处理器610、通信接口620和存储器630。处理器610、通信接口620和存储器630可通过总线方式连接,也可通过无线传输等其他手段实现通信。本发明实施例以通过总线640连接为例。其中,该存储器630用于程序代码,该处理器610具有前述实施例中揭示的数据处理装置,用于执行该存储器630存储的程序代码,该程序代码被处理器610执行时,实现上述实施例所揭示的数据处理方法的步骤。
应当理解,在本发明实施例中,所称处理器610可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
通信接口620可以为有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他模块或装置设备进行通信。例如,本申请实施例中通信接口620具体可用于接收用户输入的输入数据;或者接收外部设备的数据等。
存储器630可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器也可以包括非易失性存储器(Non-VolatileMemory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);存储器还可以包括上述种类的存储器的组合。
需要说明的,图6仅仅是本发明实施例的一种可能的实现方式,实际应用中,数据处理设备还可以包括更多或更少的部件,这里不作限制。关于本发明实施例中未示出或未描述的内容,可参见前述方法实施例中的相关阐述,这里不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及实施步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的终端设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个数据处理设备中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种数据处理方法,应用于神经网络,提供拟合运算电路,所述拟合运算电路用于调用拟合参数对数据进行拟合运算;提供特定函数定义域内的至少一个特定拟合区间,所述特定拟合区间对应至少一组拟合参数;提供输入数据x,所述输入数据x为标准化的浮点数,所述输入数据x包括有效数字、指数和符号;其特征在于,所述拟合运算电路仅处理所述特定拟合区间内的数据;
所述数据处理方法包括以下步骤:
步骤S10:获取所述输入数据x,并基于所述输入数据x的有效数字、指数和符号判断所述输入数据x是否位于所述特定拟合区间;
若所述输入数据x位于所述特定拟合区间内,使用所述拟合运算电路调用所述拟合参数对所述输入数据x进行拟合运算得到拟合运算结果,并基于所述拟合运算结果得到最终运算结果;
若所述输入数据x位于所述特定拟合区间外,则跳过直接调用所述拟合运算电路处理所述输入数据x的步骤,直接执行步骤S20;
步骤S20:对所述输入数据x进行移位处理,得到移位数据x’;所述移位处理包括,获取所述移位数据x’的指数t,t为整数,然后计算所述输入数据x的指数与所述指数t的差值;之后基于所述差值对所述输入数据x的有效数字进行移位,得到所述移位数据x’的有效数字;
步骤S30:基于所述移位数据x’获取拟合部x1和非拟合部x2,所述拟合部x1与所述非拟合部x2的和等于所述移位数据x’;其中,所述拟合部x1的有效数字等于所述移位数据x’的有效数字的小数部分加上整数r,所述拟合部x1位于所述特定拟合区间内;所述非拟合部x2的有效数字等于所述移位数据x’的有效数字的整数部分减去整数r;
步骤S40:使用所述拟合运算电路调用所述拟合参数对所述拟合部x1进行拟合运算,得到第一运算结果f(x1);
步骤S50:基于所述非拟合部x2对第一运算结果f(x1)进行反向移位处理得到最终运算结果。
2.根据权利要求1所述的数据处理方法,其特征在于,所述特定函数包括指数函数,所述指数函数的底数等于2k,k为不等于零的整数。
3.根据权利要求1所述的数据处理方法,其特征在于,所述特定拟合区间包括[-2t+n,2t +m],n和m均为正整数。
4.根据权利要求3所述的数据处理方法,其特征在于,所述特定拟合区间包括第一拟合区间和第二拟合区间,所述第一拟合区间包括[-2t+n,-2t-p],所述第二拟合区间包括[2t-q,2t+m],p和q均为非负整数。
5.根据权利要求4所述的数据处理方法,其特征在于,m和n均等于1,p和q均等于0。
6.一种数据处理装置,提供特定函数定义域内的至少一个特定拟合区间,所述特定拟合区间对应至少一组拟合参数;提供输入数据x,所述输入数据x为标准化的浮点数,所述输入数据x包括有效数字、指数和符号,其特征在于,所述数据处理装置包括:
判断单元,所述判断单元用于根据所述输入数据x的有效数字、指数和符号判断所述输入数据x是否位于所述特定拟合区间;
移位单元,所述移位单元与所述判断单元相连,所述移位单元用于获取位于所述特定拟合区间外的所述输入数据x,并对其进行移位处理,得到移位数据x’;
拆分单元,所述拆分单元与所述移位单元相连,所述拆分单元用于获取所述移位数据x’,并将所述移位数据x’拆分为拟合部x1和非拟合部x2,所述拟合部x1与所述非拟合部x2的和等于所述移位数据x’;
拟合运算电路,所述拟合运算电路用于接收位于所述特定拟合区间内的输入数据x,并调用所述拟合参数对其进行拟合运算得到拟合运算结果;所述拟合运算电路还用于接收所述拟合部x1,并调用所述拟合参数对所述拟合部x1进行拟合运算得到第一运算结果f(x1);
反向移位单元,所述反向移位单元与所述拟合运算电路以及所述拆分单元分别相连,所述反向移位单元用于获取所述第一运算结果f(x1)以及所述非拟合部x2,并基于所述非拟合部x2对所述第一运算结果f(x1)进行反向移位处理得到最终运算结果。
7.根据权利要求6所述的数据处理装置,其特征在于,所述数据处理装置还包括多路调制器,所述多路调制器包括输出端和至少两个输入端,所述多路调制器的输入端与所述判断单元相连,所述多路调制器的另一输入端与所述拆分单元相连,所述多路调制器的输出端与所述拟合运算电路相连;所述多路调制器用于获取所述拟合部x1和/或位于所述特定拟合区间内的输入数据x,并择一发送至所述拟合运算电路。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序代码,所述程序代码被处理器执行时,实现如权利要求1至5任一项所述的数据处理方法的步骤。
9.一种处理器,其特征在于,所述处理器包括如权利要求6或7所述的数据处理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010001416.0A CN111191766B (zh) | 2020-01-02 | 2020-01-02 | 一种数据处理方法、装置、处理器及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010001416.0A CN111191766B (zh) | 2020-01-02 | 2020-01-02 | 一种数据处理方法、装置、处理器及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111191766A true CN111191766A (zh) | 2020-05-22 |
CN111191766B CN111191766B (zh) | 2023-05-16 |
Family
ID=70709745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010001416.0A Active CN111191766B (zh) | 2020-01-02 | 2020-01-02 | 一种数据处理方法、装置、处理器及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111191766B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060047739A1 (en) * | 2004-08-31 | 2006-03-02 | Schulte Michael J | Decimal floating-point adder |
CN107247992A (zh) * | 2014-12-30 | 2017-10-13 | 合肥工业大学 | 一种基于列梅兹逼近算法的sigmoid函数拟合硬件电路 |
CN108154224A (zh) * | 2018-01-17 | 2018-06-12 | 北京中星微电子有限公司 | 用于数据处理的方法、装置和非暂时性计算机可读介质 |
CN109241869A (zh) * | 2018-08-16 | 2019-01-18 | 邯郸职业技术学院 | 答题卡分数识别方法、装置及终端设备 |
CN109657788A (zh) * | 2018-12-18 | 2019-04-19 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置及相关产品 |
-
2020
- 2020-01-02 CN CN202010001416.0A patent/CN111191766B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060047739A1 (en) * | 2004-08-31 | 2006-03-02 | Schulte Michael J | Decimal floating-point adder |
CN107247992A (zh) * | 2014-12-30 | 2017-10-13 | 合肥工业大学 | 一种基于列梅兹逼近算法的sigmoid函数拟合硬件电路 |
CN108154224A (zh) * | 2018-01-17 | 2018-06-12 | 北京中星微电子有限公司 | 用于数据处理的方法、装置和非暂时性计算机可读介质 |
CN109241869A (zh) * | 2018-08-16 | 2019-01-18 | 邯郸职业技术学院 | 答题卡分数识别方法、装置及终端设备 |
CN109657788A (zh) * | 2018-12-18 | 2019-04-19 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置及相关产品 |
Also Published As
Publication number | Publication date |
---|---|
CN111191766B (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210349692A1 (en) | Multiplier and multiplication method | |
CN110008952B (zh) | 一种目标识别方法及设备 | |
CN112204516A (zh) | 增强的低精度二进制浮点格式化 | |
CN110796247B (zh) | 一种数据处理方法、装置、处理器及计算机可读存储介质 | |
CN106708468B (zh) | 一种除法运算装置 | |
CN109543815B (zh) | 神经网络的加速方法及装置 | |
CN108845828B (zh) | 一种协处理器、矩阵运算加速方法及*** | |
KR20170138143A (ko) | 단일 곱셈-누산 방법 및 장치 | |
CN111191779B (zh) | 一种数据处理方法、装置、处理器及计算机可读存储介质 | |
CN111191766B (zh) | 一种数据处理方法、装置、处理器及计算机可读存储介质 | |
JPH09325955A (ja) | 二乗和の平方根演算回路 | |
WO2023236610A1 (zh) | 信号检测方法、装置、电子设备及存储介质 | |
CN111384971B (zh) | 有限域中的数据处理方法、装置和解码器 | |
CN111598227A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN114201140B (zh) | 指数函数处理单元、方法和神经网络芯片 | |
Cadenas | Pipelined median architecture | |
CN111310909B (zh) | 一种浮点数转换电路 | |
CN111313905B (zh) | 一种浮点数转换方法及装置 | |
CN111384975B (zh) | 多进制ldpc解码算法的优化方法、装置及解码器 | |
CN111384974B (zh) | 多进制ldpc码的置信度量化方法、装置及解码器 | |
CN113469683B (zh) | 密钥存储方法、装置、电子设备和存储介质 | |
CN116263875A (zh) | 一种卷积处理方法、***以及终端设备 | |
CN116127523B (zh) | 一种隐私计算中的数据处理方法、装置及电子设备 | |
US7177893B2 (en) | High-efficiency saturating operator | |
CN109005413B (zh) | 一种算术编码中的概率估计方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210209 Address after: 311201 No. 602-11, complex building, 1099 Qingxi 2nd Road, Hezhuang street, Qiantang New District, Hangzhou City, Zhejiang Province Applicant after: Zhonghao Xinying (Hangzhou) Technology Co.,Ltd. Address before: 518057 5-15, block B, building 10, science and technology ecological park, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province Applicant before: Shenzhen Xinying Technology Co.,Ltd. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |