gpt4 book ai didi

python - 乙状结肠运行时警告 : overflow encountered in exp

转载 作者:太空宇宙 更新时间:2023-11-03 15:48:22 27 4
gpt4 key购买 nike

我试图在 Python 中创建一个 sigmoid 函数,但是,我收到以下错误:

RuntimeWarning: overflow encountered in exp

这是我的代码:

def sigmoid(self, value):

a = np.exp(-value)
return 1.0/ (1.0 + a)

我搜索了以前的答案,但它们没有解决我的问题。问题在于计算 a 的值。我也尝试使用:

a = np.float128(np.exp(-value))

但我得到了同样的错误,并使用:

a = np.float256(np.exp(-value))

我收到以下错误:

AttributeError: 'module' object has no attribute 'float256'

我想如果我有溢出我可以返回0,如果我有下溢我可以返回1

最佳答案

警告不是错误。您可以忽略它。

也就是说,当 exp(-value) 的结果超过 value 的 float 据类型格式可表示的最大数时,就会发生这种情况。

您可以通过检查 value 是否太小来防止溢出:

def sigmoid(value):
if -value > np.log(np.finfo(type(value)).max):
return 0.0
a = np.exp(-value)
return 1.0/ (1.0 + a)

关于python - 乙状结肠运行时警告 : overflow encountered in exp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48540589/

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