Python 中 scipy/numpy 中的 exp 溢出?

2024-05-04

出现以下错误是什么意思:

Warning: overflow encountered in exp

在 scipy/numpy 中使用 Python 一般意味着什么?我正在计算对数形式的比率,即 log(a) + log(b),然后使用 exp 取结果的指数,并使用 logsumexp 求和,如下所示:

c = log(a) + log(b)
c = c - logsumexp(c)

数组 b 中的某些值被有意设置为 0。它们的日志将为 -Inf。

出现此警告的原因可能是什么?谢谢。


在你的情况下,这意味着b is very在你的数组中的某个小地方,你会得到一个数字(a/b or exp(log(a) - log(b)))对于用于存储输出的任何 dtype(float32、float64 等)数组来说都太大了。

Numpy 可以配置为

  1. 忽略此类错误,
  2. 打印错误,但不发出警告以停止执行(默认)
  3. 记录错误,
  4. 发出警告
  5. 提出错误
  6. 调用用户定义的函数

See numpy.seterr http://docs.scipy.org/doc/numpy/reference/generated/numpy.seterr.html控制它如何处理浮点数组中的下溢/溢出等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 中 scipy/numpy 中的 exp 溢出? 的相关文章

随机推荐