- 使用C内置函数exp()来计算f(x)的值是慢的,sigmoid在CPU中计算耗时比较大,可以参考fast-sigmoid-algorithm。 CPU上性能对比结果
100000 times sigmoid ==> 2.81878ms fast sigmoid ==> 0.589737ms
,而GPU上两者差异忽略不记。
fast_sigmoid(x) = (x / (1 + |x|)) * 0.5 + 0.5
如果f(x)的参数不接近于零,则对于exp(x)使用序列扩展的第一个术语将不会太大,如果参数为“(”),则与Sigmoid函数的一系列扩展具有相同的问题,大”.
另一种方法是使用表查找.也就是说,您可以预先计算给定数量的数据点的Sigmoid函数的值,然后根据需要对它们进行快速(线性)插值.
参考:
https://github.com/Syencil/tensorRT