我在尝试用Node.js实现神经网络的过程中发现计算值出现了Infinity,经过检查发现在计算以下这个几乎线性增长的函数时,
function softmax(x0){
return Math.log(Math.exp(x0)+1);
}
如果输入的值超过大约700就会输出Inf,这应该是因为Math.exp(x0)超过了浮点数的上界。
我并不很擅长写 Python,因为Python不太符合我的代码习惯。请问为了防止出现溢出,是否有比换成Python更好的办法?
我在尝试用Node.js实现神经网络的过程中发现计算值出现了Infinity,经过检查发现在计算以下这个几乎线性增长的函数时,
function softmax(x0){
return Math.log(Math.exp(x0)+1);
}
如果输入的值超过大约700就会输出Inf,这应该是因为Math.exp(x0)超过了浮点数的上界。
我并不很擅长写 Python,因为Python不太符合我的代码习惯。请问为了防止出现溢出,是否有比换成Python更好的办法?
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
注意到在x0较大时f(x0)和x0差距可忽略,直接输出x0即可。