CN110135086A - 计算精度可变的softmax函数硬件电路及其实现方法 - Google Patents

计算精度可变的softmax函数硬件电路及其实现方法 Download PDF

Info

Publication number
CN110135086A
CN110135086A CN201910419874.3A CN201910419874A CN110135086A CN 110135086 A CN110135086 A CN 110135086A CN 201910419874 A CN201910419874 A CN 201910419874A CN 110135086 A CN110135086 A CN 110135086A
Authority
CN
China
Prior art keywords
module
value
input data
data
function
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
Application number
CN201910419874.3A
Other languages
English (en)
Other versions
CN110135086B (zh
Inventor
杜高明
田超
张多利
李桢旻
尹勇生
宋宇鲲
王晓蕾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei University of Technology
Original Assignee
Hefei University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hefei University of Technology filed Critical Hefei University of Technology
Priority to CN201910419874.3A priority Critical patent/CN110135086B/zh
Publication of CN110135086A publication Critical patent/CN110135086A/zh
Application granted granted Critical
Publication of CN110135086B publication Critical patent/CN110135086B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Power Sources (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明公开了一种计算精度可变的softmax函数硬件电路及其实现方法,该硬件电路包括:最大值模块、映射模块、类别FIFO模块、概率FIFO模块、指数函数模块、加法器模块、自然对数模块、和减法器模块;最大值模块寻找输入数据的最大值;映射模块调整输入数据到筛选区间内;类别FIFO模块存储有效数据的位置;概率FIFO模块存储有效数据的数值;指数函数模块用于计算以自然常数e为底的指数函数;加法器模块累加指数函数模块输出值;自然对数模块计算自然对数函数;减法器模块计算概率FIFO模块和自然对数模块输出值的差。本发明能根据神经网络分类的统计规律动态调整计算量和精度,从而在降低延迟的同时降低功耗面积并提升电路频率。

Description

计算精度可变的softmax函数硬件电路及其实现方法
技术领域
本发明属于集成电路的现场可编程门阵列(FieldProgrammable Gate Array,FPGA)设计技术领域,尤其涉及一种计算精度可变的高速softmax函数硬件系统及其实现方法。
背景技术
2012年,AlexNet夺得大规模视觉识别挑战的冠军,深度神经网络重新成为研究热点。目前,深度神经网络是目标检测和语音识别等领域最流行的技术之一。虽然神经网络的功能和结构各异,但是他们共享诸如卷积层、池化层、全连接层和softmax层等基本组件层。最近与卷积层、池化层和全连接层硬件实现相关的研究极大地提升了神经网络的性能并有效地缩短了神经网络的推理时间。然而,很少有研究者触及softmax层硬件实现相关的研究;
虽然目前的softmax硬件架构能够实现基本功能,但是这些架构也存在着局限性:
1)不能充分利用softmax层输入数据的特点而造成硬件复杂度的提升;
2)softmax硬件架构中的指数函数模块计算精度不足和自然对数模块的精度不稳定而造成系统计算精度较低;
3)softmax硬件架构的数据预处理方法不合理,大量数据拥挤在较小的区间内造成硬件资源的浪费。
指数函数模块和自然对数模块是softmax硬件架构延迟的主要来源,如何缩短关键路径的长度来提升系统的综合频率也是一个急需解决的问题。
发明内容
本发明为了解决上述现有技术存在的不足之处,提出了一种计算精度可变的softmax函数硬件系统及其实现方法,以期能充分利用softmax层输入数据的特点,从而能有效减少计算量,降低延迟的同时降低功耗。
本发明为达到上述目的所采用的技术方案是:
本发明一种计算精度可变的softmax函数硬件电路的特点包括:最大值模块、映射模块、类别FIFO模块、概率FIFO模块、指数函数模块、加法器模块、自然对数模块和减法器模块;
定义输入数据的数量为DN;定义当前输入数据为第i个输入数据,并初始化i=1;令第i-1个输入数据为所述最大值模块预先存储的初值;其中,DN为大于1的整数,i为小于DN的整数;
所述最大值模块接收外部输入的第i个输入数据,并与第i-1个输入数据进行比较,若第i个输入数据大于第i-1个输入数据,则将第i个输入数据作为预处理数据存入概率FIFO模块,并将位置序号i存入类别FIFO模块;否则,所述最大值模块接收外部输入的第i+1个输入数据并与第i-1个输入数据进行比较和存储,直到i>DN为止,从而得到DN个输入数据中的最大值以及存储在概率FIFO模块中的所有预处理数据和相应存储在类别FIFO模块中的位置序号;
所述映射模块根据所述最大值模块输出的最大值,设定筛选区间;再根据所述筛选区间设定映射区间后,从所述概率FIFO模块和类别FIFO模块中分别取出所有预处理数据及其对应的位置序号,并在所有预处理数据中选出处于所述筛选区间内的数据作为有效数据并调整到映射区间中,得到映射数据并存入概率FIFO模块中,同时将有效数据所对应的位置序号存储在类别FIFO模块中;
所述指数函数模块根据所述类别FIFO模块中存储的数据量选择计算精度,再以自然常数e为底数,分别计算以映射数据为指数的函数,从而得到满足计算精度的相应的指数函数值;
所述加法器模块将所述指数函数模块输出的所有指数函数值进行累加,得到累加值并传递给所述自然对数模块;
所述自然对数模块以所述累加值为真数,计算自然对数,得到对数函数值;
所述减法器模块从所述概率FIFO模块取出所有有效数据,并分别与所述对数函数值进行减法运算,得到相应的差值传递给所述指数函数模块;
所述指数函数模块以自然常数e为底数,分别计算以各个差值为指数的函数,从而得到相应的softmax函数值,同时根据softmax函数值从所述类别FIFO模块中获取相应的位置序号并分别作为神经网络识别概率和类别。
本发明所述的softmax函数硬件电路的特点也在于,所述指数函数模块是由一个译码器、一个地址译码器、N个ROM、N-1个乘法器和一个多路选择器组成;其中,N为大于1的整数;
所述译码器根据类别FIFO中的数据量进行译码,得到决定计算精度的N个查找表地址的开关信号和一个输出选择信号;
所述地址译码器将所述有效数据均分为N组,任意第n组包含m个二进制位和1个符号位,从而构成m+1个二进制位并作为第n个查找表的地址,从而得到N个查找表的地址;其中,n为小于N的整数,m为大于1的整数;
任意第n个ROM中存储有以自然常数e为底,以第n组的m+1个二进制位所对应的十进制数作为指数的函数值,从而实现第n个查找表功能;
所述N个查找表在N个查找表地址的开关信号的控制下接收所述地址译码器发送的N个查找表的地址,并输出选通的ROM中存储的函数值;
所述N-1个乘法器对所接收到的ROM中存储的函数值进行乘法运算,得到指数函数值;
所述多路选择器在所述输出选择信号的控制下将满足计算精度的指数函数值输出。
所述自然对数模块是由两个ROM、两个乘法器、一个移位器、一个减法器和一个加法器组成;
第一个ROM中存储有所述累加值整数部分的倒数,从而实现第N+1个查找表功能;
第二个ROM中存储有以所述累加值的整数部分为真数的自然对数值,从而实现第N+2个查找表功能;
第一个乘法器从所述第N+1个查找表取出倒数,并与所述累加值的小数部分进行乘法运算,得到的乘积传递给第二个乘法器;
所述第二个乘法器对所接收到的乘积进行平方运算,得到平方值传递给所述移位器;
由所述移位器对所述平方值进行右移一位操作,得到移位值;
所述减法器获取所述乘积,并与所述移位值进行减法运算,得到差值;
所述加法器获从第N+2个查找表中取出所述自然对数值,并与所述差值进行加法运算,从而得到对数函数值并输出。
本发明一种计算精度可变的softmax函数硬件电路的实现方法的特点是按如下步骤进行:
步骤1、定义输入数据的数量为DN;定义当前输入数据为第i个输入数据,并初始化i=1;令第i-1个输入数据为预先存储的初值;
步骤2、比较器将第i个输入数据与第i-1个输入数据进行比较,若第i个输入数据大于第i-1个输入数据,则存储第i个输入数据及其对应的位置序号i后,执行步骤3;否则,将第i-1个输入数据赋值给第i个输入数据后,执行步骤3;
步骤3、将i+1赋值给i,并判断i>DN是否成立,若成立,则表示得到DN个输入数据中的最大值以及所有存储的输入数据及其对应的位置序号,并执行步骤4;否则,返回步骤2执行;
步骤4、根据所述最大值设定筛选区间;再根据所述筛选区间设定映射区间后,在所有存储的输入数据中选出处于所述筛选区间内的数据作为有效数据并调整到映射区间中,得到映射数据后,与有效数据所对应的位置序号一起存储;
步骤5、指数函数模块根据有效数据的数据量选择计算精度,并以自然常数e为底数,分别计算以映射数据为指数的函数,从而得到满足计算精度的相应的指数函数值;
步骤6、加法器将所有指数函数值进行累加,得到累加值;
步骤7、自然对数模块以所述累加值为真数,计算自然对数,得到对数函数值;
步骤8、减法器将所有有效数据分别与所述对数函数值进行减法运算,得到相应的差值;
步骤9、所述指数函数模块以自然常数e为底数,分别计算以各个差值为指数的函数,从而得到相应的softmax函数值,并将softmax函数值及其位置序号作为神经网络识别的概率和类别。
与现有技术相比,本发明的有益技术效果体现在:
1、本发明总结了神经网络分类的一般规律,充分利用了softmax层输入数据的特点,在此基础上提出的softmax硬件电路降低了硬件电路复杂度并减少了硬件资源的使用量,从而提升了系统的综合频率;
2、本发明提出了精度可变的指数函数模块,避免了当前工作中一味追求高计算精度的误区;计算精度根据输入数据中的有效数据的数量动态调整,绝大多数情况只需保持较低的计算精度即可正常实现功能,从而简化了电路设计方案并且减少了硬件资源的使用量;
3、本发明改进了一种基于麦克劳林级数前两项的自然对数模块,经过实验验证,查找表内数据间隔为1时既能缩小计算精度的变化范围,又能消耗较少的硬件资源;在softmax硬件电路中,自然对数模块只会使用一次,缩小精度变化范围等同于提升了计算精度;
4、本发明提出了一种简单高效的由最大值模块和映射模块组成的数据预处理方案,通过扩大数据所在的区间避免了数据拥挤的情况发生,从而减少了系统电路的复杂度。
附图说明
图1为本发明计算精度可变的softmax函数硬件电路框图;
图2为本发明精度可变的指数函数模块电路框图;
图3为本发明精度稳定的自然对数模块电路框图;
图4为本发明指数函数模块的计算精度折线图;
图5为本发明自然对数模块与改进前方案计算精度范围对比图。
具体实施方式
本实施例中,如图1所示,一种计算精度可变的softmax函数硬件电路包括:最大值模块、映射模块、类别FIFO模块、概率FIFO(First In First Out)模块、指数函数模块、加法器模块、自然对数模块和减法器模块;
以输入数据的数量DN=10,输入数据为{-18.6695,-8.1815,-15.8927,-16.6646,-18.0673,-15.9669,-13.3687,-16.9998,-11.3575,-17.8542}为例;令当前输入数据为第i个输入数据,并初始化i=1;令第i-1个输入数据为最大值模块预先存储的初值;
最大值模块接收外部输入的第i个输入数据,并与第i-1个输入数据进行比较,若第i个输入数据大于第i-1个输入数据,则将第i个输入数据作为预处理数据存入概率FIFO模块,并将位置序号i存入类别FIFO模块;否则,最大值模块接收外部输入的第i+1个输入数据并与第i-1个输入数据进行比较和存储,直到i>10为止,从而得到10个输入数据中的最大值-8.1815以及存储在概率FIFO模块中的所有预处理数据{-18.6695,-8.1815,-15.8927,-15.9669,-13.3687,-11.3575}和相应存储在类别FIFO模块中的位置序号{0,1,2,5,6,8};
映射模块根据最大值模块输出的最大值,设定筛选区间为[最大值-8,最大值],即[-16.1815,-8.1815];再根据所述筛选区间设定映射区间为[-4,4]后,从概率FIFO模块和类别FIFO模块中分别取出所有预处理数据及其对应的位置序号,并在所有预处理数据中选出处于筛选区间内的数据{-8.1815,-15.8927,-15.9669,-13.3687,-11.3575}作为有效数据并调整到映射区间[-4,4],得到映射数据{4.0000,-3.7111,-3.7853,-1.1872,0.8240}并存入概率FIFO模块中,并将有效数据所对应的位置序号{1,2,5,6,8}存储在类别FIFO模块中;
指数函数模块根据类别FIFO模块中存储的数据量选择计算精度为最高精度,以自然常数e为底数,分别计算以映射数据为指数的函数,从而得到满足计算精度的相应的指数函数值{54.5982,0.0244,0.0227,0.3051,2.2797};
加法器模块将指数函数模块输出的所有指数函数值进行累加,得到累加值57.2301,并传递给自然对数模块;
自然对数模块以累加值57.2301为真数,计算自然对数,得到对数函数值4.0471;
减法器模块从概率FIFO模块取出所有有效数据,并分别与对数函数值进行减法运算,得到相应的差值{-0.0471,-7.7582,-7.8324,-5.2343,-3.2230}传递给指数函数模块;
指数函数模块以自然常数e为底数,分别计算以各个差值为指数的函数,从而得到相应的softmax函数值{0.9542,0.0004,0.0004,0.0053,0.0398},同时根据softmax函数值从类别FIFO模块中获取相应的位置序号{1,2,5,6,8},并分别作为神经网络识别概率和类别。
本实施例中,如图2所示,指数函数模块是由一个译码器、一个地址译码器、三个ROM、两个乘法器和一个多路选择器组成;
译码器根据类别FIFO中的数据量进行译码,得到决定计算精度的三个查找表地址的开关信号和一个输出选择信号;本实施例中,数据量为5;
地址译码器将有效数据均分为3组,任意第n组包含4个二进制位和1个符号位,从而构成5个二进制位并作为第n个查找表的地址,从而得到3个查找表的地址;
任意第n个ROM中存储有以自然常数e为底,以第n组的5个二进制位所对应的十进制数作为指数的函数值,从而实现第n个查找表功能;
3个查找表在3个查找表地址的开关信号的控制下接收地址译码器发送的3个查找表的地址{2-0-0,17-22-28,17-25-18,12-21-31,9-10-5},并输出选通的ROM中存储的函数值{54.5982,0.0302,0.0302,0.3679,1.6487}、{1.0000,0.8290,0.7548,0.8553,1.3668}和{1.0000,0.9768,0.9961,0.9711,1.0098};
2个乘法器对所接收到的ROM中存储的函数值进行乘法运算,得到指数函数值{54.5982,0.0244,0.0227,0.3051,2.2797};
多路选择器在输出选择信号的控制下将满足计算精度的指数函数值输出。
本实施例中,如图3所示,自然对数模块是由两个ROM、两个乘法器、一个移位器、一个减法器和一个加法器组成;
第一个ROM中存储有累加值整数部分的倒数,从而实现第4个查找表功能;
第二个ROM中存储有以累加值的整数部分为真数的自然对数值,从而实现第5个查找表功能;
第一个乘法器从第4个查找表取出倒数0.0175,并与累加值的小数部分进行乘法运算,得到的乘积0.0040传递给第二个乘法器;
第二个乘法器对所接收到的乘积进行平方运算,得到平方值0.000016传递给移位器;
由移位器对平方值进行右移一位操作,得到移位值0.000008;
减法器获取乘积,并与移位值进行减法运算,得到差值0.0040;
加法器获从第5个查找表中取出自然对数值4.0431,并与差值进行加法运算,从而得到对数函数值4.0471并输出。
本实施例中,一种计算精度可变的softmax函数硬件电路的实现方法是按如下步骤进行:
步骤1、定义输入数据的数量为10;定义当前输入数据为第i个输入数据,并初始化i=1;令第i-1个输入数据为预先存储的初值;
步骤2、比较器将第i个输入数据与第i-1个输入数据进行比较,若第i个输入数据大于第i-1个输入数据,则存储第i个输入数据及其对应的位置序号i后,执行步骤3;否则,将第i-1个输入数据赋值给第i个输入数据后,执行步骤3;
步骤3、将i+1赋值给i,并判断i>10是否成立,若成立,则表示得到10个输入数据中的最大值以及所有存储的输入数据及其对应的位置序号,并执行步骤4;否则,返回步骤2执行;
步骤4、根据最大值设定筛选区间;并在所有存储的输入数据中选出处于筛选区间内的数据作为有效数据并调整到映射区间中,得到映射数据后,与有效数据所对应的位置序号一起存储;
步骤5、指数函数模块根据有效数据的数据量选择计算精度,并以自然常数e为底数,分别计算以映射数据为指数的函数,从而得到满足计算精度的相应的指数函数值;
步骤6、加法器将所有指数函数值进行累加,得到累加值;
步骤7、自然对数模块以累加值为真数,计算自然对数,得到对数函数值;
步骤8、减法器将所有有效数据分别与对数函数值进行减法运算,得到相应的差值;
步骤9、指数函数模块以自然常数e为底数,分别计算以各个差值为指数的函数,从而得到相应的softmax函数值,并将softmax函数值及其位置序号作为神经网络识别的概率和类别。
实验验证:
选取40个位于[-4,4]区间内的数据作为指数函数模块的测试数据,实验结果如图4所示;选取100个位于[54,128]区间内的数据作为自然对数模块的测试数据,实验结果如图5所示。
基于上述设定的实验条件,如图4所示,测得指数函数模块的计算精度在5-7位十进制小数。如图5所示,测得自然对数模块的精度范围为3-6位,明显小于改进前方案中的2-8位精度变化范围。

Claims (4)

1.一种计算精度可变的softmax函数硬件电路,其特征包括:最大值模块、映射模块、类别FIFO模块、概率FIFO模块、指数函数模块、加法器模块、自然对数模块和减法器模块;
定义输入数据的数量为DN;定义当前输入数据为第i个输入数据,并初始化i=1;令第i-1个输入数据为所述最大值模块预先存储的初值;其中,DN为大于1的整数,i为小于DN的整数;
所述最大值模块接收外部输入的第i个输入数据,并与第i-1个输入数据进行比较,若第i个输入数据大于第i-1个输入数据,则将第i个输入数据作为预处理数据存入概率FIFO模块,并将位置序号i存入类别FIFO模块;否则,所述最大值模块接收外部输入的第i+1个输入数据并与第i-1个输入数据进行比较和存储,直到i>DN为止,从而得到DN个输入数据中的最大值以及存储在概率FIFO模块中的所有预处理数据和相应存储在类别FIFO模块中的位置序号;
所述映射模块根据所述最大值模块输出的最大值,设定筛选区间;再根据所述筛选区间设定映射区间后,从所述概率FIFO模块和类别FIFO模块中分别取出所有预处理数据及其对应的位置序号,并在所有预处理数据中选出处于所述筛选区间内的数据作为有效数据并调整到映射区间中,得到映射数据并存入概率FIFO模块中,同时将有效数据所对应的位置序号存储在类别FIFO模块中;
所述指数函数模块根据所述类别FIFO模块中存储的数据量选择计算精度,再以自然常数e为底数,分别计算以映射数据为指数的函数,从而得到满足计算精度的相应的指数函数值;
所述加法器模块将所述指数函数模块输出的所有指数函数值进行累加,得到累加值并传递给所述自然对数模块;
所述自然对数模块以所述累加值为真数,计算自然对数,得到对数函数值;
所述减法器模块从所述概率FIFO模块取出所有有效数据,并分别与所述对数函数值进行减法运算,得到相应的差值传递给所述指数函数模块;
所述指数函数模块以自然常数e为底数,分别计算以各个差值为指数的函数,从而得到相应的softmax函数值,同时根据softmax函数值从所述类别FIFO模块中获取相应的位置序号并分别作为神经网络识别概率和类别。
2.根据权利要求1所述的softmax函数硬件电路,其特征是,所述指数函数模块是由一个译码器、一个地址译码器、N个ROM、N-1个乘法器和一个多路选择器组成;其中,N为大于1的整数;
所述译码器根据类别FIFO中的数据量进行译码,得到决定计算精度的N个查找表地址的开关信号和一个输出选择信号;
所述地址译码器将所述有效数据均分为N组,任意第n组包含m个二进制位和1个符号位,从而构成m+1个二进制位并作为第n个查找表的地址,从而得到N个查找表的地址;其中,n为小于N的整数,m为大于1的整数;
任意第n个ROM中存储有以自然常数e为底,以第n组的m+1个二进制位所对应的十进制数作为指数的函数值,从而实现第n个查找表功能;
所述N个查找表在N个查找表地址的开关信号的控制下接收所述地址译码器发送的N个查找表的地址,并输出选通的ROM中存储的函数值;
所述N-1个乘法器对所接收到的ROM中存储的函数值进行乘法运算,得到指数函数值;
所述多路选择器在所述输出选择信号的控制下将满足计算精度的指数函数值输出。
3.根据权利要求1所述的softmax函数硬件电路,其特征是,所述自然对数模块是由两个ROM、两个乘法器、一个移位器、一个减法器和一个加法器组成;
第一个ROM中存储有所述累加值整数部分的倒数,从而实现第N+1个查找表功能;
第二个ROM中存储有以所述累加值的整数部分为真数的自然对数值,从而实现第N+2个查找表功能;
第一个乘法器从所述第N+1个查找表取出倒数,并与所述累加值的小数部分进行乘法运算,得到的乘积传递给第二个乘法器;
所述第二个乘法器对所接收到的乘积进行平方运算,得到平方值传递给所述移位器;
由所述移位器对所述平方值进行右移一位操作,得到移位值;
所述减法器获取所述乘积,并与所述移位值进行减法运算,得到差值;
所述加法器获从第N+2个查找表中取出所述自然对数值,并与所述差值进行加法运算,从而得到对数函数值并输出。
4.一种计算精度可变的softmax函数硬件电路的实现方法,其特征是按如下步骤进行:
步骤1、定义输入数据的数量为DN;定义当前输入数据为第i个输入数据,并初始化i=1;令第i-1个输入数据为预先存储的初值;
步骤2、比较器将第i个输入数据与第i-1个输入数据进行比较,若第i个输入数据大于第i-1个输入数据,则存储第i个输入数据及其对应的位置序号i后,执行步骤3;否则,将第i-1个输入数据赋值给第i个输入数据后,执行步骤3;
步骤3、将i+1赋值给i,并判断i>DN是否成立,若成立,则表示得到DN个输入数据中的最大值以及所有存储的输入数据及其对应的位置序号,并执行步骤4;否则,返回步骤2执行;
步骤4、根据所述最大值设定筛选区间;再根据所述筛选区间设定映射区间后,在所有存储的输入数据中选出处于所述筛选区间内的数据作为有效数据并调整到映射区间中,得到映射数据后,与有效数据所对应的位置序号一起存储;
步骤5、指数函数模块根据有效数据的数据量选择计算精度,并以自然常数e为底数,分别计算以映射数据为指数的函数,从而得到满足计算精度的相应的指数函数值;
步骤6、加法器将所有指数函数值进行累加,得到累加值;
步骤7、自然对数模块以所述累加值为真数,计算自然对数,得到对数函数值;
步骤8、减法器将所有有效数据分别与所述对数函数值进行减法运算,得到相应的差值;
步骤9、所述指数函数模块以自然常数e为底数,分别计算以各个差值为指数的函数,从而得到相应的softmax函数值,并将softmax函数值及其位置序号作为神经网络识别的概率和类别。
CN201910419874.3A 2019-05-20 2019-05-20 计算精度可变的softmax函数硬件电路及其实现方法 Active CN110135086B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910419874.3A CN110135086B (zh) 2019-05-20 2019-05-20 计算精度可变的softmax函数硬件电路及其实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910419874.3A CN110135086B (zh) 2019-05-20 2019-05-20 计算精度可变的softmax函数硬件电路及其实现方法

Publications (2)

Publication Number Publication Date
CN110135086A true CN110135086A (zh) 2019-08-16
CN110135086B CN110135086B (zh) 2022-09-13

Family

ID=67571437

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910419874.3A Active CN110135086B (zh) 2019-05-20 2019-05-20 计算精度可变的softmax函数硬件电路及其实现方法

Country Status (1)

Country Link
CN (1) CN110135086B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110728365A (zh) * 2019-09-12 2020-01-24 东南大学 多位宽pe阵列计算位宽的选择方法及计算精度控制电路
CN111580784A (zh) * 2020-04-10 2020-08-25 科大讯飞股份有限公司 一种幂函数计算装置及幂函数计算方法
CN112069455A (zh) * 2020-09-16 2020-12-11 成都启英泰伦科技有限公司 一种log-softmax函数硬件加速计算方法
CN112685693A (zh) * 2020-12-31 2021-04-20 南方电网科学研究院有限责任公司 一种实现Softmax函数的设备
CN113485673A (zh) * 2021-07-05 2021-10-08 上海西井信息科技有限公司 实现softmax的电路装置及生成softmax代码的方法
CN114648101A (zh) * 2022-05-13 2022-06-21 杭州研极微电子有限公司 基于transformer结构的softmax函数量化实现方法和装置
WO2022168604A1 (ja) * 2021-02-05 2022-08-11 コニカミノルタ株式会社 ソフトマックス関数の近似計算装置、近似計算方法および近似計算プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160335120A1 (en) * 2015-05-11 2016-11-17 Auviz Systems, Inc. ACCELERATING ALGORITHMS & APPLICATIONS ON FPGAs
US20180046894A1 (en) * 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Method for optimizing an artificial neural network (ann)
CN108021537A (zh) * 2018-01-05 2018-05-11 南京大学 一种基于硬件平台的softmax实现方式
CN109165006A (zh) * 2018-08-07 2019-01-08 上海交通大学 Softmax函数的设计优化及硬件实现方法及系统
CN109308520A (zh) * 2018-09-26 2019-02-05 阿里巴巴集团控股有限公司 实现softmax函数计算的FPGA电路及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160335120A1 (en) * 2015-05-11 2016-11-17 Auviz Systems, Inc. ACCELERATING ALGORITHMS & APPLICATIONS ON FPGAs
US20180046894A1 (en) * 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Method for optimizing an artificial neural network (ann)
CN108021537A (zh) * 2018-01-05 2018-05-11 南京大学 一种基于硬件平台的softmax实现方式
CN109165006A (zh) * 2018-08-07 2019-01-08 上海交通大学 Softmax函数的设计优化及硬件实现方法及系统
CN109308520A (zh) * 2018-09-26 2019-02-05 阿里巴巴集团控股有限公司 实现softmax函数计算的FPGA电路及方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
张萧等: "Sigmoid函数及其导函数的FPGA实现", 《福建师范大学学报(自然科学版)》 *
李理等: "基于FPGA的卷积神经网络Softmax层实现", 《现代计算机(专业版)》 *
武琪等: "一种新型FWNN中指数函数e~x的FPGA实现", 《微电子学》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110728365A (zh) * 2019-09-12 2020-01-24 东南大学 多位宽pe阵列计算位宽的选择方法及计算精度控制电路
CN110728365B (zh) * 2019-09-12 2022-04-01 东南大学 多位宽pe阵列计算位宽的选择方法及计算精度控制电路
CN111580784A (zh) * 2020-04-10 2020-08-25 科大讯飞股份有限公司 一种幂函数计算装置及幂函数计算方法
CN111580784B (zh) * 2020-04-10 2023-07-25 科大讯飞股份有限公司 一种幂函数计算装置及幂函数计算方法
CN112069455A (zh) * 2020-09-16 2020-12-11 成都启英泰伦科技有限公司 一种log-softmax函数硬件加速计算方法
CN112685693A (zh) * 2020-12-31 2021-04-20 南方电网科学研究院有限责任公司 一种实现Softmax函数的设备
CN112685693B (zh) * 2020-12-31 2022-08-02 南方电网科学研究院有限责任公司 一种实现Softmax函数的设备
WO2022168604A1 (ja) * 2021-02-05 2022-08-11 コニカミノルタ株式会社 ソフトマックス関数の近似計算装置、近似計算方法および近似計算プログラム
CN113485673A (zh) * 2021-07-05 2021-10-08 上海西井信息科技有限公司 实现softmax的电路装置及生成softmax代码的方法
CN114648101A (zh) * 2022-05-13 2022-06-21 杭州研极微电子有限公司 基于transformer结构的softmax函数量化实现方法和装置

Also Published As

Publication number Publication date
CN110135086B (zh) 2022-09-13

Similar Documents

Publication Publication Date Title
CN110135086A (zh) 计算精度可变的softmax函数硬件电路及其实现方法
Su et al. BPEC: Belief-peaks evidential clustering
Derbentsev et al. Forecasting cryptocurrency prices time series using machine learning approach
CN105955706B (zh) 一种除法器及除法运算方法
CN109032781A (zh) 一种卷积神经网络算法的fpga并行系统
Yang et al. Hybrid prediction method for wind speed combining ensemble empirical mode decomposition and Bayesian ridge regression
CN111581593B (zh) 可配置重用的分段式查找表激活函数实现装置
CN108537332A (zh) 一种基于Remez算法的Sigmoid函数硬件高效率实现方法
CN109871949A (zh) 卷积神经网络加速器及加速方法
CN109308520B (zh) 实现softmax函数计算的FPGA电路及方法
CN107526975A (zh) 一种基于差分隐私保护决策树的方法
CN109816105A (zh) 一种可配置的神经网络激活函数实现装置
CN111460912A (zh) 基于级联高分辨卷积神经网络的密集人群计数算法
CN108921292A (zh) 面向深度神经网络加速器应用的近似计算系统
CN109067427A (zh) 一种基于优化型小波神经网络的跳频序列预测方法
CN104090737B (zh) 一种改进型部分并行架构乘法器及其处理方法
Zhang et al. Optimal slope ranking: An approximate computing approach for circuit pruning
Vanli et al. Sequential prediction over hierarchical structures
CN113095162B (zh) 一种基于半监督深度学习的频谱感知方法
CN110210612A (zh) 一种基于自适应分段线性逼近曲线的集成电路加速方法及系统
CN113076663A (zh) 一种动态混合精度模型构建方法及系统
CN117539868A (zh) 基于二叉树的金融业务情景生成方法、装置、系统及介质
CN115330553B (zh) 一种基于设备特征多层优选的非侵入式负荷分解方法
CN106774624A (zh) 一种实时高斯白噪声硬件发生器的并行实现方法
Chen et al. Date: Dual assignment for end-to-end fully convolutional object detection

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