加快Java中的数学计算

前端之家收集整理的这篇文章主要介绍了加快Java中的数学计算前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个用 Java编写的神经网络,它使用Sigmoid传递函数定义如下:
private static double sigmoid(double x)
{
    return 1 / (1 + Math.exp(-x));
}

这在使用网络的训练和计算中被称为多次.有什么办法加速这个吗?这不是很慢,只是它被使用了很多,所以这里的一个小的优化将是一个很大的整体收益.

解决方法

对于神经网络,您不需要Sigmoid函数的确切值.因此,您可以预先计算100个值,并重新使用与输入最接近的值,甚至更好(作为注释),从邻居值进行插值.

你可以这样做,这个article描述(链接answer of s-lott被盗).

这是Sigmoid函数

如您所见,只有-10℃ x < 10都很有趣.而另一个评论说,这个功能是对称的.你只需要存储一半的值. 编辑:对不起,我在这里显示错误的图表.我已经纠正了

猜你在找的Java相关文章