专栏算法工具链Sigmod算子加速原理

Sigmod算子加速原理

已解决
chenze2020-09-15
348
0

深度神经网络,卷积的计算是乘加,属于线性变化,而各种目标函数是很复杂的非线性函数,需要引入非线性变化,使得深度神经网络能够拟合非线性函数变化。

因此,在深度神经网络中引入了激活层(activiation layer),而Sigmod就是其中非常主流的激活函数之一。然后Sigmod非线性计算不适合在AI计算单元中进行计算,需要针对他进行优化

常见的方案如下两个:

1. 基于泰勒展开来拟合非线性函数Sigmod,可以根据精度需求来决定展开深度,一般只需要做一次即可,另外展开后的计算为线性计算,符合嵌入式芯片加速的需求。

2. 基于查表法,sigmod函数本身满足一些限制,即当前x落入[-8,8]之外,sigmod函数的值域已经几乎不会变化。那么我们完全可以针对[-8,8]区间内函数取值进行建表,选择一定步长从而确定最终表的大小,比如步长为0.25,那么值得个数就有64个。

在实际业务场景下,这两个方案都可以在掉点较小的情况下,取得非常不错的性能收益。

算法工具链
评论0
0/1000