CN108647045A - 激活函数的实现方法及装置、存储介质、电子设备 - Google Patents
激活函数的实现方法及装置、存储介质、电子设备 Download PDFInfo
- Publication number
- CN108647045A CN108647045A CN201810229334.4A CN201810229334A CN108647045A CN 108647045 A CN108647045 A CN 108647045A CN 201810229334 A CN201810229334 A CN 201810229334A CN 108647045 A CN108647045 A CN 108647045A
- Authority
- CN
- China
- Prior art keywords
- sampling
- activation function
- bit width
- value
- lookup table
- 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
- 230000004913 activation Effects 0.000 title claims abstract description 101
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000005070 sampling Methods 0.000 claims abstract description 205
- 230000006870 function Effects 0.000 claims description 138
- 238000013507 mapping Methods 0.000 claims description 14
- 230000006835 compression Effects 0.000 claims description 10
- 238000007906 compression Methods 0.000 claims description 10
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 abstract description 10
- 229910052710 silicon Inorganic materials 0.000 abstract description 10
- 239000010703 silicon Substances 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 11
- 239000000523 sample Substances 0.000 description 8
- 238000013135 deep learning Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012952 Resampling Methods 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- HDRXZJPWHTXQRI-BHDTVMLSSA-N diltiazem hydrochloride Chemical compound [Cl-].C1=CC(OC)=CC=C1[C@H]1[C@@H](OC(C)=O)C(=O)N(CC[NH+](C)C)C2=CC=CC=C2S1 HDRXZJPWHTXQRI-BHDTVMLSSA-N 0.000 description 1
- 229910052742 iron Inorganic materials 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000013074 reference sample Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本公开提供一种激活函数的实现方法及装置、存储介质、电子设备。该方法包括:基于采样点的预设位宽,将激活函数的定义域划分为N个子区间,并确定出每个子区间对应的采样点数目;获得每个采样点对应的采样值,生成所述激活函数的查找表;将所述激活函数所有的采样值进行分组处理,得到M个采样组,确定出每个采样组的基准采样值、以及该采样组内的剩余采样值与所述基准采样值之间的差值,所述差值消耗的存储位宽小于该差值对应的剩余采样值消耗的存储位宽;依据所述查找表的预设存储精度,对各采样组的基准采样值和差值进行压缩存储,用以节省所述查找表占用的存储空间。如此方案,可以在确保输出精度的同时,降低资源消耗,节省硅片面积。
Description
技术领域
本公开涉及深度学习技术领域,具体地,涉及一种激活函数的实现方法及装置、存储介质、电子设备。
背景技术
目前,云计算、大数据和人工智能技术“铁三角”正广泛应用于人们的日常生活中,为了提高用户的使用体验,企业也在不断地提升相关业务的并发响应能力。基于专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)、现场可编程门阵列(英文:Field Programmable Gate Array,简称:FPGA)的异构系统,因具有较高的能效比和吞吐率成为业界研究焦点之一,这包括宏观的产业化和技术生态研究,也包括微观的业务加速逻辑的研究。
在微观的业务加速逻辑方面,激活函数的非线性运算电路的实现是绕不开的话题,以Sigmoid函数、Tanh函数为例,用数字电路实现激活函数的方法可以有:泰勒级数展开法、查表法、坐标旋转数字计算机法、分段线性逼近。在物理实现时,上述实现方法均存在以下问题:为了使输出达到可用精度,会消耗较多的资源,占用大量的硅片面积,因此在深度学习领域缺乏实用性。
以查表法为例,可以预先将函数值,即采样点对应的采样值保存于RAM或ROM中,这势必会消耗大量的存储器资源。例如,针对Sigmoid函数建立查找表时,若采样区间设为[0,12]、采样间隔设为1×10-3、采样精度设为16bit,对应的查找表需要消耗192Kbit存储空间。
此外,从输出精度的角度看,查表法的表容量、取样间隔和取样精度之间需要做好权衡,取样间隔越小,取样精度越高,表容量越大,较大容量的表容易获得较高的输出精度,但却需要消耗大量的存储资源;反之,若表容量过低则会降低输出精度。
发明内容
本公开的主要目的是提供一种激活函数的实现方法及装置、存储介质、电子设备,有助于在确保输出精度的同时,降低资源消耗,节省硅片面积。
为了实现上述目的,本公开提供一种激活函数的实现方法,所述方法包括:
基于采样点的预设位宽,将激活函数的定义域划分为N个子区间,并确定出每个子区间对应的采样点数目;
获得每个采样点对应的采样值,生成所述激活函数的查找表;
将所述激活函数所有的采样值进行分组处理,得到M个采样组,确定出每个采样组的基准采样值、以及该采样组内的剩余采样值与所述基准采样值之间的差值,所述差值消耗的存储位宽小于该差值对应的剩余采样值消耗的存储位宽;
依据所述查找表的预设存储精度,对各采样组的基准采样值和差值进行压缩存储,用以节省所述查找表占用的存储空间。
可选地,如果所述激活函数以Y轴为对称轴,针对X≥0的区间划分出的子区间数目N=(W0-W1-W2)+1;
第i个子区间对应的取值范围为[Ximin,Ximax):
第i个子区间对应的采样点数目为Ki:
其中,W0为预设位宽,W1为符号位的位宽,W2为整数位的位宽。
可选地,所述将所述激活函数所有的采样值进行分组处理,得到M个采样组,包括:
根据保存所述查找表的物理存储器的位宽,确定所述采样组包括的采样值的数目,所述物理存储器的位宽不小于所述采样组的整体位宽,所述采样组的整体位宽为所述基准采样值的存储位宽以及该采样组中所有差值的存储位宽之和。
可选地,针对与所述激活函数具有映射关系的关联激活函数,所述方法还包括:
基于所述激活函数与所述关联激活函数之间的映射关系、以及所述激活函数的查找表,实现所述关联激活函数。
本公开提供一种激活函数的实现装置,所述装置包括:
子区间划分模块,用于基于采样点的预设位宽,将激活函数的定义域划分为N个子区间,并确定出每个子区间对应的采样点数目;
查找表生成模块,用于获得每个采样点对应的采样值,生成所述激活函数的查找表;
采样组分组模块,用于将所述激活函数所有的采样值进行分组处理,得到M个采样组,确定出每个采样组的基准采样值、以及该采样组内的剩余采样值与所述基准采样值之间的差值,所述差值消耗的存储位宽小于该差值对应的剩余采样值消耗的存储位宽;
查找表压缩模块,用于依据所述查找表的预设存储精度,对各采样组的基准采样值和差值进行压缩存储,用以节省所述查找表占用的存储空间。
可选地,如果所述激活函数以Y轴为对称轴,针对X≥0的区间划分出的子区间数目N=(W0-W1-W2)+1;
第i个子区间对应的取值范围为[Ximin,Ximax):
第i个子区间对应的采样点数目为Ki:
其中,W0为预设位宽,W1为符号位的位宽,W2为整数位的位宽。
可选地,所述采样组分组模块,用于根据保存所述查找表的物理存储器的位宽,确定所述采样组包括的采样值的数目,所述物理存储器的位宽不小于所述采样组的整体位宽,所述采样组的整体位宽为所述基准采样值的存储位宽以及该采样组中所有差值的存储位宽之和。
可选地,针对与所述激活函数具有映射关系的关联激活函数,所述装置还包括:
关联激活函数实现模块,用于基于所述激活函数与所述关联激活函数之间的映射关系、以及所述激活函数的查找表,实现所述关联激活函数。
本公开提供一种存储介质,其中存储有多条指令,所述指令由处理器加载,执行上述激活函数的实现方法的步骤。
本公开提供一种电子设备,所述电子设备包括;
上述的存储介质;以及
处理器,用于执行所述存储介质中的指令。
本公开方案中,可以结合预设位宽,对激活函数进行子区间划分,进而确定出每个子区间对应的采样点数目,以此来权衡查找表的表容量、取样间隔和取样精度;此外,还可以通过分组保存基准采样值、剩余采样值与基准采样值之间差值的方式,实现压缩查找表。如此方案,相对现有技术,可以在确保输出精度的同时,降低资源消耗,节省硅片面积。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为本公开方案激活函数的实现方法的流程示意图;
图2为现有技术实现Sigmoid函数时的误差分布示意图;
图3为现有技术实现Sigmoid函数时的面积占用情况示意图;
图4为本公开方案实现Sigmoid函数时的误差分布示意图;
图5为本公开方案实现Sigmoid函数和Tanh函数时的面积占用情况示意图;
图6为本公开方案激活函数的实现装置的构成示意图;
图7为本公开方案用于实现激活函数的电子设备的结构示意图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
参见图1,示出了本公开激活函数的实现方法的流程示意图。可以包括以下步骤:
S101,基于采样点的预设位宽,将激活函数的定义域划分为N个子区间,并确定出每个子区间对应的采样点数目。
作为一种示例,本公开方案中的激活函数可以是非线性曲线拟合的函数,例如,Sigmoid函数、Tanh函数等,本公开方案对此可不做具体限定。
本公开方案中,采样点的预设位宽指的是用多少个二进制表示采样点在X轴的值,也即激活函数中参数x的二进制位数。举例来说,预设位宽可以是16bit、8bit等,具体可结合实际应用需要而定,本公开方案对此可不做限定。
通常,参数x可以包括以下三部分:符号位、整数位、小数位。其中,符号位用于表示参数x的取值位于X轴的正半轴,还是负半轴,例如,可以用符号“0”表示X轴的正半轴,用符号“1”表示X轴的负半轴,本公开方案对此可不做具体限定。
作为一种示例,可以根据激活函数的饱和状态,确定整数位的位宽。以Sigmoid函数为例,在|x|>12以后处于饱和状态,无需再采样,故可以用4bit来表示参数x的整数部分。
对应地,可以根据预设位宽W0、符号位的位宽W1、整数位的位宽W2,确定出小数位的位宽为(W0-W1-W2)。仍以Sigmoid函数为例,若预设位宽为16bit,符号位的位宽为1bit,整数位的位宽为4bit,则小数位的位宽可以为11bit。
本公开方案中,对于参数x的小数部分来说,每个比特位相对于X轴上的一个标记,即X轴上共有(W0-W1-W2)个标记,为了得到(W0-W1-W2)个标记,就需要划分出(W0-W1-W2)+1个小区间。以上文所举Sigmoid函数为例,考虑到函数以Y轴为对称轴,故可针对X≥0的区间进行采样,具体可以将X≥0的区间划分成(W0-5)+1个子区间。
作为一种示例,子区间i对应的参数x的取值范围可以为[Ximin,Ximax),子区间i对应的采样点数目为Ki。其中,
也就是说,对于每个子区间来说,可能具有不同的长度,但子区间内各采样点之间可以是均匀分布的。
上文所举Sigmoid函数的示例中,针对X≥0的区间可以划分出12个子区间,各子区间对应的取值范围和采样点数可参见下表1所示。
表1
S102,获得每个采样点对应的采样值,生成所述激活函数的查找表。
确定出采样点后,便可通过激活函数的表达式计算出采样点对应的采样值,进而基于采样值生成激活函数对应的查找表。激活函数的表达式、计算采样值的过程可参照相关技术实现,此处不做详述。
针对表1所举示例,对应第12个子区间时,激活函数已达饱和状态,该子区间内采样点对应的采样值可以不存入查找表中,本公开方案对此可不做具体限定,可以结合实际应用需求确定是否将该子区间对应的采样值写入查找表中。
S103,将所述激活函数所有的采样值进行分组处理,得到M个采样组,确定出每个采样组的基准采样值、以及该采样组内的剩余采样值与所述基准采样值之间的差值,所述差值消耗的存储位宽小于该差值对应的剩余采样值消耗的存储位宽。
得到激活函数的查找表后,为了尽量节省保存查找表的物理存储器消耗的硅片面积,可以对查找表进行压缩处理。
作为一种示例,可以将激活函数所有的采样点分成M个采样组,通过保存基准采样值、剩余采样值与基准采样值之间的差值的方式,实现压缩查找表的目的。如此处理,可以减小查找表的大小,进而节省物理存储器占用硅片的面积。
在实际应用过程中,可以采用等分方式得到M个采样组,即每组包括的采样值的数目相同;或者,也可以不进行等分,本公开方案对此可不做具体限定。
需要说明的是,本公开方案中同一采样组内的采样值压缩,都是基于同一个基准采样值实现的,为了以最小的代价进行采样值还原,通常需要一次性从查找表中读出全组的采样值。对应于此,可以根据保存查找表的物理存储器位宽,来确定采样组包括的采样值的数目,通常,物理存储器的位宽不小于采样组的整体位宽,其中,采样组的整体位宽=基准采样值的存储位宽+本采样组中所有差值的存储位宽。
以上表1为例,共计4096个采样点,即查找表中需要保存4096个采样值,若以等分方式进行分组,且每个采样组包括8个采样值,则可划分得到4096/8=512个采样组。对于第j个采样组来说,作为一种示例,可以将组内第1个采样点对应的采样值确定为基准采样值,记为Bj;第2~8个采样点对应的采样值作为剩余采样值,与Bj之间的差值分别记为△j1、△j2、…、△j7。
S104,依据所述查找表的预设存储精度,对各采样组的基准采样值和差值进行压缩存储,用以节省所述查找表占用的存储空间。
本公开方案中,查找表的预设存储精度指的是采样值精确保存到什么位,例如,可以保存到小数点后6位,具体可结合实际应用需要而定,本公开方案对此可不做限定。通常,存储精度越高,需要消耗的存储位宽就越大。
此外,需要说明的是,本公开方案中组内的差值,均具有共同的基准采样值,故可以节省差值消耗的存储位宽。举例来说,针对采样值序列{0.000113,0.000125,0.000139,0.000146},存储精度达到小数点后第6位,序列中每个元素需要20bit才能直接存储,即每个元素需要消耗20bit,若将基准采样值定为0.0001,则上述序列可以变为{13,25,39,46},此时序列中每个元素只需6bit存储,实现了查找表的大幅压缩。
由上文介绍可知,查找表的压缩效率主要受以下因素的影响:采样组包括的采样值的数目、基准采样值的存储位宽、差值的存储位宽。
上文所举512个采样组的示例中,如果预设存储精度对应的比特位为16bit,采样组内用16bit存储Bj,用8bit存储各差值△j1、△j2、…、△j7,则第j个采样组占用72bit存储空间,整个查找表压缩后占用的存储空间为72bit*512=36Kbit。
作为一种示例,本公开方案还可以实现至少两个激活函数的兼容,进一步节省激活函数消耗的硅片面积。具体地,按照图1所示方法得到激活函数的压缩后查找表,针对与该激活函数具有映射关系的关联激活函数,可以基于激活函数与关联激活函数之间的映射关系、以及激活函数的查找表,实现关联激活函数。
举例来说,Sigmoid函数、Tanh函数之间具有如下映射关系:
Sigmoid(x)-0.5=0.5*Tanh(0.5x)
本公开方案可以基于上述映射关系实现Sigmoid函数与Tanh函数的兼容,即输入一个参数x,可以先通过查找表得到Sigmoid(x)的值或者Tanh(x)的值,然后通过移位和加法运算求得另一激活函数的值,也就是说Sigmoid函数、Tanh函数可以共用一个查找表,相对于现有技术需要单独实现各激活函数,本公开方案有助于节省多个激活函数消耗的硅片面积。此外,利用一个查找表实现Sigmoid函数、Tanh函数的兼容,也使得本公开方案在同时具有Sigmoid函数、Tanh函数的深度学习网络中更具优势。
下面以Sigmoid函数为例,进一步对本公开方案的有益效果进行解释说明。
现有技术对Sigmoid函数建立查找表时,若采样区间设为[0,12]、采样间隔设为1×10-3、采样精度设为16bit,则查找表需要消耗192Kbit存储空间,对应的误差分布可参见图2所示示意图。
现有技术为了使输出达到可用精度,在ASIC或FPGA中实现Sigmoid函数时一般都会占用大量的硅片面积。以在FPGA(型号:KU040,Xilinx)中实现Sigmoid函数为例,面积占用情况可参见图3所示,包括:Sigmoid函数本体占用的面积、测试Sigmoid函数功能占用的面积、剩余的空闲未被占用的面积。
对应地,采用本公开方案实现Sigmoid函数时,若参数x的预设位宽为16bit,由表1可知,查找表中需要存储4096个采样值,若查找表的预设存储精度为16bit为例,则需要占用的存储空间为64Kbit,对应的误差分布可参见图4所示示意图。若继续进行查找表压缩,由上文介绍可知,整个查找表压缩后占用的存储空间为36Kbit。
对比图2、图4可知,在保证同等误差情况下,现有技术需要192Kbit存储空间,本公开方案只需36Kbit存储空间,有效的降低了对查找表容量的需求,降低了对存储资源的消耗。
另外,以本公开方案在FPGA(型号:KU040,Xilinx)中实现Sigmoid函数和Tanh函数为例,面积占用情况可参见图5所示,包括:Sigmoid函数和Tanh函数本体占用的面积、测试Sigmoid函数和Tanh函数功能占用的面积、剩余的空闲未被占用的面积。
对比图3、图5可知,本公开方案在物理实现上只需占用少量存储资源和逻辑资源,有效节省了硅片面积,非常适合在ASIC或FPGA中实现。
参见图6,示出了本公开激活函数的实现装置的构成示意图。所述装置可以包括:
子区间划分模块201,用于基于采样点的预设位宽,将激活函数的定义域划分为N个子区间,并确定出每个子区间对应的采样点数目;
查找表生成模块202,用于获得每个采样点对应的采样值,生成所述激活函数的查找表;
采样组分组模块203,用于将所述激活函数所有的采样值进行分组处理,得到M个采样组,确定出每个采样组的基准采样值、以及该采样组内的剩余采样值与所述基准采样值之间的差值,所述差值消耗的存储位宽小于该差值对应的剩余采样值消耗的存储位宽;
查找表压缩模块204,用于依据所述查找表的预设存储精度,对各采样组的基准采样值和差值进行压缩存储,用以节省所述查找表占用的存储空间。
可选地,如果所述激活函数以Y轴为对称轴,针对X≥0的区间划分出的子区间数目N=(W0-W1-W2)+1;
第i个子区间对应的取值范围为[Ximin,Ximax):
第i个子区间对应的采样点数目为Ki:
其中,W0为预设位宽,W1为符号位的位宽,W2为整数位的位宽。
可选地,所述采样组分组模块,用于根据保存所述查找表的物理存储器的位宽,确定所述采样组包括的采样值的数目,所述物理存储器的位宽不小于所述采样组的整体位宽,所述采样组的整体位宽为所述基准采样值的存储位宽以及该采样组中所有差值的存储位宽之和。
可选地,针对与所述激活函数具有映射关系的关联激活函数,所述装置还包括:
关联激活函数实现模块,用于基于所述激活函数与所述关联激活函数之间的映射关系、以及所述激活函数的查找表,实现所述关联激活函数。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
参见图7,示出了本公开用于实现激活函数的电子设备300的结构示意图。电子设备300至少可以包括处理器301和存储介质302,作为一种示例,处理器301和存储介质302可以通过总线或其它方式连接,图7所示以通过总线连接为例。处理器301的数量可以为一个或者多个,图7所示以一个处理器为例。存储介质302所代表的存储设备资源,用于存储可由处理器301执行的指令,例如应用程序。此外,处理器301可以被配置为加载存储介质中的指令,以执行上述激活函数的实现方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种激活函数的实现方法,其特征在于,所述方法包括:
基于采样点的预设位宽,将激活函数的定义域划分为N个子区间,并确定出每个子区间对应的采样点数目;
获得每个采样点对应的采样值,生成所述激活函数的查找表;
将所述激活函数所有的采样值进行分组处理,得到M个采样组,确定出每个采样组的基准采样值、以及该采样组内的剩余采样值与所述基准采样值之间的差值,所述差值消耗的存储位宽小于该差值对应的剩余采样值消耗的存储位宽;
依据所述查找表的预设存储精度,对各采样组的基准采样值和差值进行压缩存储,用以节省所述查找表占用的存储空间。
2.根据权利要求1所述的方法,其特征在于,如果所述激活函数以Y轴为对称轴,针对X≥0的区间划分出的子区间数目N=(W0-W1-W2)+1;
第i个子区间对应的取值范围为[Ximin,Ximax):
第i个子区间对应的采样点数目为Ki:
其中,W0为预设位宽,W1为符号位的位宽,W2为整数位的位宽。
3.根据权利要求1所述的方法,其特征在于,所述将所述激活函数所有的采样值进行分组处理,得到M个采样组,包括:
根据保存所述查找表的物理存储器的位宽,确定所述采样组包括的采样值的数目,所述物理存储器的位宽不小于所述采样组的整体位宽,所述采样组的整体位宽为所述基准采样值的存储位宽以及该采样组中所有差值的存储位宽之和。
4.根据权利要求1至3任一项所述的方法,其特征在于,针对与所述激活函数具有映射关系的关联激活函数,所述方法还包括:
基于所述激活函数与所述关联激活函数之间的映射关系、以及所述激活函数的查找表,实现所述关联激活函数。
5.一种激活函数的实现装置,其特征在于,所述装置包括:
子区间划分模块,用于基于采样点的预设位宽,将激活函数的定义域划分为N个子区间,并确定出每个子区间对应的采样点数目;
查找表生成模块,用于获得每个采样点对应的采样值,生成所述激活函数的查找表;
采样组分组模块,用于将所述激活函数所有的采样值进行分组处理,得到M个采样组,确定出每个采样组的基准采样值、以及该采样组内的剩余采样值与所述基准采样值之间的差值,所述差值消耗的存储位宽小于该差值对应的剩余采样值消耗的存储位宽;
查找表压缩模块,用于依据所述查找表的预设存储精度,对各采样组的基准采样值和差值进行压缩存储,用以节省所述查找表占用的存储空间。
6.根据权利要求5所述的装置,其特征在于,如果所述激活函数以Y轴为对称轴,针对X≥0的区间划分出的子区间数目N=(W0-W1-W2)+1;
第i个子区间对应的取值范围为[Ximin,Ximax):
第i个子区间对应的采样点数目为Ki:
其中,W0为预设位宽,W1为符号位的位宽,W2为整数位的位宽。
7.根据权利要求5所述的装置,其特征在于,
所述采样组分组模块,用于根据保存所述查找表的物理存储器的位宽,确定所述采样组包括的采样值的数目,所述物理存储器的位宽不小于所述采样组的整体位宽,所述采样组的整体位宽为所述基准采样值的存储位宽以及该采样组中所有差值的存储位宽之和。
8.根据权利要求5至7任一项所述的装置,其特征在于,针对与所述激活函数具有映射关系的关联激活函数,所述装置还包括:
关联激活函数实现模块,用于基于所述激活函数与所述关联激活函数之间的映射关系、以及所述激活函数的查找表,实现所述关联激活函数。
9.一种存储介质,其中存储有多条指令,其特征在于,所述指令由处理器加载,执行权利要求1至4任一项所述方法的步骤。
10.一种电子设备,其特征在于,所述电子设备包括;
权利要求9所述的存储介质;以及
处理器,用于执行所述存储介质中的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810229334.4A CN108647045B (zh) | 2018-03-20 | 2018-03-20 | 激活函数的实现方法及装置、存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810229334.4A CN108647045B (zh) | 2018-03-20 | 2018-03-20 | 激活函数的实现方法及装置、存储介质、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108647045A true CN108647045A (zh) | 2018-10-12 |
CN108647045B CN108647045B (zh) | 2021-10-01 |
Family
ID=63744416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810229334.4A Active CN108647045B (zh) | 2018-03-20 | 2018-03-20 | 激活函数的实现方法及装置、存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108647045B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109449877A (zh) * | 2018-12-03 | 2019-03-08 | 惠科股份有限公司 | 过电流保护方法和显示设备 |
CN109657788A (zh) * | 2018-12-18 | 2019-04-19 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置及相关产品 |
CN109871941A (zh) * | 2019-02-18 | 2019-06-11 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置及相关产品 |
CN110147879A (zh) * | 2019-04-03 | 2019-08-20 | 中国科学院计算技术研究所 | 一种用于神经网络处理器的激活装置及方法 |
CN111580784A (zh) * | 2020-04-10 | 2020-08-25 | 科大讯飞股份有限公司 | 一种幂函数计算装置及幂函数计算方法 |
CN111667063A (zh) * | 2020-06-30 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 基于fpga的数据处理方法及装置 |
CN112651497A (zh) * | 2020-12-30 | 2021-04-13 | 深圳大普微电子科技有限公司 | 一种基于硬件芯片的激活函数处理方法、装置及集成电路 |
CN112955878A (zh) * | 2018-11-06 | 2021-06-11 | 创惟科技股份有限公司 | 实施神经网络的激活逻辑的装置及其方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103050116A (zh) * | 2012-12-25 | 2013-04-17 | 安徽科大讯飞信息科技股份有限公司 | 语音命令识别方法及系统 |
CN104915386A (zh) * | 2015-05-25 | 2015-09-16 | 中国科学院自动化研究所 | 一种基于深度语义特征学习的短文本聚类方法 |
CN106227851A (zh) * | 2016-07-29 | 2016-12-14 | 汤平 | 基于深度卷积神经网络端对端的通过分层深度搜索的图像检索方法 |
CN106875013A (zh) * | 2015-12-11 | 2017-06-20 | 百度(美国)有限责任公司 | 用于多核优化循环神经网络的系统和方法 |
CN106910192A (zh) * | 2017-03-06 | 2017-06-30 | 长沙全度影像科技有限公司 | 一种基于卷积神经网络的图像融合效果评估方法 |
CN107122798A (zh) * | 2017-04-17 | 2017-09-01 | 深圳市淘米科技有限公司 | 基于深度卷积网络的引体向上计数检测方法及装置 |
CN107437245A (zh) * | 2017-06-26 | 2017-12-05 | 西南交通大学 | 基于深度卷积神经网络的高速铁路接触网故障诊断方法 |
CN107480771A (zh) * | 2017-08-07 | 2017-12-15 | 北京中星微电子有限公司 | 基于深度学习的激活函数的实现方法及装置 |
US20180005676A1 (en) * | 2016-06-30 | 2018-01-04 | Samsung Electronics Co., Ltd. | Memory cell unit and recurrent neural network including multiple memory cell units |
CN107729984A (zh) * | 2017-10-27 | 2018-02-23 | 中国科学院计算技术研究所 | 一种适用于神经网络激活函数的计算装置及方法 |
-
2018
- 2018-03-20 CN CN201810229334.4A patent/CN108647045B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103050116A (zh) * | 2012-12-25 | 2013-04-17 | 安徽科大讯飞信息科技股份有限公司 | 语音命令识别方法及系统 |
CN104915386A (zh) * | 2015-05-25 | 2015-09-16 | 中国科学院自动化研究所 | 一种基于深度语义特征学习的短文本聚类方法 |
CN106875013A (zh) * | 2015-12-11 | 2017-06-20 | 百度(美国)有限责任公司 | 用于多核优化循环神经网络的系统和方法 |
US20180005676A1 (en) * | 2016-06-30 | 2018-01-04 | Samsung Electronics Co., Ltd. | Memory cell unit and recurrent neural network including multiple memory cell units |
CN106227851A (zh) * | 2016-07-29 | 2016-12-14 | 汤平 | 基于深度卷积神经网络端对端的通过分层深度搜索的图像检索方法 |
CN106910192A (zh) * | 2017-03-06 | 2017-06-30 | 长沙全度影像科技有限公司 | 一种基于卷积神经网络的图像融合效果评估方法 |
CN107122798A (zh) * | 2017-04-17 | 2017-09-01 | 深圳市淘米科技有限公司 | 基于深度卷积网络的引体向上计数检测方法及装置 |
CN107437245A (zh) * | 2017-06-26 | 2017-12-05 | 西南交通大学 | 基于深度卷积神经网络的高速铁路接触网故障诊断方法 |
CN107480771A (zh) * | 2017-08-07 | 2017-12-15 | 北京中星微电子有限公司 | 基于深度学习的激活函数的实现方法及装置 |
CN107729984A (zh) * | 2017-10-27 | 2018-02-23 | 中国科学院计算技术研究所 | 一种适用于神经网络激活函数的计算装置及方法 |
Non-Patent Citations (1)
Title |
---|
王羽: "基于FPGA的卷积神经网络应用研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112955878A (zh) * | 2018-11-06 | 2021-06-11 | 创惟科技股份有限公司 | 实施神经网络的激活逻辑的装置及其方法 |
CN112955878B (zh) * | 2018-11-06 | 2023-10-27 | 创惟科技股份有限公司 | 实施神经网络的激活逻辑的装置及其方法 |
CN109449877A (zh) * | 2018-12-03 | 2019-03-08 | 惠科股份有限公司 | 过电流保护方法和显示设备 |
CN109657788A (zh) * | 2018-12-18 | 2019-04-19 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置及相关产品 |
CN109871941A (zh) * | 2019-02-18 | 2019-06-11 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置及相关产品 |
CN109871941B (zh) * | 2019-02-18 | 2020-02-21 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置及相关产品 |
CN110147879A (zh) * | 2019-04-03 | 2019-08-20 | 中国科学院计算技术研究所 | 一种用于神经网络处理器的激活装置及方法 |
CN111580784A (zh) * | 2020-04-10 | 2020-08-25 | 科大讯飞股份有限公司 | 一种幂函数计算装置及幂函数计算方法 |
CN111580784B (zh) * | 2020-04-10 | 2023-07-25 | 科大讯飞股份有限公司 | 一种幂函数计算装置及幂函数计算方法 |
CN111667063A (zh) * | 2020-06-30 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 基于fpga的数据处理方法及装置 |
CN111667063B (zh) * | 2020-06-30 | 2021-09-10 | 腾讯科技(深圳)有限公司 | 基于fpga的数据处理方法及装置 |
CN112651497A (zh) * | 2020-12-30 | 2021-04-13 | 深圳大普微电子科技有限公司 | 一种基于硬件芯片的激活函数处理方法、装置及集成电路 |
Also Published As
Publication number | Publication date |
---|---|
CN108647045B (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108647045B (zh) | 激活函数的实现方法及装置、存储介质、电子设备 | |
Lin et al. | A digital circuit design of hyperbolic tangent sigmoid function for neural networks | |
CN103838770A (zh) | 一种数据逻辑分区的方法和系统 | |
WO2024103480A1 (zh) | 存算一体电路、芯片及电子设备 | |
Mandal et al. | COIN: Communication-aware in-memory acceleration for graph convolutional networks | |
Yazvinskaya et al. | Analysis and comparison of generalized Peukert’s equations parameters for nickel-cadmium batteries with pocket and sintered electrodes | |
Bai et al. | Partial sum quantization for computing-in-memory-based neural network accelerator | |
CN111399803A (zh) | 除法运算方法、装置、存储介质及电子设备 | |
CN110633447B (zh) | 基于fpga的球面距离定点计算方法及其计算装置 | |
CN114648101B (zh) | 基于transformer结构的softmax函数量化实现方法和装置 | |
Erdeljan et al. | IP core for efficient zero-run length compression of CNN feature maps | |
Li et al. | CNN weight parameter quantization method for FPGA | |
Shrivastava et al. | Implementation and Analysis on 4x4 Multiplier using Genesys FPGA Board | |
CN105930521B (zh) | 一种数据库管理装置和方法 | |
Thakur et al. | FPGA implementation of unsigned multiplier circuit based on quaternary signed digit number system | |
Alimohammad et al. | An iterative hardware Gaussian noise generator | |
Pang et al. | Word length Optimization Method for Radix-2 k Fixed-Point Pipeline FFT Processors | |
Kumar et al. | Fast Approximate Matrix Multiplier based on Dadda Reduction and Carry Save Ahead Adder | |
Wang et al. | Power research of JPEG circuits in FPGA | |
JP2008530651A (ja) | 高速シフト演算用の低電力レジスタアレイ | |
Bai et al. | MixMixQ: Quantization with Mixed Bit-Sparsity and Mixed Bit-Width for CIM Accelerators | |
CN1971291A (zh) | 一种电能计量芯片中的数频转换电路 | |
Nandal et al. | DA-based efficient testable FIR filter implementation on FPGA using reversible logic | |
CN115859004A (zh) | 一种fft硬件加速器架构及其使用方法 | |
Barkalov et al. | Encoding of Microoperations in FPGA-Based Moore FSMs |
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 |