CN110796246A - 一种基于线性分段的激活函数的硬件实现电路和方法 - Google Patents
一种基于线性分段的激活函数的硬件实现电路和方法 Download PDFInfo
- Publication number
- CN110796246A CN110796246A CN201911037850.8A CN201911037850A CN110796246A CN 110796246 A CN110796246 A CN 110796246A CN 201911037850 A CN201911037850 A CN 201911037850A CN 110796246 A CN110796246 A CN 110796246A
- Authority
- CN
- China
- Prior art keywords
- fixed
- bit width
- data
- module
- point
- 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
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
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (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)
- Logic Circuits (AREA)
Abstract
本发明公开了一种基于线性分段的激活函数的硬件实现电路,包括控制器模块、地址产生模块、数据分发模块、初始化模块、激活函数模块;控制器模块用于配置定点位宽和定点整数位宽并送入到地址产生模块和数据分发模块,地址产生模块找到对应数据地址通过数据分发模块读取数据送入到初始化模块,然后初始化模块将数据送入到计算阵列中的激活函数模块,最后写入到SRAM相应位置;初始化模块根据神经网络应用场景和深度的不同改变定点整数位宽和定点小数位宽,并以此对线性分段的斜率和截距进行定点化表示,重构查找表。本发明同时提供一种方法,根据任意定点整数位宽来重新定点化表示斜率与截距,重构查找表,有效地节约运算资源、提高计算速度。
Description
技术领域
本发明属于人工神经网络领域,更具体地说,涉及一种基于线性分段的激活函数的硬件实现电路和方法。
背景技术
人工神经网络(artificial neural network,ANN),简称神经网络(neuralnetwork,NN)或类神经网络,是一种模仿生物神经网络的结构和功能的数学模型或计算模型,用于对函数进行估计、近似或预测。
神经网络主要是由输入层、隐藏层、输出层构成。神经网络有单层神经网络(只有一个隐藏层和输入层)和多层神经网络。实际中,网络输入层的每个神经元代表了一个特征,输出层个数代表了分类标签的个数(在做二分类时,如果采用sigmoid函数分类器,输出层的神经元个数为1个;如果采用softmax函数分类器,输出层神经元个数为2个),而隐藏层层数以及隐藏层神经元是由人工设定。
对于一个二分类问题,有些情况是线性不可分的问题,无法用一条直线将两种情况完全分开。如果用不带激活函数的单层感知机来解决,单层感知机依旧是只能画出一条直线,无法进行复杂的二分类情况,解决不了线性不可分的情况。
对于不带激活函数的单层感知机解决不了的问题,也可以用不带激活函数的多层感知机来解决,根据多层感知机公式y=w2-1(w1-11x1+w1-21x2+b1-1)+w2-2(w1-12x1+w1-22x2+b1-2)+w2-3(w1-13x1+w1-23x2+b1-3)可以看出多层感知机还是一个关于x1和x2的线性表达式,合并后的多个感知机本质上还是一个线性分类器,依旧无法解决非线性问题。而随着深度学习技术的不断发展,需要解决的问题越来越复杂,神经网络必然地走向了网络层次“越来越深”的方向。这就对计算资源提出了极高的要求和挑战。另外,在神经网络的设计过程中,通常都是采用浮点数进行运算。但浮点数运算相对于定点运算单元而言,存在占用资源多、功耗高等问题。而定点化神经网络,有一个必须解决的问题是数据溢出。
如果神经网络的所有的隐藏层和输出层都加上一个激活函数,这样输出就是一个非线性函数,使得神经网络可以逼近任意非线性函数,神经网络就可以应用到非线性模型中。激活函数的优点如下:
1、便于求导的平滑函数;
2、使结果映射到小区间,保证数据幅度不会有问题;
3、有益于神经网络前向传播和反向传播。
目前常用的激活函数有:sigmoid函数、tanh函数、Relu函数和softmax函数等。其中sigmoid函数是一个生物学中常见的S型函数,由于其单增以及反函数单增等性质,因此常被用作神经网络的激活函数,结果映射到(0,1)之间。在特征相差比较复杂或是相差不是特别大时效果比较好。公式为:
图1是sigmoid函数的原理图,函数在定义域内为连续和光滑函数,函数的结果映射在(0,1)之间,并且函数收敛,当sigmoid函数小于-8可以近似为0,大于8可以近似为1,适合用于线性分段。
tanh函数是双曲函数中的一个,在数学中,双曲正切tanh函数是由双曲正弦和双曲余弦这两种基本双曲函数推导而来,公式为:
图2是tanh函数的原理图,函数在定义域内为连续和光滑函数,函数的结果映射在(-1,1)之间,并且函数收敛,当tanh函数小于-8可以近似为-1,大于8可以近似为1,适合用于线性分段。
对于sigmoid函数和tanh函数在区间(-8,8),精度为0.001情况下通过线性分段的方式,sigmoid函数共分成28段,而tanh函数分为20段。
发明内容
1.要解决的问题
针对现有技术中存在的运算效率低及数据溢出等问题,本发明提供一种基于线性分段的激活函数的硬件实现电路和方法。
2.技术方案
为了解决上述问题,本发明所采用的技术方案如下:一种基于线性分段的激活函数的硬件实现电路,包括:控制器模块、地址产生模块、数据分发模块、初始化模块和激活函数模块,其中,所述地址产生模块包括写结果地址产生模块,数据分发模块包括结果数据分发模块,所述控制器模块用于配置定点位宽和定点整数位宽,并将定点位宽和定点整数位宽送入到数据分发模块,数据分发模块将定点位宽和定点整数位宽发送给初始化模块,地址产生模块找到对应数据地址通过数据分发模块读取待处理数据送入到初始化模块,初始化模块根据定点位宽和定点整数位宽重构查找表并将待处理数据输送给激活函数模块,激活函数模块包括sigmoid函数和tanh函数;激活函数模块对待处理数据进行处理,然后通过结果数据分发模块和写结果地址产生模块将激活函数模块处理后的数据写入到SRAM相应位置。本发明通过初始化模块根据任意定点整数位宽来重新定点化表示斜率与截距,重构出新的查找表,有效地节约运算资源和提高计算速度。
进一步地,所述初始化模块以定点位宽和定点整数位宽对线性分段的斜率、截距和线性分段区间进行定点化表示,若斜率、截距和线性分段区间的整数位不大于定点整数位宽,则用定点整数位宽来表示斜率、截距和线性分段区间的整数;若斜率、截距和线性分段区间的整数位大于定点整数位宽,则通过定点运算溢出,将斜率、截距和线性分段区间赋值为定点所能表达的极值,定点小数位截取斜率、截距和线性分段区间的小数位前X-1-Y位,最后用定点数据构成重构的查找表,所述定点数据包括斜率、截距和线性分段区间,其中,X为定点运算位宽,其中一位为符号位;Y为定点整数位宽。一般来说,定点位宽X的值为8或者16,相应地,Y≤于X-1。该技术方案进一步明确了初始化模块重构查找表的过程,通过查找表方式来计算结果,降低了计算复杂度并且大大降低了运算时间。
进一步地,sigmoid函数和tanh函数首先对待处理数据进行定点化处理,根据定点整数位宽来表示线性分段区间坐标,然后根据待处理数据的线性分段区间坐标在查找表中找到所属的线性分段区间、斜率和截距,激活函数模块将待处理数据与在查找表中查找到的斜率相乘后,再与在查找表中查找到的截距相加得到结果。
本发明同时提供一种基于线性分段的激活函数实现方法,包括以下步骤:
S1、外部的源数据从DDR中按照顺序搬运到bank中,先搬运到第一个bank,然后第二个,直到遍历源数据bank;数据分发模块根据地址产生模块输出的地址从源数据bank中读取待处理数据;
S2、控制器模块配置定点位宽和定点整数位宽,初始化模块根据定点位宽和定点整数位宽重构查找表;激活函数模块对待处理数据进行定点运算得到结果;
S3、通过数据分发模块和地址产生模块将结果存回到SRAM上;
S4、将SRAM中数据搬到DDR。
进一步地,所述步骤S2包括以下步骤:
S21、初始化模块根据定点位宽和定点整数位宽Y来调整线性分段区间、斜率和截距的定点表达方式,重构出查找表;
S22、激活函数模块根据定点整数位宽Y把待处理数据调整为定点,通过查找表寻找到正确的线性分段区间、斜率、截距;
S23、激活函数模块将待处理数据与查找到的斜率相乘后,再与查找到的截距相加得到结果,结果存储到SRAM。
进一步地,所述步骤S21包括:初始化模块以定点位宽和定点整数位宽对线性分段的斜率、截距和线性分段区间进行定点化表示,若斜率、截距和线性分段区间的整数位不大于定点整数位宽,则用定点整数位宽来表示斜率、截距和线性分段区间的整数;若斜率、截距和线性分段区间的整数位大于定点整数位宽,则通过定点运算溢出,将斜率、截距和线性分段区间赋值为定点所能表达的极值,定点小数位截取斜率、截距和线性分段区间的小数位前X-1-Y位,最后用定点数据构成查找表,所述定点数据包括斜率、截距和线性分段区间,其中,X为定点运算位宽,其中一位为符号位;Y为定点整数位宽。本发明通过改变定点整数位宽有效防止了定点运算溢出情况。
进一步地,所述步骤S22包括:sigmoid函数和tanh函数首先对待处理数据进行定点化处理,根据定点整数位宽Y对线性分段区间坐标进行定点化表示,然后根据待处理数据在查找表中找到线性分段区间坐标所属的线性分段区间、斜率和截距。
进一步地,所述步骤S23包括以下步骤:激活函数模块将待处理数据与斜率符号位进行同或运算,运算结果作为定点相乘符号位,待处理数据与斜率整数和小数位结果相乘为2*(X-1)位宽,截取低X-1-Y位到2*(X-1)-1-Y位为定点相乘结果;通过判断定点相乘结果的符号位和截距符号位的关系,将两者按定点相加得到结果并将结果存储到SRAM;其中,X为定点运算位宽,其中一位为符号位;Y为定点整数位宽,X-1-Y为定点小数位宽。
在计算资源和存储资源固定的情况下,用线性分段方式可以实现流水计算并且只需要一个周期就可以得到结果,能够有效提高运算资源和存储资源利用率。
3.有益效果
相比于现有技术,本发明的有益效果为:
(1)本发明初始化模块能够根据任意定点整数位宽来重新定点化表示斜率与截距,重构出新的查找表,有效地节约运算资源和提高计算速度;
(2)本发明通过查找表方式来计算结果,降低了计算复杂度并且大大降低了运算时间;
(3)本发明通过改变定点整数位宽有效防止了定点运算溢出情况。
附图说明
图1为sigmoid函数原理图;
图2为tanh函数原理图;
图3是本发明的架构图;
图4是本发明中存储阵列映射图;
图5是本发明的流程图;
图6是本发明中数据乒乓示意图;
图7是本发明中激活函数模块运算结构图。
具体实施方式
下面结合具体实施例对本发明进一步进行描述。
本发明主要是针对sigmoid函数和tanh函数实现,如图3所示,本发明包括控制器模块、地址产生模块、数据分发模块、初始化模块、激活函数模块。其中,地址产生模块包括读源数据产生模块和写结果地址产生模块,数据分发模块包括源数据分发模块和结果数据分发模块,激活函数模块包括sigmoid函数(S型生长曲线)和tanh函数(双曲正切函数)。控制器模块用于配置运算所需要的定点位宽、定点整数位宽并将定点位宽、定点整数位宽送入到数据分发模块,数据分发模块将定点位宽、定点整数位宽送入到初始化模块,地址产生模块找到对应数据地址通过数据分发模块读取源数据bank中的待处理数据送入到初始化模块,然后初始化模块将待处理数据再送入sigmoid函数和tanh函数,最后通过结果数据分发模块和写结果地址产生模块写入到SRAM(Static Random-Access Memory,静态随机存取存储器)相应位置。在计算资源和存储资源固定的情况下,用线性分段方式可以实现流水计算并且只需要一个周期就可以得到结果,根据计算阵列中的计算资源,对分别执行相同操作的运算可以实现空间上的并行操作,从而提高运算速度、节约运算资源。
图4是本发明的存储阵列映射图,在本实施例中,设定存储资源分为32N个bank(N为正整数),每个bank的深度为M,分配16N个bank乒乓存储tanh或者sigmoid的源数据,16N个bank乒乓存储经过tanh或者sigmoid的结果数据,根据计算阵列资源,可以采用64路并行计算。
图5是本发明的流程图,具体步骤如下:
(1)、外部的源数据从DDR(Double Data Rate SDRAM,双倍速率SDRAM)中按照顺序搬运到bank中,先搬运到第一个bank,然后第二个,直到遍历源数据bank;
(2)、采用K路并行计算,通过地址产生模块和数据分发模块每次从源数据bank中分别取出K个数,其中K的值由存储资源、计算资源和计算需要来决定,当用户对计算效率要求高,而存储资源和计算资源又足以支撑时,K的值可以尽量地大;在本实施例中,存储资源为32N个bank,K的值为64。
(3)、通过控制器模块配置定点位宽和定点整数位宽,利用初始化模块重构查找表;根据输入数据(即,待处理数据)在查找表中找到相应线性分段区间,通过激活函数模块定点运算得到结果;
(4)、通过数据分发模块和地址产生模块将结果存回到SRAM上;
(5)、将SRAM中数据搬到DDR。
图6是本发明中数据乒乓示意图,因为输入数据和结果数据样本较大,输入数据和结果数据需要乒乓存储。
图7是初始化模块和激活函数模块运算结构图,其工作过程如下:
(1)、初始化模块根据定点整数位宽来调整斜率、截距和线性分段区间的定点表达方式,重构出查找表;具体为:接收外部设置的定点位宽和定点整数位宽,定点位宽和定点整数位宽根据神经网络应用场景和深度的不同来设置。控制器模块将定点位宽和定点整数位宽配置给数据分发模块,数据分发模块将定点位宽和定点整数位宽分发给初始化模块,初始化模块以定点位宽和定点整数位宽对预先经过matlab软件处理的线性分段的斜率、截距和线性分段区间进行定点化表示,若斜率、截距和线性分段区间的整数位不大于定点整数位宽,则用定点整数位宽来表示斜率、截距和线性分段区间的整数;若斜率、截距和线性分段区间的整数位大于定点整数位宽,则通过定点运算溢出,将斜率、截距和线性分段区间赋值为定点所能表达的极值,定点小数位截取斜率、截距和线性分段区间的小数位前X-1-Y位,最后用定点数据构成查找表(LUT,Look-Up-Table),所述定点数据包括斜率、截距和线性分段区间,其中,X为定点运算位宽,其中一位为符号位;Y为定点整数位宽。一般来说,定点位宽X的值为8或者16,在本实施例中,X取值16,相应地,Y≤X-1。
(2)、激活函数模块根据定点整数位宽Y把输入数据调整为定点,通过查找表寻找到正确线性分段区间;
具体为:sigmoid函数和tanh函数首先对输入数据进行定点化处理,根据定点整数位宽来表示线性分段区间坐标,然后根据线性分段区间在查找表找到对应的斜率和截距。
(3)、激活函数模块将输入数据与斜率相乘后,与截距相加得到结果,存储到SRAM。
具体为:输入数据包括整数位、小数位和符号位,斜率包括整数位、小数位和符号位,在进行计算时,先将输入数据与斜率的符号位同或运算,将结果作为定点相乘结果符号位,然后将输入数据的整数和小数位与斜率的整数和小数位相乘结果为2*(X-1)位宽,截取低X-1-Y位到2*(X-1)-1-Y位为定点相乘结果。通过判断定点相乘结果的符号位和截距符号位的关系,将两者按定点相加得到结果并将结果存储到SRAM;其中,X为定点运算位宽(其中一位为符号位,整数位和小数位不固定);Y为定点整数位宽,X-1-Y为定点小数位宽,在本实施例中X可以取16。
需要说明的是:本发明中所说的输入数据指的是从数据分发模块从源数据bank中读取并发出给初始化模块数据,初始化模块接收到数据后将该输入数据传送给激活函数模块。
本发明支持任意定点整数位宽和任意数据规模的运算,降低了传统硬件实现方式的计算量,权衡计算和存储资源实现最大化多路并行,可以有效地节约运算资源和提高计算速度。作为神经网络常用的激活函数,有着广泛的应用前景,针对不同的场合有良好的应用价值。
以上示意性地对本发明创造及其实施方式进行了描述,该描述没有限制性,在不背离本发明的精神或者基本特征的情况下,能够以其他的具体形式实现本发明。附图中所示的也只是发明的实施方式之一,实际的结构并不局限于此,权利要求中的任何附图标记不应限制所涉及的权利要求。所以,如果本领域的普通技术人员受其启示,在不脱离本创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本专利的保护范围。此外,“包括”一词不排除其他元件或步骤,在元件前的“一个”一词不排除包括“多个”该元件。产品权利要求中陈述的多个元件也可以由一个元件通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (8)
1.一种基于线性分段的激活函数的硬件实现电路,其特征在于:包括:控制器模块、地址产生模块、数据分发模块、初始化模块和激活函数模块,其中,所述地址产生模块包括写结果地址产生模块,数据分发模块包括结果数据分发模块,
所述控制器模块用于配置定点位宽和定点整数位宽,并将定点位宽和定点整数位宽送入到数据分发模块,数据分发模块将定点位宽和定点整数位宽发送给初始化模块,地址产生模块找到对应数据地址通过数据分发模块读取待处理数据送入到初始化模块,初始化模块根据定点位宽和定点整数位宽重构查找表并将待处理数据输送给激活函数模块,激活函数模块包括sigmoid函数和tanh函数;激活函数模块对待处理数据进行处理,然后通过结果数据分发模块和写结果地址产生模块将激活函数模块处理后的数据写入到SRAM相应位置。
2.根据权利要求1所述的基于线性分段的激活函数的硬件实现电路,其特征在于:所述初始化模块以定点位宽和定点整数位宽对线性分段的斜率、截距和线性分段区间进行定点化表示,若斜率、截距和线性分段区间的整数位不大于定点整数位宽,则用定点整数位宽来表示斜率、截距和线性分段区间的整数;若斜率、截距和线性分段区间的整数位大于定点整数位宽,则通过定点运算溢出,将斜率、截距和线性分段区间赋值为定点所能表达的极值,定点小数位截取斜率、截距和线性分段区间的小数位前X-1-Y位,最后用定点数据构成重构的查找表,所述定点数据包括斜率、截距和线性分段区间,其中,X为定点运算位宽,其中一位为符号位;Y为定点整数位宽。
3.根据权利要求1所述的基于线性分段的激活函数的硬件实现电路,其特征在于:sigmoid函数和tanh函数首先对待处理数据进行定点化处理,根据定点整数位宽来表示线性分段区间坐标,然后根据待处理数据的线性分段区间坐标在查找表中找到所属的线性分段区间、斜率和截距,激活函数模块将待处理数据与在查找表中查找到的斜率相乘后,再与在查找表中查找到的截距相加得到结果。
4.一种基于线性分段的激活函数的硬件实现方法,其特征在于:包括以下步骤:
S1、外部的源数据从DDR中按照顺序搬运到bank中,先搬运到第一个bank,然后第二个,直到遍历源数据bank;数据分发模块根据地址产生模块输出的地址从源数据bank中读取待处理数据;
S2、控制器模块配置定点位宽和定点整数位宽,初始化模块根据定点位宽和定点整数位宽重构查找表;激活函数模块对待处理数据进行定点运算得到结果;
S3、通过数据分发模块和地址产生模块将结果存回到SRAM上;
S4、将SRAM中数据搬到DDR。
5.根据权利要求4所述的基于线性分段的激活函数的硬件实现方法,其特征在于:所述步骤S2包括以下步骤:
S21、初始化模块根据定点位宽和定点整数位宽Y来调整线性分段区间、斜率和截距的定点表达方式,重构出查找表;
S22、激活函数模块根据定点整数位宽Y把待处理数据调整为定点,通过查找表寻找到正确的线性分段区间、斜率、截距;
S23、激活函数模块将待处理数据与查找到的斜率相乘后,再与查找到的截距相加得到结果,结果存储到SRAM。
6.根据权利要求4所述的基于线性分段的激活函数的硬件实现方法,其特征在于:所述步骤S21包括:初始化模块以定点位宽和定点整数位宽对线性分段的斜率、截距和线性分段区间进行定点化表示,若斜率、截距和线性分段区间的整数位不大于定点整数位宽,则用定点整数位宽来表示斜率、截距和线性分段区间的整数;若斜率、截距和线性分段区间的整数位大于定点整数位宽,则通过定点运算溢出,将斜率、截距和线性分段区间赋值为定点所能表达的极值,定点小数位截取斜率、截距和线性分段区间的小数位前X-1-Y位,最后用定点数据构成查找表,所述定点数据包括斜率、截距和线性分段区间,其中,X为定点运算位宽,其中一位为符号位;Y为定点整数位宽。
7.根据权利要求4所述的基于线性分段的激活函数的硬件实现方法,其特征在于:所述步骤S22包括:sigmoid函数和tanh函数首先对待处理数据进行定点化处理,根据定点整数位宽Y对线性分段区间坐标进行定点化表示,然后根据待处理数据在查找表中找到线性分段区间坐标所属的线性分段区间、斜率和截距。
8.根据权利要求4所述的基于线性分段的激活函数的硬件实现方法,其特征在于:所述步骤S23包括以下步骤:激活函数模块将待处理数据与斜率符号位进行同或运算,运算结果作为定点相乘符号位,待处理数据与斜率整数和小数位结果相乘为2*(X-1)位宽,截取低X-1-Y位到2*(X-1)-1-Y位为定点相乘结果;通过判断定点相乘结果的符号位和截距符号位的关系,将两者按定点相加得到结果并将结果存储到SRAM;其中,X为定点运算位宽,其中一位为符号位;Y为定点整数位宽,X-1-Y为定点小数位宽。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911037850.8A CN110796246A (zh) | 2019-10-29 | 2019-10-29 | 一种基于线性分段的激活函数的硬件实现电路和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911037850.8A CN110796246A (zh) | 2019-10-29 | 2019-10-29 | 一种基于线性分段的激活函数的硬件实现电路和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110796246A true CN110796246A (zh) | 2020-02-14 |
Family
ID=69441816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911037850.8A Pending CN110796246A (zh) | 2019-10-29 | 2019-10-29 | 一种基于线性分段的激活函数的硬件实现电路和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110796246A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035796A (zh) * | 2020-09-04 | 2020-12-04 | 金陵科技学院 | 面向集成电路的超低延时的整数次幂计算电路的优化方法 |
CN113377332A (zh) * | 2021-05-28 | 2021-09-10 | 南京大学 | 一种基于线性分段的softmax硬件实现方法 |
CN111581593B (zh) * | 2020-04-21 | 2023-09-05 | 天津大学 | 可配置重用的分段式查找表激活函数实现装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3035205A1 (en) * | 2014-12-19 | 2016-06-22 | Intel Corporation | Reconfigurable functional unit and method for artificial neural networks |
CN107305484A (zh) * | 2016-04-19 | 2017-10-31 | 北京中科寒武纪科技有限公司 | 一种非线性函数运算装置及方法 |
CN107729984A (zh) * | 2017-10-27 | 2018-02-23 | 中国科学院计算技术研究所 | 一种适用于神经网络激活函数的计算装置及方法 |
CN109508784A (zh) * | 2018-12-28 | 2019-03-22 | 四川那智科技有限公司 | 一种神经网络激活函数的设计方法 |
CN109523020A (zh) * | 2017-10-30 | 2019-03-26 | 上海寒武纪信息科技有限公司 | 一种运算装置和方法 |
-
2019
- 2019-10-29 CN CN201911037850.8A patent/CN110796246A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3035205A1 (en) * | 2014-12-19 | 2016-06-22 | Intel Corporation | Reconfigurable functional unit and method for artificial neural networks |
CN107305484A (zh) * | 2016-04-19 | 2017-10-31 | 北京中科寒武纪科技有限公司 | 一种非线性函数运算装置及方法 |
CN107729984A (zh) * | 2017-10-27 | 2018-02-23 | 中国科学院计算技术研究所 | 一种适用于神经网络激活函数的计算装置及方法 |
CN109523020A (zh) * | 2017-10-30 | 2019-03-26 | 上海寒武纪信息科技有限公司 | 一种运算装置和方法 |
CN109508784A (zh) * | 2018-12-28 | 2019-03-22 | 四川那智科技有限公司 | 一种神经网络激活函数的设计方法 |
Non-Patent Citations (3)
Title |
---|
HUAQING SUN ET AL.: "A Universal Method of Linear Approximation With Controllable Error for the Efficient Implementation of Transcendental Functions", 《IEEE》 * |
没落骑士: "利用FPGA进行基本运算及特殊函数定点运算", 《博客园HTTPS://WWW.CNBLOGS.COM/MOLUOQISHI/P/9951866.HTML》 * |
郭攀: "基于硬件IP核的嵌入式智能相机底层算法研究", 《中国优秀硕士学位论文全文数据库工程科技Ⅱ辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111581593B (zh) * | 2020-04-21 | 2023-09-05 | 天津大学 | 可配置重用的分段式查找表激活函数实现装置 |
CN112035796A (zh) * | 2020-09-04 | 2020-12-04 | 金陵科技学院 | 面向集成电路的超低延时的整数次幂计算电路的优化方法 |
CN112035796B (zh) * | 2020-09-04 | 2023-05-16 | 金陵科技学院 | 面向集成电路的超低延时的整数次幂计算电路的优化方法 |
CN113377332A (zh) * | 2021-05-28 | 2021-09-10 | 南京大学 | 一种基于线性分段的softmax硬件实现方法 |
CN113377332B (zh) * | 2021-05-28 | 2023-08-22 | 南京大学 | 一种基于线性分段的softmax硬件实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107169563B (zh) | 应用于二值权重卷积网络的处理系统及方法 | |
CN110796246A (zh) | 一种基于线性分段的激活函数的硬件实现电路和方法 | |
CN110097174B (zh) | 基于fpga和行输出优先的卷积神经网络实现方法、系统及装置 | |
CN111414994B (zh) | 一种基于FPGA的Yolov3网络计算加速系统及其加速方法 | |
CN103336758B (zh) | 一种采用带有局部信息的压缩稀疏行的稀疏矩阵存储方法及基于该方法的SpMV实现方法 | |
US11934826B2 (en) | Vector reductions using shared scratchpad memory | |
CN105488563A (zh) | 面向深度学习的稀疏自适应神经网络、算法及实现装置 | |
US11783200B2 (en) | Artificial neural network implementation in field-programmable gate arrays | |
CN101083643A (zh) | 一种低存储器开销的混合基fft处理器及其方法 | |
CN103902507A (zh) | 一种面向可编程代数处理器的矩阵乘法计算装置及方法 | |
CN103218348A (zh) | 快速傅里叶变换处理方法和系统 | |
Kumar et al. | Noise reduction using modified wiener filter in digital hearing aid for speech signal enhancement | |
CN113590195A (zh) | 支持浮点格式乘加的存算一体化dram计算部件设计 | |
CN113313244B (zh) | 面向加法网络的近存储神经网络加速器及其加速方法 | |
CN109697509B (zh) | 处理方法及装置、运算方法及装置 | |
Chen et al. | Hardware implementation of convolutional neural network-based remote sensing image classification method | |
CN112200310B (zh) | 智能处理器、数据处理方法及存储介质 | |
CN111882050A (zh) | 基于fpga的用于提高bcpnn速度的设计方法 | |
CN114897159B (zh) | 一种基于神经网络的快速推断电磁信号入射角的方法 | |
Guo et al. | BOOST: block minifloat-based on-device CNN training accelerator with transfer learning | |
Liu et al. | Implementation of neural network backpropagation in cuda | |
CN113378115B (zh) | 一种基于磁性随机存储器的近存稀疏向量乘法器 | |
CN109978143A (zh) | 一种基于simd架构的堆栈式自编码器及编码方法 | |
Juracy et al. | A comprehensive evaluation of convolutional hardware accelerators | |
He et al. | ApproxEye: Enabling approximate computation reuse for microrobotic computer vision |
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: 20200214 |
|
RJ01 | Rejection of invention patent application after publication |