gpt4 book ai didi

java - 加速Java中的数学计算

转载 作者:搜寻专家 更新时间:2023-10-30 21:17:11 30 4
gpt4 key购买 nike

我有一个用 Java 编写的神经网络,它使用定义如下的 S 形传递函数:

private static double sigmoid(double x)
{
return 1 / (1 + Math.exp(-x));
}

这在使用网络进行训练和计算期间被调用多次。有什么办法可以加快速度吗?不是它慢,而是它被大量使用,所以这里的一个小优化将是一个很大的整体 yield 。

最佳答案

对于神经网络,您不需要 sigmoid 函数的确切值。因此,您可以预先计算 100 个值并重新使用最接近您的输入的值,或者甚至更好(如评论所述)从相邻值进行插值。

article 中描述了如何执行此操作(从 answer of s-lott 窃取的链接)。

这是 sigmoid 函数:Sigmoid function graph

如您所见,只有 -10 < x < 10 的值才是有趣的。而且,正如另一条评论所述,该函数是对称的。您只需存储一半的值。


编辑:很抱歉,我在这里显示了错误的图表。我已经更正了。

关于java - 加速Java中的数学计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2887815/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com