[发明专利]一种基于硬件平台的softmax函数计算方法有效
申请号: | 201810016954.X | 申请日: | 2018-01-05 |
公开(公告)号: | CN108021537B | 公开(公告)日: | 2022-09-16 |
发明(设计)人: | 王中风;王美琪;路思远;林军 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F17/15 | 分类号: | G06F17/15 |
代理公司: | 北京东方盛凡知识产权代理事务所(普通合伙) 11562 | 代理人: | 王颖 |
地址: | 210023 江苏省南京市栖*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 硬件 平台 softmax 函数 计算方法 | ||
本发明公开了一种基于各种硬件平台(CPLD、FPGA、专用芯片等)的softmax函数计算方法。softmax函数广泛应用于深度学习的多分类任务及注意力模型等,其中涉及到的e指数及除法计算需要消耗较大的硬件资源。设计方法通过对函数进行简单变换,将其中的e指数计算简化为一次常数乘法、一个输入范围固定的2的指数次运算、一次移位运算;将n次除法运算的简化为一次“最高位1检测运算”,一次输入范围固定的倒数运算,一次移位运算及n次乘法运算。其中2指数及倒数运算以特殊设计的查找表实现,使得更小的存储空间可实现同样精度。将本发明用在深度学习注意力模型等中,可以在精度几乎不受损的前提下大大提高计算速度,减少计算资源的消耗。
技术领域
本发明涉及集成电路技术领域,具体涉及一种基于硬件平台的softmax函数计算方法及其架构设计。
背景技术
softmax函数广泛应用于深度学习的多分类任务及注意力模型等。它可将多个神经元的输出映射到(0,1)区间内,且所有项的和为1,可被看做概率,常应用于机器学习中需要计算多个输出占比或多输入各自权值的场合中。
Softmax中涉及到的e指数计算以及除法计算需要消耗的硬件资源较大,深度学习在硬件平台的实现效率和资源消耗会被这一函数的计算速度和资源需求影响。经过对函数的简单变换,将其中的指数计算以移位计算替代,并将除法以查找表方式实现,可以在精度几乎不受损的前提下大大提高计算速度,减少计算资源的消耗。
发明内容
本发明为了解决各种硬件平台(包括CPLD、FPGA、专用芯片等)上用定点数计算Softmax函数不易于实现的问题,提出了一种softmax计算架构的设计方法,可减小硬件硬件面积、降低查找表存储参数的值域范围,从而使得在的计算相同精度下存储参数所需要的资源减少,或者在消耗相同的存储空间的情况下存储精度更高的参数,达到更高的计算精度。
本发明的理论分析如下:
1.Softmax函数的表达式为
其基本运算步骤为:
步骤一:输入n个变量xi,(1≤i≤n)对每个变量,计算出:
步骤二:对于计算得到的yi,求其和:
步骤三:对每个yi,除以F,得到f(xi):
2.其中基本的数字电路中的逻辑单元无法直接进行运算的步骤是步骤一的指数运算和步骤三的除法运算。以下将从三个步骤对该运算进行简化。
2.1第一步优化考虑指数运算的简化。这里我们把输入为负无穷到正无穷的e指数的计算,简化为一次常数乘法、一个输入范围为[0,1)的2的指数次运算、一次移位运算。
按照一般的计算流程,以自然对数为底数的指数运算,无法用数字电路的组合逻辑直接表示,一般采用泰勒展开逼近的方法或直接查表得结果。如果采用泰勒展开逼近的办法,需要做大量的乘除法运算,硬件面积将变得非常大。如果采用直接查表的办法,输入变量的范围从负无穷到正无穷,存储量太大。对e指数做如下变换:
设xi′=xi log2e,则有:xi′的计算由于是和一个常数(1/ln2=1.4427)做乘法,所以可以用一系列的加法运算来代替。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810016954.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种药膳鸡饲料
- 下一篇:一种聚合物锂离子电池