如何在 numpy 中判断我的代码在哪里出现 exp 溢出?

How to tell where my code gives an exp overflow, in numpy?

我在使用 numpy 时不断收到此错误:

Warning (from warnings module):
  File "somepath.py", line 249
    return 1 / ( 1 + np.exp( -x))
RuntimeWarning: overflow encountered in exp

然而,这并没有告诉我任何信息,因为我仍然不知道它是如何导致这个错误的。通常,当我遇到错误时,它会通过它所经历的函数来回溯到错误,而不是 exp 溢出。

我如何得到一个错误,它确实向我显示了这个?

您可以要求 Python 将警告转为错误:

import warnings    
warnings.filterwarnings("error", category=RuntimeWarning)

(Docs)