gpt4 book ai didi

c# - C# 中的数学优化

转载 作者:IT王子 更新时间:2023-10-29 03:47:06 28 4
gpt4 key购买 nike

我一整天都在分析一个应用程序,在优化了一些代码之后,我的待办事项列表中只剩下这个了。它是神经网络的激活函数,被调用超过 1 亿次。据 dotTrace 称,它大约占整个功能时间的 60%。

你会如何优化它?

public static float Sigmoid(double value) {
return (float) (1.0 / (1.0 + Math.Pow(Math.E, -value)));
}

最佳答案

尝试:

public static float Sigmoid(double value) {
return 1.0f / (1.0f + (float) Math.Exp(-value));
}

编辑:我做了一个快速基准测试。在我的机器上,上面的代码比你的方法快大约 43%,而这个数学上等效的代码是最微小的一点(比原来的快 46%):

public static float Sigmoid(double value) {
float k = Math.Exp(value);
return k / (1.0f + k);
}

编辑 2: 我不确定 C# 函数有多少开销,但如果您 #include <math.h>在你的源代码中,你应该能够使用它,它使用了一个 float-exp 函数。可能会快一点。

public static float Sigmoid(double value) {
float k = expf((float) value);
return k / (1.0f + k);
}

此外,如果您正在进行数百万次调用,函数调用开销可能会成为一个问题。尝试创建一个内联函数,看看是否有帮助。

关于c# - C# 中的数学优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/412019/

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