CN112686392A - 基于集成电路的激活函数处理方法、装置、设备及介质 - Google Patents
基于集成电路的激活函数处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112686392A CN112686392A CN202011625108.1A CN202011625108A CN112686392A CN 112686392 A CN112686392 A CN 112686392A CN 202011625108 A CN202011625108 A CN 202011625108A CN 112686392 A CN112686392 A CN 112686392A
- Authority
- CN
- China
- Prior art keywords
- activation function
- function
- terms
- target value
- level
- 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
Links
- 230000004913 activation Effects 0.000 title claims abstract description 169
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000006870 function Effects 0.000 claims description 234
- 238000012545 processing Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010801 machine learning Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000000875 corresponding effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本申请公开一种基于集成电路的激活函数处理方法。该方法包括:接收用户配置的精度等级;所述精度等级用于描述所述激活函数在自变量处的结果误差;根据所述精度等级,确定需要获取的所述激活函数在目标值处的泰勒展开式的项数;所述目标值基于所述自变量确定;根据所述项数,确定所述激活函数在所述自变量处的函数值。该方法支持用户对运算结果的精确度进行调整。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种基于集成电路的激活函数处理方法、装置、设备及介质。
背景技术
随着计算机技术的发展,在人工智能领域(artificial intelligence,AI),通常需要对大规模的循环神经网络(recurrent neural network,RNN)做硬件加速运算。例如:通过现场可编程逻辑门阵列(field programmable gate array,FPGA)为激活函数做加速运算。具体地,FPGA根据地址信息,在查找表(look-up-table,LUT)中确定该地址对应的内容,进而能够快速准确的获取激活函数的运算结果。
在不同的应用场景中,不同的机器学习模型对激活函数的运算结果的精度要求不同。而在传统的方案中,出于对处理器的面积、功耗等问题的考虑,仅通过一种激活函数的查表方式来确定该激活函数的运算结果。该运算结果是一个固定的值,无法对该运算结果的精确度进行调整。
基于此,业界亟需一种可调整激活函数的运算结果精确度的处理方法。
发明内容
为了解决上述技术问题,本申请提供了一种基于集成电路的激活函数处理方法。该方法支持用户对运算结果的精确度进行调整。
本申请实施例公开了如下技术方案:
第一方面,本申请提供了一种基于集成电路的激活函数处理方法,包括:
接收用户配置的精度等级;所述精度等级用于描述所述激活函数在自变量处的结果误差;
根据所述精度等级,确定需要获取的所述激活函数在目标值处的泰勒展开式的项数;所述目标值基于所述自变量确定;
根据所述项数,确定所述激活函数在所述自变量处的函数值。
可选的,所述根据所述精度等级,确定需要获取的所述激活函数在目标值处的泰勒展开式的项数,包括:
若所述精度等级为最低等级,则确定需要获取所述激活函数在目标值处的泰勒展开式的前1项。
可选的,所述根据所述项数,确定所述激活函数在所述自变量处的函数值,包括:
根据所述激活函数在所述目标值处的泰勒展开式的前1项,确定所述激活函数在所述目标值处的函数值,将所述函数值作为所述激活函数在所述自变量处的函数值。
可选的,所述根据所述精度等级,确定需要获取的所述激活函数在目标值处的泰勒展开式的项数,包括:
若所述精度等级为最高等级,则确定需要获取所述激活函数在目标值处的泰勒展开式的项数包括前Q项和余项,Q为大于等于1的整数。
可选的,所述根据所述项数,确定所述激活函数在所述自变量处的函数值,包括:
将所述前Q项的多项式之和与所述余项的近似值的和作为所述激活函数在所述自变量处的函数值。
可选的,所述根据所述精度等级,确定需要获取的所述激活函数在目标值处的泰勒展开式的项数,包括:
若所述精度等级介于最高等级和最低等级之间,则确定需要获取所述激活函数在目标值处的泰勒展开式的项数包括前W项,W为大于等于2的整数。
可选的,所述根据所述项数,确定所述激活函数在所述自变量处的函数值,包括:
将所述前W项的多项式之和作为所述激活函数在所述自变量处的函数值。
第二方面,本申请提供了一种基于集成电路的激活函数处理装置,包括:接收模块,确定模块和运算模块;
所述接收模块,用于接收用户配置的精度等级;所述精度等级用于描述所述激活函数在自变量处的结果误差;
所述确定模块,用于根据所述精度等级,确定需要获取的所述激活函数在目标值处的泰勒展开式的项数;所述目标值基于所述自变量确定;
所述运算模块,用于根据所述项数,确定所述激活函数在所述自变量处的函数值。
可选的,所述确定模块,具体用于若所述精度等级为最低等级,则确定需要获取所述激活函数在目标值处的泰勒展开式的前1项。
可选的,所述运算模块,具体用于根据所述激活函数在所述目标值处的泰勒展开式的前1项,确定所述激活函数在所述目标值处的函数值,将所述函数值作为所述激活函数在所述自变量处的函数值。
可选的,所述确定模块,具体用于若所述精度等级为最高等级,则确定需要获取所述激活函数在目标值处的泰勒展开式的项数包括前Q项和余项,Q为大于等于1的整数。
可选的,所述运算模块,具体用于将所述前Q项的多项式之和与所述余项的近似值的和作为所述激活函数在所述自变量处的函数值。
可选的,所述确定模块,具体用于若所述精度等级介于最高等级和最低等级之间,则确定需要获取所述激活函数在目标值处的泰勒展开式的项数包括前W项,W为大于等于2的整数。
可选的,所述运算模块,具体用于将所述前W项的多项式之和作为所述激活函数在所述自变量处的函数值。
第三方面,本申请提供了一种计算设备,包括:
存储器,用于存储计算机程序,并将所述计算机程序传输给所述处理器;
处理器,用于根据所述计算机程序中的指令执行上述第一方面中任一项所述的激活函数处理方法。
第四方面,一种计算机可读存储介质,所述计算机可读存储介质用于存储运算系统所用的计算机软件指令,当所述计算机可读存储介质在计算机上运行时,使得计算机可以执行上述第一方面中任一项所述的激活函数处理方法。
由上述技术方案可知,本申请具有以下有益效果:
一方面,该方法支持用户对激活函数在自变量处的结果误差配置,由此该方法能够适应不用的场景下的激活函数的运算,例如,对精度等级要求不同的机器学习模型。另一方面,该方法能够根据精度等级确定的激活函数在目标值处的泰勒展开式的项数,由此在集成电路的内部能实现同时计算激活函数在目标值处的展开多项式的各项值,降低了计算激活函数在目标值处的多项式的时延,即缩短了确定激活函数在自变量处的函数值的时间,提高了获取激活函数在自变量处的函数值的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种运算系统的系统架构图;
图2为本申请实施例提供的一种激活函数处理方法的流程图;
图3为本申请实施例提供的一种运算系统100的内部执行逻辑图;
图4为本申请实施例提供的一种处理装置的示意图;
图5为本申请实施例提供的一种运算设备的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于本领域技术人员理解,下面对本申请所涉及到的技术术语进行介绍。
激活函数是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。而对于大规模的RNN需要做硬件加速运算,例如:通过FPGA做加速运算。而在不同的场景中,机器学习模型不同,而不同的机器学习模型对激活函数的运算结果的精度等级的要求不同,该精度等级用于描述激活函数在自变量处的结果误差。
目前,业界出于对处理器的面积、功耗等问题的考虑,仅通过一种激活函数的查表方式来确定该激活函数的运算结果,该运算结果是一个固定的值,进而无法对该运算结果的精确度进行调整。
为解决上述技术问题,本申请实施例提供了一种基于集成电路的激活函数处理方法,该方法可以通过运算系统实现。具体地,运算系统接收用户配置的精度等级,该精度等级支持用户个性化配置,由此能够适应不同的机器学习模型。运算系统根据用户配置的精度等级,确定需要获取的激活函数在目标值处的泰勒展开式的项数,该目标值基于自变量生成,目标值用于获取激活函数在自变量处的近似值,即将激活函数在目标值处的展开多项式之和作为激活函数在自变量处的函数值。激活函数在目标值处的泰勒展开式的项数越多,计算得到的激活函数在目标值处的结果误差就越小,即激活函数在目标值处的结果误差与激活函数在目标值处的泰勒展开式的项数负相关。当然,泰勒展开式的项数达到一定值之后,对结果误差极小甚至可忽略。另外,在泰勒展开式的项数中考虑余项,可以使得计算得到的激活函数在目标值处的结果误差越小,可以提高精度。运算系统根据通过精度等级确定的项数,来确定激活函数在自变量处的函数值。
一方面,该方法支持用户对激活函数在自变量处的结果误差配置,由此该方法能够适应不用的场景下的激活函数的运算,例如,对精度等级要求不同的机器学习模型。另一方面,该方法能够根据精度等级确定的激活函数在目标值处的泰勒展开式的项数,由此在集成电路的内部能实现同时计算激活函数在目标值处的展开多项式的各项值,降低了计算激活函数在目标值处的多项式的时延,即缩短了确定激活函数在自变量处的函数值的时间,提高了获取激活函数在自变量处的函数值的效率。
本实施例提供的运算系统可以用于FPGA为激活函数做加速运算,该运算系统支持对激活函数在自变量处的结果误差的精度调整,即调整精度等级。因此,该运算系统能够使FPGA支持精度等级要求不同的机器学习模型的激活函数的运算,提高了FPGA的拓展性。
运算系统可以是软件系统,具体地,运算系统可以以计算机软件的形式部署在计算设备(例如:FPGA),以调整激活函数的运算结果的精确度。在一些实施例中,运算系统也可以是硬件系统,该硬件系统包括具有调整激活函数的运算结果的精确度的物理设备。
为了便于理解,下面以该运算系统为部署在FPGA的软件系统为例进行介绍。
参见图1,该图为本申请实施例提供的一种运算系统的系统架构图。该运算系统100包括交互子系统120和运算子系统140。交互子系统120用于向用户提供图形用户界面(graphical user interface,GUI),接收用户通过GUI配置的精度等级,该精度等级用于描述激活函数在自变量处的结果误差。运算子系统140用于根据用户配置的精度等级,确定需要获取的激活函数在目标值处的泰勒展开式的项数,该目标值基于自变量生成,然后根据获取到的项数,确定激活函数在自变量处的函数值。
交互子系统120包括通信单元122,运算子系统140包括通信单元142和运算单元144。通信单元122用于接收用户配置的精度等级,然后通过数字信号的方式发送给运算子系统140。通信单元142接收交互子系统120发送的精度等级,运算单元144用于根据精度等级确定需要获取的激活函数在目标值处泰勒展开式的项数,然后根据该项数确定激活函数在自变量处的函数值。
为了便于理解,下面对目标值与自变量的关系进行介绍。为了便于运算单元144快速获取激活函数在自变量处的函数值,会预先在存储器(例如:寄存器)中存储激活函数在目标值处的泰勒展开式的多项式的系数值和余项的近似值的补偿值。该补偿值用于对余项的近似值进行修正,以降低余项近似值的误差。例如,将系数值和补偿值存储在寄存器中,便于运算单元144直接从该寄存器中读取相应的系数值或余项的近似值的补偿值。由激活函数的特性可知,一般的,在计算激活函数的函数值时,仅需要计算预设定义域内的激活函数的函数值。当自变量不再该预设定义域时,可以直接确定该激活函数的函数值。
目标值从预设定义域内选出,该目标值与自变量最接近且小于自变量的值。以预设定义域为[0.0625,5.0625]为例,最小的目标值可以与边界值相等,即目标值等于初始值,例如目标值和初始值均为0.0625。相邻目标值之间的距离为2-K,K为正整数。
下面对激活函数在目标值处的泰勒展开式进行介绍,激活函数在目标值处的泰勒展开式包括前M项多项式和余项。为了便于计算Tanh函数,将该函数在目标值处进行展开,得到泰勒展开式,具体如下:
其中,x0为目标值,Tanh′(x0)为Tanh函数在目标值x0处的一阶导数的值,x为自变量,Rn(x)为n阶泰勒余项。在本实施例中,定义Tanh(x0),Tanh′(x0),Tanh″(x0)/2……Tanh(n)(x0)/n!为多项式的系数。
Tanh函数在目标值处的泰勒展开式的项数越多,Tanh函数在目标值处的函数值越接近Tanh函数在自变量处的函数值,即Tanh函数在自变量处的结果误差越小。由此,可以通过获取激活函数在目标值处的泰勒展开式的项数,来对激活函数在自变量处的函数值的结果误差进行调整。
接下来,根据用户对精度等级的不同配置,介绍运算系统100对激活函数在自变量处的函数值的结果误差的调整,下面分3种情况进行介绍。
需要说明的是,本申请中介绍的最高等级、最低等级均是相对而言的,也就是说,最高等级与最低等级相比,最高等级较高。
第一种:精度等级为最低等级。
精度等级为最低等级时,激活函数在自变量处的结果误差最大。在一些实施例中,交互子系统120接收的用户配置的精度等级为最低等级,通信单元122将该最低等级传输给运算子系统140。运算单元144根据该最低等级确定需要获取激活函数在目标值处的泰勒展开式的前1项。
以上述Tanh函数为例,运算单元144获取Tanh函数在目标值x0处的泰勒展开式的前1项,本实施例中为Tanh(x0),Tanh(x0)为激活函数Tanh在x0处的函数值,将Tanh(x0)作为激活函数Tanh在自变量处的函数值,即另Tanh(x)=Tanh(x0)。
第一种情况中,运算单元144仅需要获得激活函数在目标值处的泰勒展开式的第一项,将该第一项作为激活函数在自变量处的函数值,无需后续进行加法和乘法运算,对于精度等级要求较低的机器学习模型,降低了计算激活函数的函数值的时延。
第二种:精度等级为最高等级。
精度等级为最高等级时,激活函数在自变量处的结果误差最小。在一些实施例中,交互子系统120接收的用户配置的精度等级为最高等级,通信单元122将该最高等级传输给运算子系统140。运算单元144根据该最高等级确定需要获取激活函数在目标值处的泰勒展开式的前Q项和余项。其中,Q为大于等于1的整数。
Q的取值与运算系统100对精度等级的划分情况相关,例如,当精度等级分为3个等级时,Q为2。当精度等级分为4个等级时,Q为3。本领域技术人员可以根据精度等级的划分情况来设置Q的具体值。作为一种可能的实现方式,Q=A-1,其中A为精度等级的个数。
为了便于本领域技术人员理解,下面以A=3为例来介绍。
当A=3时,即Q=2。以上述Tanh函数为例,运算单元144获取Tanh函数在目标值x0处的泰勒展开式的前2项以及余项,其中前2项为Tanh(x0)和Tanh′(x0)(x-x0),余项为R1(x)。Tanh(x0)+Tanh′(x0)(x-x0)+R1(x)为激活函数Tanh在x0处的函数值,运算单元144将Tanh(x0)+Tanh′(x0)(x-x0)+R1(x)作为激活函数Tanh在自变量处的函数值,即另Tanh(x)=Tanh(x0)+Tanh′(x0)(x-x0)+R1(x)。
第三种:精度等级介于最高等级和最低等级之间。
交互子系统120接收到的用户配置的精度等级介于最高等级和最低等级之间,例如中间等级。通信单元122将该中间等级传输给运算子系统140。运算单元144根据该中间等级确定需要获取激活函数在目标值处的泰勒展开式的前W项。其中,W为大于等于2的整数。该中间等级与最低等级相比,等级较高,与最高等级相比,等级较低。W的取值与用户配置的精度等级相关,在用于配置的精度等级比最低等级高且低于最高等级时,每增加一个等级,W的取值增加1,其中,W最小取值为2。举例说明,当精度等级的个数为5时,最低等级为1等级,最高等级为5等级,用户配置的精度等级可以为2等级、3等级或4等级。例如用户配置的精度等级为2等级时,W=2,精度等级为3等级时,W=3,精度等级为4等级时,W=4。
为了便于本领域技术人员理解,下面以用户配置的精度等级为2等级为例来介绍。
当W=2时,以上述Tanh函数为例,运算单元144获取Tanh函数在目标值x0处的泰勒展开式的前2项,其中前2项为Tanh(x0)和Tanh′(x0)(x-x0)。Tanh(x0)+Tanh′(x0)(x-x0)为激活函数Tanh在x0处的函数值,运算单元144将Tanh(x0)+Tanh′(x0)(x-x0)作为激活函数Tanh在自变量处的函数值,即另Tanh(x)=Tanh(x0)+Tanh′(x0)(x-x0)。
接下来,对本申请实施例提供的一种基于硬件芯片的激活函数处理方法进行介绍,该方法可以通过运算系统100实现。
参见图2,该图为本申请实施例提供的一种激活函数处理方法的流程图。
该方法包括:
S201:运算系统100接收用户配置的精度等级。
在一些实施例中,运算系统100可以通过GUI接收用户配置的精度等级,具体地,可以是用户在GUI界面中输入的精度等级,也可以是用户在GUI界面中提供的待选精度等级中选择的精度等级。
S202:运算系统100根据精度等级,确定需要获取的激活函数在目标值处的泰勒展开式的项数。
目标值从预设定义域内选出,该目标值与自变量最接近且小于自变量的值。以预设定义域为[0.0625,5.0625]为例,最小的目标值可以与边界值相等,即目标值等于初始值,例如目标值和初始值均为0.0625。
精度等级与项数正相关,精度等级越高时,需要获取的激活函数在目标值处的泰勒展开式的项数越多。以Tanh函数为例,该激活函数在目标值处的展开式如下:
其中,x0为目标值,Tanh′(x0)为Tanh函数在目标值x0处的一阶导数的值,x为自变量,Rn(x)为n阶泰勒余项。在本实施例中,定义Tanh(x0),Tanh′(x0),Tanh″(x0)/2……Tanh(n)(x0)/n!为多项式的系数。
S203:运算系统100根据项数,确定激活函数在自变量处的函数值。
运算系统100确定需要获取的激活函数在目标值处的泰勒展开式的项数后,即可根据该项数来确定激活函数在自变量处的函数值。
为了便于本领域技术人员理解,下面结合具体例子来说明。
参见图3,该图为本申请实施例提供的一种运算系统100的内部执行逻辑图。在该图中,将精度等级划分为四个等级,例如:精度等级L包括最低等级(1等级)、低等级(2等级)、高等级(3等级)、最高等级(4等级)。因此,仅需要确定激活函数在目标值处的泰勒展开式的前3项和余项,进而根据不同的精度等级,返回不同的项数,根据项数来确定激活函数在自变量处的函数值。
具体地,该执行逻辑包括:
S301:获取自变量x和用户输入的精度等级L。
其中,L≥1,且L为整数。
S302:判断精度等级L是否为1或者精度等级L大于4,若是,则执行S303;若否,则执行S304。
S303:返回Tanh(x0)。
S304:根据精度等级L跳转;若L=2,则跳转S305;若L=3,则跳转S306;若L=4则跳转S307。(x-x0)Tanh'(x0)+(x-x0)2(Tanh”(x0))/2!+R2(x)
S305:返回Tanh(x0)+Tanh′(x0)(x-x0)。
其中,L=1时,运算系统100的计算延迟最低,随着L的增加,运算系统100需要做加法和乘法运算,因此,计算延迟会稍有增加。但是,对于每项的系数与多项式的乘法运算可以同步进行,由此能够降低一部分计算时延。
一方面,该方法支持用户对激活函数在自变量处的结果误差配置,由此该方法能够适应不用的场景下的激活函数的运算,例如,对精度等级要求不同的机器学习模型。另一方面,该方法能够根据精度等级确定的激活函数在目标值处的泰勒展开式的项数,由此在集成电路的内部能实现同时计算激活函数在目标值处的展开多项式的各项值,降低了计算激活函数在目标值处的多项式的时延,即缩短了确定激活函数在自变量处的函数值的时间,提高了获取激活函数在自变量处的函数值的效率。
以上结合图1至图3对本申请实施例提供的激活函数处理方法进行介绍,接下来结合附图4对本申请实施例提供的激活函数处理装置以及用于实现激活函数处理装置功能的计算设备进行介绍。
如图4所示,本申请实施例还提供一种激活函数处理装置600,该装置600用于执行前述激活函数处理方法。本申请实施例对该装置600中的功能模块的划分不做限定,下面示例性地提供一种功能模块的划分:
激活函数处理装置600包括:接收模块602、确定模块604、运算模块606所述接收模块602,用于接收用户配置的精度等级;所述精度等级用于描述所述激活函数在自变量处的结果误差;所述确定模块604,用于根据所述精度等级,确定需要获取的所述激活函数在目标值处的泰勒展开式的项数;所述目标值基于所述自变量确定;所述运算模块606,用于根据所述项数,确定所述激活函数在所述自变量处的函数值。
上述激活函数处理装置600可以通过计算设备实现。图5提供了一种计算设备,如图5所示,计算设备800具体可以用于实现上述图4所示实施例中激活函数处理装置600的功能。
计算设备800包括总线801、处理器802、显示器803和存储器804。处理器802、存储器804和显示器803之间通过总线801通信。
处理器802可以为中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
显示器803是一种输入输出(input/output,I/O)设备。该设备可以将电子文件如图像、文字显示到屏幕上,以供用户查看。根据制造材料不同,显示器803可以分为液晶显示器(liquid crystal display,LCD)、有机电激光(organic light emitting diode,OLED)显示器等。具体地,显示器803可以通过GUI接收用户配置的精度等级;所述精度等级用于描述所述激活函数在自变量处的结果误差。
存储器804可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器804还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard drivedrive,HDD)或固态硬盘(solid state drive,SSD)。
存储器804中存储有可执行的程序代码,处理器802执行该可执行的程序代码以执行前述激活函数处理方法。具体地,处理器802执行上述程序代码,以控制显示器803通过GUI接收用户配置的精度等级;所述精度等级用于描述所述激活函数在自变量处的结果误差,然后处理器802根据所述精度等级,确定需要获取的所述激活函数在目标值处的泰勒展开式的项数;所述目标值基于所述自变量确定;根据所述项数,确定所述激活函数在所述自变量处的函数值。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述应用于硬件芯片的激活函数处理方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置和设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元及模块可以是或者也可以不是物理上分开的。另外,还可以根据实际的需要选择其中的部分或者全部单元和模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
以上,仅是本申请的较佳实施例而已,并非对本申请作任何形式上的限制。虽然本申请已以较佳实施例揭露如上,然而并非用以限定本申请。任何熟悉本领域的技术人员,在不脱离本申请技术方案范围情况下,都可利用上述揭示的方法和技术内容对本申请技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本申请技术方案保护的范围内。
Claims (10)
1.一种基于集成电路的激活函数处理方法,其特征在于,包括:
接收用户配置的精度等级;所述精度等级用于描述所述激活函数在自变量处的结果误差;
根据所述精度等级,确定需要获取的所述激活函数在目标值处的泰勒展开式的项数;所述目标值基于所述自变量确定;
根据所述项数,确定所述激活函数在所述自变量处的函数值。
2.根据权利要求1所述的方法,其特征在于,所述根据所述精度等级,确定需要获取的所述激活函数在目标值处的泰勒展开式的项数,包括:
若所述精度等级为最低等级,则确定需要获取所述激活函数在目标值处的泰勒展开式的前1项。
3.根据权利要求2所述的方法,其特征在于,所述根据所述项数,确定所述激活函数在所述自变量处的函数值,包括:
根据所述激活函数在所述目标值处的泰勒展开式的前1项,确定所述激活函数在所述目标值处的函数值,将所述函数值作为所述激活函数在所述自变量处的函数值。
4.根据权利要求1所述的方法,其特征在于,所述根据所述精度等级,确定需要获取的所述激活函数在目标值处的泰勒展开式的项数,包括:
若所述精度等级为最高等级,则确定需要获取所述激活函数在目标值处的泰勒展开式的项数包括前Q项和余项,Q为大于等于1的整数。
5.根据权利要求4所述的方法,其特征在于,所述根据所述项数,确定所述激活函数在所述自变量处的函数值,包括:
将所述前Q项的多项式之和与所述余项的近似值的和作为所述激活函数在所述自变量处的函数值。
6.根据权利要求1所述的方法,其特征在于,所述根据所述精度等级,确定需要获取的所述激活函数在目标值处的泰勒展开式的项数,包括:
若所述精度等级介于最高等级和最低等级之间,则确定需要获取所述激活函数在目标值处的泰勒展开式的项数包括前W项,W为大于等于2的整数。
7.根据权利要求6所述的方法,其特征在于,所述根据所述项数,确定所述激活函数在所述自变量处的函数值,包括:
将所述前W项的多项式之和作为所述激活函数在所述自变量处的函数值。
8.一种基于集成电路的激活函数处理装置,其特征在于,包括:接收模块,确定模块和运算模块;
所述接收模块,用于接收用户配置的精度等级;所述精度等级用于描述所述激活函数在自变量处的结果误差;
所述确定模块,用于根据所述精度等级,确定需要获取的所述激活函数在目标值处的泰勒展开式的项数;所述目标值基于所述自变量确定;
所述运算模块,用于根据所述项数,确定所述激活函数在所述自变量处的函数值。
9.一种计算设备,其特征在于,包括:
存储器,用于存储计算机程序,并将所述计算机程序传输给所述处理器;
处理器,用于根据所述计算机程序中的指令执行权利要求1至7中任一项所述的激活函数处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储运算系统所用的计算机软件指令,当所述计算机可读存储介质在计算机上运行时,使得计算机可以执行上述权利要求1至7中任一项所述的激活函数处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011625108.1A CN112686392A (zh) | 2020-12-30 | 2020-12-30 | 基于集成电路的激活函数处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011625108.1A CN112686392A (zh) | 2020-12-30 | 2020-12-30 | 基于集成电路的激活函数处理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112686392A true CN112686392A (zh) | 2021-04-20 |
Family
ID=75454023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011625108.1A Pending CN112686392A (zh) | 2020-12-30 | 2020-12-30 | 基于集成电路的激活函数处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112686392A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113379031A (zh) * | 2021-06-01 | 2021-09-10 | 北京百度网讯科技有限公司 | 神经网络的处理方法、装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6363405B1 (en) * | 1997-12-24 | 2002-03-26 | Elbrus International Limited | Computer system and method for parallel computations using table approximation methods |
CN112000990A (zh) * | 2020-10-27 | 2020-11-27 | 支付宝(杭州)信息技术有限公司 | 隐私保护的数据处理方法、装置、设备及机器学习系统 |
-
2020
- 2020-12-30 CN CN202011625108.1A patent/CN112686392A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6363405B1 (en) * | 1997-12-24 | 2002-03-26 | Elbrus International Limited | Computer system and method for parallel computations using table approximation methods |
CN112000990A (zh) * | 2020-10-27 | 2020-11-27 | 支付宝(杭州)信息技术有限公司 | 隐私保护的数据处理方法、装置、设备及机器学习系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113379031A (zh) * | 2021-06-01 | 2021-09-10 | 北京百度网讯科技有限公司 | 神经网络的处理方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10460230B2 (en) | Reducing computations in a neural network | |
US8713489B2 (en) | Simulation parameter correction technique | |
US11093817B2 (en) | Information processing device and information processing method | |
US10877962B2 (en) | Deferred update of database hashcode in blockchain | |
US10877733B2 (en) | Segment divider, segment division operation method, and electronic device | |
US10810464B2 (en) | Information processing apparatus, information processing method, and storage medium | |
CN111079944B (zh) | 迁移学习模型解释实现方法及装置、电子设备、存储介质 | |
CN112541310B (zh) | 逻辑综合控制方法及装置 | |
JP2012208924A (ja) | 適応的重み付けを用いた様々な文書間類似度計算方法に基づいた文書比較方法および文書比較システム | |
CN107798332B (zh) | 一种用户行为预测方法及装置 | |
US11948053B2 (en) | Inferencer graph for implementing machine learning model topology | |
US20220309331A1 (en) | Error compensation in analog neural networks | |
KR20220013896A (ko) | 프로세서의 신경망 아키텍처를 결정하기 위한 방법 및 장치 | |
CN112686392A (zh) | 基于集成电路的激活函数处理方法、装置、设备及介质 | |
US20210019570A1 (en) | Dynamic minibatch sizes | |
EP3051528A1 (en) | Method of compensating image information and image information compensation device | |
US20200356867A1 (en) | Reduction of edges in a knowledge graph for entity linking | |
US10552173B2 (en) | Methods and apparatus to configure parameters of a high-speed input-output interface | |
US20220414461A1 (en) | Inference method, information processing apparatus, and computer-readable recording medium | |
CN115204192A (zh) | 终端设备的ai推理性能评测方法及装置、存储介质、终端 | |
US8676547B2 (en) | Parameter extraction method | |
US10482157B2 (en) | Data compression apparatus and data compression method and storage medium | |
CN109492759B (zh) | 神经网络模型预测方法、装置和终端 | |
JP2020190896A (ja) | 情報処理装置、情報処理プログラム及び制御方法 | |
US20210081783A1 (en) | Information processing apparatus, method of processing information, and non-transitory computer-readable storage medium for storing information processing program |
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 |