一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

激活函数的查找表生成方法、装置、设备及存储介质与流程

2022-06-01 02:25:22 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,尤其涉及一种激活函数的查找表生成方法、装置、设备及存储介质。


背景技术:

2.激活函数(activation function)是在人工神经网络的神经元上运行的函数,其负责将神经元的输入映射到输出端。通常在生成激活函数的查找表时,一般将激活函数的输入数据的取值范围均等分成2n(2的n次幂)个区间,然后将每个区间所对应的激活函数的计算结果存储在ram中,当有输入数据时,根据输入数据落在哪个区间,就将此区间对应的值从ram中读取出来,作为最后的计算结果。
3.目前为了使得芯片(例如人工智能加速芯片、fpga产品等)能够储存下激活函数的查找表数据,在生成激活函数的查找表时,通常将激活函数输入数据的取值范围平分成较少的区间,以降低存储查找表所需的存储空间。由于激活函数都是非线性函数,有些区间值域变化很快,有些区间值域变化缓慢,虽然存储查找表所需的存储空间得以降低,但是会导致激活函数的输出结果误差增大,降低了输出结果的准确度。


技术实现要素:

4.本发明实施例通过提供一种激活函数的查找表生成方法、装置、设备及存储介质,旨在解决生成激活函数的查找表时将激活函数输入数据的取值范围平分成较少的区间,导致激活函数输出结果的误差增大的技术问题。
5.本发明实施例提供了一种激活函数的查找表生成方法,所述激活函数的查找表生成方法,包括:
6.根据目标偏差值对激活函数的值域进行均等划分,得到所述激活函数对应的采样点集合;
7.将所述采样点集合划分为至少两个区间,其中,不同所述区间内对应的激活函数的线段斜率不同;
8.分别对每个所述区间内的激活函数的输入数据按照对应的目标间距进行均等划分,得到多个子采样点集合,所述区间对应的目标间距与对应的激活函数的线段斜率反相关;
9.在多个所述子采样点集合所需的第一总存储空间小于或等于预设存储空间时,根据多个所述子采样点集合生成所述激活函数的输入值与输出值的查找表,并存储所述查找表;
10.在多个所述子采样点集合所需的第一总存储空间大于预设存储空间时,增大所述目标偏差值,返回执行所述根据目标偏差值对激活函数的值域进行均等分,得到所述激活函数对应的采样点集合的步骤。
11.在一实施例中,所述将所述采样点集合划分为至少两个区间的步骤包括:
12.将所述采样点集合中两两相邻的采样点对应的输入数据作差,得到所述采样点集合中两两相邻的采样点的间距;
13.将所述间距处于同一间距范围内的采样点划分在一个区间内,以得到至少两个所述区间。
14.在一实施例中,所述激活函数的查找表生成方法还包括:
15.获取所述采样点集合中两两相邻的采样点的最小间距;
16.根据所述最小间距确定每个所述区间对应的目标间距。
17.在一实施例中,所述根据所述最小间距确定每个所述区间对应的目标间距的步骤包括:
18.根据所述最小间距和每个所述区间对应的激活函数的线段斜率确定每个所述区间对应的目标间距;
19.其中,激活函数的线段斜率大的区间对应的目标间距与激活函数的线段斜率小的区间对应的目标间距的比值为n,其中,n大于或等于2,线段斜率越大,n越小。
20.在一实施例中,所述增大所述目标偏差值的步骤包括:
21.获取所述第一总存储空间与所述预设存储空间之间的空间差值;
22.在所述空间差值大于预设阈值时,采用第一预设增量值增加所述目标偏差值;
23.在所述空间差值小于或者等于所述预设阈值时,采用第二预设增量值增加所述目标偏差值,所述第一预设增量值大于所述第二预设增量值。
24.在一实施例中,所述根据目标偏差值对激活函数的值域进行均等划分,得到所述激活函数对应的采样点集合的步骤之后,还包括:
25.确定所述采样点集合中的采样点所需的第二总存储空间;
26.在所述第二总存储空间小于或者等于预设存储空间时,执行将所述采样点集合划分为至少两个区间的步骤。
27.在一实施例中,所述确定所述采样点集合中采样点的第二总存储空间的步骤之后,还包括:
28.在所述第二总存储空间大于预设存储空间时,增大所述目标偏差值,并返回执行所述根据目标偏差值对激活函数的值域进行均等划分,得到所述激活函数对应的采样点集合的步骤。
29.此外,为实现上述目的,本发明还提供了一种激活函数的查找表生成装置,所述激活函数的查找表生成装置包括:
30.值域划分模块,用于根据目标偏差值对激活函数的值域进行均等划分,得到所述激活函数对应的采样点集合;
31.区间生成模块,用于将所述采样点集合划分为至少两个区间,其中,不同所述区间对应的激活函数的线段斜率不同;
32.集合生成模块,用于分别对每个所述区间内的激活函数的输入数据按照对应的目标间距进行均等划分,得到多个子采样点集合,所述区间对应的目标间距与对应的激活函数的线段斜率反相关;
33.第一存储模块,用于在多个所述子采样点集合所需的第一总存储空间小于或等于预设存储空间时,根据多个所述子采样点集合生成所述激活函数的输入值与输出值的查找
表,并存储所述查找表;
34.第二存储模块,用于在多个所述子采样点集合所需的第一总存储空间大于预设存储空间时,增大所述目标偏差值,返回执行所述根据目标偏差值对激活函数的值域进行均等分,得到所述激活函数对应的采样点集合的步骤。
35.此外,为实现上述目的,本发明还提供了一种终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的激活函数的查找表生成程序,所述激活函数的查找表生成程序被所述处理器执行时实现上述的激活函数的查找表生成方法的步骤。
36.此外,为实现上述目的,本发明还提供了一种存储介质,其上存储有激活函数的查找表生成程序,所述激活函数的查找表生成程序被处理器执行时实现上述的激活函数的查找表生成方法的步骤。
37.本发明实施例中提供的一种激活函数的查找表生成方法、装置、设备及存储介质的技术方案,至少具有如下技术效果或优点:
38.本发明根据目标偏差值对激活函数的值域进行均等划分,得到激活函数对应的采样点集合,然后将采样点集合划分为多个区间,基于激活函数的特性,如果激活函数的线段斜率较大,则将较大线段斜率对应的区间进行精细划分,使得较大线段斜率对应的区间包括较多的采样点,如果激活函数的线段斜率较小,则将较小线段斜率对应的区间进行粗略划分,从而得到多个子采样点集合。如果多个子采样点集合所需的总存储空间小于或等于预设存储空间,则根据多个子采样点集合生成激活函数的输入值与输出值的查找表,并存储查找表;如果多个子采样点集合所需的第一总存储空间大于预设存储空间,则增大目标偏差值,以生成的多个子采样点集合所需的总存储空间减小,然后在多个子采样点集合所需的总存储空间小于或等于预设存储空间,则根据多个子采样点集合生成激活函数的输入值与输出值的查找表,并存储查找表,如此在生成激活函数的查找表后,即可以提高查找表中数据的准确度,还降低了查找表的空间存储,有利于节约芯片的存储资源,提高了芯片通过查找表查找数据的速度,解决了生成激活函数的查找表时将激活函数输入数据的取值范围平分成较少的区间,导致激活函数输出结果的误差增大的技术问题。
附图说明
39.图1为本发明实施例方案涉及的硬件运行环境的结构示意图;
40.图2为本发明激活函数的查找表生成方法第一实施例的流程示意图;
41.图3为一种激活函数的函数曲线图;
42.图4为本发明激活函数的查找表生成方法中增大目标偏差值的具体流程示意图;
43.图5为本发明激活函数的查找表生成方法第二实施例的流程示意图;
44.图6为本发明激活函数的查找表生成装置的功能模块图。
具体实施方式
45.为了更好的理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
46.如图1所示,图1为本发明实施例方案涉及的硬件运行环境的结构示意图。
47.需要说明的是,图1即可为终端设备的硬件运行环境的结构示意图。
48.如图1所示,该终端设备可以包括:处理器1001,例如cpu,存储器1005,用户接口1003,网络接口1004,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
49.本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
50.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及激活函数的查找表生成程序。其中,操作系统是管理和控制终端设备硬件和软件资源的程序,激活函数的查找表生成程序以及其它软件或程序的运行。
51.在图1所示的终端设备中,用户接口1003主要用于连接终端,与终端进行数据通信;网络接口1004主要用于后台服务器,与后台服务器进行数据通信;处理器1001可以用于调用存储器1005中存储的激活函数的查找表生成程序。
52.在本实施例中,终端设备包括:存储器1005、处理器1001及存储在所述存储器1005上并可在所述处理器上运行的激活函数的查找表生成程序,其中:
53.处理器1001调用存储器1005中存储的激活函数的查找表生成程序时,执行以下操作:
54.根据目标偏差值对激活函数的值域进行均等划分,得到所述激活函数对应的采样点集合;
55.将所述采样点集合划分为至少两个区间,其中,不同所述区间内对应的激活函数的线段斜率不同;
56.分别对每个所述区间内的激活函数的输入数据按照对应的目标间距进行均等划分,得到多个子采样点集合,所述区间对应的目标间距与对应的激活函数的线段斜率反相关;
57.在多个所述子采样点集合所需的第一总存储空间小于或等于预设存储空间时,根据多个所述子采样点集合生成所述激活函数的输入值与输出值的查找表,并存储所述查找表;
58.在多个所述子采样点集合所需的第一总存储空间大于预设存储空间时,增大所述目标偏差值,返回执行所述根据目标偏差值对激活函数的值域进行均等分,得到所述激活函数对应的采样点集合的步骤。
59.处理器1001调用存储器1005中存储的激活函数的查找表生成程序时,还执行以下操作:
60.将所述采样点集合中两两相邻的采样点对应的输入数据作差,得到所述采样点集合中两两相邻的采样点的间距;
61.将所述间距处于同一间距范围内的采样点划分在一个区间内,以得到至少两个所
述区间。
62.处理器1001调用存储器1005中存储的激活函数的查找表生成程序时,还执行以下操作:
63.获取所述采样点集合中两两相邻的采样点的最小间距;
64.根据所述最小间距确定每个所述区间对应的目标间距。
65.处理器1001调用存储器1005中存储的激活函数的查找表生成程序时,还执行以下操作:
66.根据所述最小间距和每个所述区间对应的激活函数的线段斜率确定每个所述区间对应的目标间距;
67.其中,激活函数的线段斜率大的区间对应的目标间距与激活函数的线段斜率小的区间对应的目标间距的比值为n,其中,n大于或等于2,线段斜率越大,n越小。
68.处理器1001调用存储器1005中存储的激活函数的查找表生成程序时,还执行以下操作:
69.获取所述第一总存储空间与所述预设存储空间之间的空间差值;
70.在所述空间差值大于预设阈值时,采用第一预设增量值增加所述目标偏差值;
71.在所述空间差值小于或者等于所述预设阈值时,采用第二预设增量值增加所述目标偏差值,所述第一预设增量值大于所述第二预设增量值。
72.处理器1001调用存储器1005中存储的激活函数的查找表生成程序时,还执行以下操作:
73.确定所述采样点集合中的采样点所需的第二总存储空间;
74.在所述第二总存储空间小于或者等于预设存储空间时,执行将所述采样点集合划分为至少两个区间的步骤。
75.处理器1001调用存储器1005中存储的激活函数的查找表生成程序时,还执行以下操作:
76.在所述第二总存储空间大于预设存储空间时,增大所述目标偏差值,并返回执行所述根据目标偏差值对激活函数的值域进行均等划分,得到所述激活函数对应的采样点集合的步骤。
77.本发明实施例提供了激活函数的查找表生成方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
78.如图2所示,在本发明的第一实施例中,本发明的激活函数的查找表生成方法,包括以下步骤:
79.步骤s210:根据目标偏差值对激活函数的值域进行均等划分,得到所述激活函数对应的采样点集合。
80.本实施例中,激活函数是指在人工神经网络的神经元上运行的函数,其负责将神经元的输入映射到输出端,常见的激活函数包括tanh激活函数、sigmoid激活函数等,本实施例以及下述各个实施例以sigmoid激活函数为例进行说明。其中,如图3所示,图3为sigmoid激活函数的函数曲线,sigmoid激活函数的数学表达式为:
81.所述目标偏差值可以理解为激活函数的值域中对应数值的精度,所述值域为激活函数的y的取值区间或取值范围。例如,目标偏差值为0.1,值域中的数值取值精度为小数点后一位。具体的,目标偏差值是用户根据实际需要预先设置的一个值,在生成激活函数的查找表之前,需要获取用户设定的目标偏差值,然后采用所述目标偏差值将激活函数的值域均等划分为n份,每一份对应一个采样点,n份对应n个采样点,n个采样点形成了激活函数对应的采样点集合,即采样点集合中包括了n个采样点。所述采样点是指激活函数的函数曲线上的数据点(x,y),x是横坐标,也可以理解为激活函数的输入数据,y是纵坐标,也可以理解为激活函数的输出数据。例如,图3中目标偏差值为0.1,sigmoid激活函数的值域为(0,1),则sigmoid激活函数的值域被均等分为10份,分别是[0,0.1]、(0.1,0.2]、(0.2,0.3]、(0.3,0.4]、(0.4,0.5]、(0.5,0.6]、(0.6,0.7]、(0.7,0.8]、(0.8,0.9]、(0.9,1.0],即对该10份中数据对应10个采样点。
[0082]
步骤s220:将所述采样点集合划分为至少两个区间。
[0083]
本实施例中,由于激活函数的函数曲线中有部分曲线的线段斜率变化的程度较大,即斜率较大,有部分曲线的线段斜率变化的程度缓慢,即斜率较小,对于斜率较大的部分对应的y值变化较大,斜率较小的部分对应的y值变化较慢。例如,图3中x小于-5以及x大于5所对应的y值几乎是无限接近的x在-5至5之间所对应的y值的变化很大。因此,基于激活函数特性,按照激函数曲线的线段斜率将采样点集合划分为至少两个区间,如较大线段斜率对应的采样点划分在一个区间内,适中线段斜率对应的采样点划分在一个区间内,较小线段斜率对应的采样点划分在一个区间内等从而得到多个区间。其中,得到的各个区间是不同的,也就是不同区间内对应的激活函数的线段斜率不同。
[0084]
具体的,步骤s220包括:
[0085]
将所述采样点集合中两两相邻的采样点对应的输入数据作差,得到所述采样点集合中两两相邻的采样点的间距;
[0086]
将所述间距处于同一间距范围内的采样点划分在一个区间内,以得到至少两个所述区间。
[0087]
先计算采样点集合中两两相邻的采样点的间距,两两相邻的采样点的间距为两两相邻的采样点对应的输入数据(横坐标)的差值,也就是将采样点集合中两两相邻的采样点对应的输入数据作差,得到输入数据差值,得到的输入数据差值就是所述间距。得到采样点集合中每组两两相邻的采样点的间距之后,将采样点集合中间距处于同一间距范围内的采样点划分在一个区间内,即将采样点集合中满足d《2β条件的采样点划分在第1个区间m1内,将采样点集合中满足2β《d《4β的采样点划分在第2个区间m2内,...,将采样点集合中满足2
n-1
β《d《2nβ的采样点划分在第n个区间mn内,从而得到多个区间。其中,d为两两相邻的采样点的间距,β为两两相邻的采样点的最小间距,n为区间的排列顺序,m1、m2、...、mn对应的激活函数的线段斜率是逐渐减小的,m1对应的激活函数的线段斜率最大,mn对应的激活函数的线段斜率最小。
[0088]
例如,图3中将激活函数划分为了10份,10个采样点,正半轴中纵坐标对应的横坐标大约也在图3中为0、0.4、0.9、1.3、2.1,等等,负半轴中纵坐标对应的横坐标为给出。其中,相邻两个横坐标的最小间距为0.4,那么基于激活函数的特性,将采样点集合中间距小于0.8的采样点划分到第1个区间m1内,第1个区间m1为(-2.1,2.1),基于第1个区间m1的划
分原理,将采样点集合中间距大于0.8以及间距间距小于1.6划分到第2个区间m1内,...,将采样点集合中间距大于2
n-1
×
0.4以及间距间距小于2n×
0.4划分到第n个区间m1内。
[0089]
步骤s230:分别对每个所述区间内的激活函数的输入数据按照对应的目标间距进行均等划分,得到多个子采样点集合。
[0090]
得到多个不同的区间之后,确定每个区间对应的目标间距。每个区间对应的目标间距是根据采样点集合中两两相邻的采样点的最小间距确定的。确定每个区间对应的目标间距包括:获取采样点集合中两两相邻的采样点的最小间距,然后根据最小间距确定每个区间对应的目标间距。其中,计算出采样点集合中两两相邻的采样点的间距之后,会得到多个间距,多个间距中的最小值就是所述最小间距,然后根据最小间距确定每个区间对应的目标间距,且相邻区间之间的目标间距的比值为整数。
[0091]
具体的,每个区间对应的目标间距与其对应的激活函数的线段斜率反相关,即激活函数的线段斜率越大,目标间距越小,对区间划分的越精细,划分得到的子采样点集合中的采样点的数量就越多,生成的查找表中对应线段斜率较大部分对应的输出数据就会越精确。激活函数的线段斜率越小,目标间距越大,对区间划分的越较粗略,划分得到的子采样点集合中的采样点的数量就越少,生成的查找表中对应线段斜率较小部分对应的输出数据几乎很接近,误差较小,即可以减少存储空间的占用。那么,基于不同区间对应的激活函数的线段斜率大小,根据最小间距为各个区间设置对应的目标间距,如果区间对应的激活函数的线段斜率较大,则基于最小间距设置该区间对应的目标间距较小,如果区间对应的激活函数的线段斜率较小,则基于最小间距设置该区间对应的目标间距较大。如此可实现,对较大线段斜率对应的区间进行细划分,对较小线段斜率对应的区间进行粗划分,有利于节省存储空间。
[0092]
进一步的,为了在生成查找表后,方便查表,根据最小间距确定每个区间对应的目标间距的步骤包括:根据最小间距和每个区间对应的激活函数的线段斜率确定每个区间对应的目标间距。其中,激活函数的线段斜率大的区间对应的目标间距与激活函数的线段斜率小的区间对应的目标间距的比值为n,其中,n大于或等于2,线段斜率越大,n越小。例如,最小间距为a,区间m1采用20a进行划分,区间m2采用21a进行划分,...,区间mn采用2
n-1
a进行划分,相邻两个区间对应的目标间距的比值是2,如此激活函数的线段斜率大的区间划分的越精细,激活函数的线段斜率小的区间划分的较粗略,可以提高后续查表的速度以及数据查询准确性。
[0093]
承接上述例子,第1个区间m1为(-2.1,2.1),将m1以0.4的间距重新划分,得到的第1个子采样点集合m1中的输入数据(横坐标)为(-2,-1.6,-1.2,-0.8,-0.4,0,0.4,0.8,1.2,1.6,2),即该子采样点集合中采样点的输入数据为0.4的整数倍,方便后续查表,如此划分,区间m1就重新划分完成,然后类似的将m2以0.8的间距重新划分,得到的第2个子采样点集合m2,...,将mn以2
n-1
×
0.4的间距重新划分,得到的第n个子采样点集合mn。
[0094]
步骤s240:判断多个所述子采样点集合所需的第一总存储空间是否小于或等于预设存储空间;如果是,执行步骤s250;如果否,则执行步骤s260。
[0095]
步骤s250:根据多个所述子采样点集合生成所述激活函数的输入值与输出值的查找表,并存储所述查找表。
[0096]
步骤s260:增大所述目标偏差值,返回执行步骤s210,根据目标偏差值对激活函数
的值域进行均等分,得到所述激活函数对应的采样点集合。
[0097]
本实施例中,得到多个子采样点集合后,统计多个子采样点集合中采样点的存储空间,得到多个子采样点集合所需的第一总存储空间。其中,每个子采样点集合中采样点的存储空间表示为sn,总共有n个子采样点集合,那么n个子采样点集合中采样点的存储空间的分别是s1,s2,...,sn,第一总存储空间表示为s,预设存储空间是指芯片的存储空间,表示为w,s=s1 s2 ,..., sn,所述芯片可以是人工智能加速芯片、fpga产品等。
[0098]
如果s≤w,则将每个子采样点集合中采样点的输入数据输入激活函数,得到每个子采样点集合中采样点的输出数据,然后基于各个子采样点集合中每个采样点的输入数据和输出数据,生成激活函数的输入值与输出值的查找表,并存储查找表至芯片的存储空间内。其中,生成的查找表的输出值的精度能够满足用户需求。
[0099]
为了进一步的提高查找表的输出值的精度,如果s≤w,则减小目标偏差值,然后返回执行步骤s210,直至重新得到多个子采样点集合,进而比较新的s和w,如果新的s≤w,且减小后的目标偏差值小于设定阈值,表示芯片的存储空间可以存储重新得到多个子采样点集合的情况下,又可以得到了精确的采样点的输出数据,然后基于各个子采样点集合中每个采样点的输入数据和输出数据,生成激活函数的输入值与输出值的查找表,并存储查找表至芯片的存储空间内,有利于进一步的提高查找表中激活函数的输出值的精度。
[0100]
如果s>w,表示多个子采样点集合所需的第一总存储空间过大,如果生成查找表,芯片的存储空间无法存储查找表,即查找表中的数据过多,则需要减少查找表中数据,减少查找表中数据可以通过增大目标偏差值的方式实现,增大目标偏差值后,返回执行步骤s210,得到的采样点集合中的采样点减少,后续得到的各个子采样点集合每个采样点的输入数据和输出数据也会减少,各个子采样点集合所需的第一总存储空间也会减少。即在一次或多次循环执行步骤s210后,如果新的s≤w,则然后基于各个子采样点集合中每个采样点的输入数据和输出数据,生成激活函数的输入值与输出值的查找表,并存储查找表至芯片的存储空间内。如此,可以在芯片可以存储具有较多数据的查找表的情况下,也提高了查找表中激活函数的输出值的精度。
[0101]
本实施例根据上述技术方案,基于激活函数的特性,如果激活函数的线段斜率较大,则将较大线段斜率对应的区间进行精细划分,使得较大线段斜率对应的区间包括较多的采样点,如果激活函数的线段斜率较小,则将较小线段斜率对应的区间进行粗略划分,使得较小线段斜率对应的区间包括较少的采样点。在生成激活函数的查找表后,即可以提高查找表中数据的准确度,还降低了查找表的空间存储,有利于节约芯片的存储资源,进一步提高了芯片通过查找表查找数据的速度。
[0102]
进一步的,如图4所示,增大所述目标偏差值的步骤包括:
[0103]
步骤s261:获取所述第一总存储空间与所述预设存储空间之间的空间差值。
[0104]
步骤s262:在所述空间差值大于预设阈值时,采用第一预设增量值增加所述目标偏差值。
[0105]
步骤s263:在所述空间差值小于或者等于所述预设阈值时,采用第二预设增量值增加所述目标偏差值,所述第一预设增量值大于所述第二预设增量值。
[0106]
具体的,预先设置了调整目标偏差值的预设增量值,预设增量值包括第一预设增量值和第二预设增量值,第一预设增量值大于第二预设增量值。如果s>w,则计算s与w的差
值,即空间差值,空间差值=s-w,通过空间差值衡量对目标偏差值增大的量,如果目标偏差值大于预设阈值,则表示对目标偏差值增大的量可以大一点,即每次对目标偏差值增加第一预设增量值,如果空间差值小于或者等于预设阈值,则表示对目标偏差值增大的量可不能过大,即每次对目标偏差值增加第二预设增量值,如此可以实现对目标偏差值进行准确调整,有利于提高后续采样点集合划分的精度,以提高生成的查找表中数据的准确度。
[0107]
如图5所示,在本发明的第二实施例中,本发明的激活函数的查找表生成方法,包括以下步骤:
[0108]
步骤s210:根据目标偏差值对激活函数的值域进行均等划分,得到所述激活函数对应的采样点集合;
[0109]
步骤s211:确定所述采样点集合中的采样点所需的第二总存储空间;
[0110]
步骤s212:判断所述第二总存储空间小于或者等于预设存储空间;如果是,则执行步骤s220;如果否,执行步骤s213;
[0111]
步骤s213:增大所述目标偏差值,并返回执行步骤s210,根据目标偏差值对激活函数的值域进行均等划分,得到所述激活函数对应的采样点集合;
[0112]
步骤s220:将所述采样点集合划分为至少两个区间;
[0113]
步骤s230:分别对每个所述区间内的激活函数的输入数据按照对应的目标间距进行均等划分,得到多个子采样点集合;
[0114]
步骤s240:判断多个所述子采样点集合所需的第一总存储空间是否小于或等于预设存储空间;如果是,执行步骤s250;如果否,则执行步骤s260;
[0115]
步骤s250:根据多个所述子采样点集合生成所述激活函数的输入值与输出值的查找表,并存储所述查找表;
[0116]
步骤s260:增大所述目标偏差值,返回执行步骤s210,根据目标偏差值对激活函数的值域进行均等分,得到所述激活函数对应的采样点集合。
[0117]
本实施例中,获取到用户设定的目标偏差值之后,采用目标偏差值对激活函数的值域进行均等划分,得到激活函数对应的采样点集合,然后计算采样点集合中的采样点所需的总存储空间,其中采样点集合中的采样点所需的总存储空间表示为第二总存储空间,由于芯片的存储空间是固定的,无法调整,得到激活函数对应的采样点集合之后,需要考虑芯片是否可以存储下采样点集合中采样点的问题。具体的,将第二总存储空间与预设存储空间进行比较,如果第二总存储空间小于或者等于预设存储空间,表示芯片可以存储下采样点集合中的采样点,也就是芯片可以存储下后续生成的查找表。如果第二总存储空间大于预设存储空间,表示对激活函数的值域划分的不合理,采样点集合中的采样点数据大小过大,芯片无法存储下采样点集合中的采样点,也就是芯片无法存储下后续生成的查找表,则需要保证生成的采样点集合中的采样点可以被芯片存储下,即通过增大目标偏差值的方式减少生成的采样点集合中的采样点数量。如果一次增大目标偏差值后,第二总存储空间还是大于预设存储空间,则继续增大目标偏差值,直至第二总存储空间小于或者等于预设存储空间为止,如此在考虑到芯片的预设存储空间是固定的情况下,通过对目标偏差值进行调整,保证了后续生成的查找表可以被芯片存储下,避免了做无用功情况的发生。
[0118]
对于本实施例中步骤s220-步骤s260的具体实施过程与第一实施例中步骤s220-步骤s260的具体实施过程相同,本实施例不再赘述。
[0119]
本实施例根据上述技术方案,可以在实现激活函数的查找表生成时,避免做无用功的同时,提高查找表中数据的准确度,还降低了查找表的空间存储,有利于节约芯片的存储资源,进一步提高了芯片通过查找表查找数据的速度。
[0120]
进一步的如图6所示,本发明提供的一种激活函数的查找表生成装置,所述激活函数的查找表生成装置包括:
[0121]
值域划分模块310,用于根据目标偏差值对激活函数的值域进行均等划分,得到所述激活函数对应的采样点集合;
[0122]
区间生成模块320,用于将所述采样点集合划分为至少两个区间,其中,不同所述区间对应的激活函数的线段斜率不同;
[0123]
集合生成模块330,用于分别对每个所述区间内的激活函数的输入数据按照对应的目标间距进行均等划分,得到多个子采样点集合,所述区间对应的目标间距与对应的激活函数的线段斜率反相关;
[0124]
第一存储模块340,用于在多个所述子采样点集合所需的第一总存储空间小于或等于预设存储空间时,根据多个所述子采样点集合生成所述激活函数的输入值与输出值的查找表,并存储所述查找表;
[0125]
第二存储模块350,用于在多个所述子采样点集合所需的第一总存储空间大于预设存储空间时,增大所述目标偏差值,返回执行所述根据目标偏差值对激活函数的值域进行均等分,得到所述激活函数对应的采样点集合的步骤。
[0126]
本发明激活函数的查找表生成装置具体实施方式与上述激活函数的查找表生成方法各实施例基本相同,在此不再赘述。
[0127]
进一步的,本发明还提供了一种终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的激活函数的查找表生成程序,所述激活函数的查找表生成程序被所述处理器执行时实现上述的激活函数的查找表生成方法的步骤。
[0128]
进一步的,本发明还提供了一种存储介质,其上存储有激活函数的查找表生成程序,所述激活函数的查找表生成程序被处理器执行时实现上述的激活函数的查找表生成方法的步骤。
[0129]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0130]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0131]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0132]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0133]
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0134]
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0135]
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献