欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2019104198743
申请人: 合肥工业大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-02-23
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

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函数值及其位置序号作为神经网络识别的概率和类别。