[发明专利]一种面向神经网络的通用非线性激活函数计算装置和方法有效
| 申请号: | 201910944451.3 | 申请日: | 2019-09-30 |
| 公开(公告)号: | CN110688088B | 公开(公告)日: | 2023-03-28 |
| 发明(设计)人: | 潘红兵;席挺;王宇宣;朱杏伟 | 申请(专利权)人: | 南京大学 |
| 主分类号: | G06F7/523 | 分类号: | G06F7/523;G06F30/20 |
| 代理公司: | 江苏法德东恒律师事务所 32305 | 代理人: | 李媛媛 |
| 地址: | 210046 江苏*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 面向 神经网络 通用 非线性 激活 函数 计算 装置 方法 | ||
本发明公开了一种面向神经网络的通用非线性激活函数计算装置和方法。其计算装置包括乘法器、输入选择单元、寻址单元、查找表单元、FIFO单元、乘加运算单元、线性转换单元和输出选择单元。本发明提供的面向神经网络的通用非线性函数计算装置和方法,使用分段线性逼近方法对sigmoid函数进行分段线性拟合操作,利用sigmoid函数和tanh函数的数学关系,共用寻址单元和查找表资源,通过模式选择和相应的线性变化来实现神经网络中不同的非线性函数的运算,从而减少片上计算和存储资源的消耗。
技术领域
本发明涉及一种面向神经网络的通用非线性激活函数计算装置和方法,属于神经网络和数字信号处理技术领域。
背景技术
近年来,神经网络在各个领域得到广泛运用,比如图像识别、语音处理等方面。在目前使用的神经网络中,每一层网络的结果都要通过激活函数的处理,以增加神经网络模型的非线性,激活函数的不断发展是深度网络不断进步完善的一个重要环节。当前在神经网络中使用较多的激活函数有sigmoid,tanh以及relu。
其中relu作为分段线性函数,在硬件上实现相对简单,而sigmoid和tanh是非线性函数,在硬件上实现相对复杂。目前在FPGA上实现方法主要包括查找表法、分段线性逼近法、泰勒级数展开发、Cordic算法、分段非线性逼近法。其中,分段线性逼近法和查找表法结合是目前较为流行的一种方法。但是当要求逼近的精度较高时,必须增加分段区间的个数,这样又会消耗大量的存储资源。尤其是如LSTM等网络同时有sigmoid和tanh两种激活函数,通常方法是两种函数分别进行分段,使用独立计算和存储资源,这样消耗资源更是成倍增加。
发明内容
针对以上现有技术中存在的缺陷,本发明基于sigmoid函数和tanh函数的数学关系,提出一种面向神经网络的通用非线性激活函数计算装置和方法,可以极大地节约计算和存储资源。
本发明的装置采用的技术方案如下:
一种面向神经网络的通用非线性激活函数计算装置,包括:
乘法器,用于对计算sigmoid函数的输入数据进行乘2运算,得到用于计算tanh函数时的输入数据;
输入选择单元,用于根据所计算的激活函数类型来选择输入数据,并输出数据;
寻址单元,用于比较输入选择单元的输出数据和sigmoid函数分段后对应的区间端点值,确定输入选择单元的输出数据所在的线性区间,从而给出查找表的地址索引值;
查找表单元,用于根据地址索引值来得到查找表中储存的sigmoid函数线性分段的参数值;
FIFO单元,用于对输入选择单元的输出数据进行延时缓冲;
乘加运算单元,用于根据FIFO单元缓存数据和查找表单元得到的参数值来计算乘加结果,得到装置计算sigmoid函数的输出数据;
线性转换单元,用于将乘加运算单元得到的输出数据做线性转换操作,得到装置计算tanh函数的输出数据;
输出选择单元,用于根据所计算激活函数的类型来选择输出数据。
进一步地,所述寻址单元采用并行结构,包括比较器和选择器,所述选择器采用减法器。
进一步地,所述查找表单元中包括sigmoid函数线性分段的斜率k和y轴截距h的参数值,且计算tanh函数与计算sigmoid函数共用查找表中的参数值。
进一步地,所述乘加运算单元包括乘法器和加法器。
进一步地,所述线性转换单元包括乘法器和减法器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910944451.3/2.html,转载请声明来源钻瓜专利网。





