加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

加快Java中的数学计算

发布时间:2020-12-15 00:58:39 所属栏目:Java 来源:网络整理
导读:我有一个用 Java编写的神经网络,它使用Sigmoid传递函数定义如下: private static double sigmoid(double x){ return 1 / (1 + Math.exp(-x));} 这在使用网络的训练和计算中被称为多次.有什么办法加速这个吗?这不是很慢,只是它被使用了很多,所以这里的一个
我有一个用 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都很有趣.而另一个评论说,这个功能是对称的.你只需要存储一半的值. 编辑:对不起,我在这里显示错误的图表.我已经纠正了

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读