【发布时间】:2019-05-11 19:34:23
【问题描述】:
我正在尝试追踪我在尝试运行我的代码 test.py 时收到的 python 错误消息的来源。
我试图从错误输出中追踪的模块(由test.py 调用)显然是:
build/bdist.linux-x86_64/egg/george/gp.py
错误信息sn-p:
File "build/bdist.linux-x86_64/egg/george/gp.py", line 498, in
predict
- 我可以找到
build/bdist.linux-x86_64/,但它是空的。也许它不是“正确的”。 - 我还发现了
gp.py的不同版本,但是当我对其进行更改时,没有任何反应,因此test.py没有调用该版本。
我要做的就是找到发生错误的代码,这样我就可以向其中添加更多输出以找出问题所在。
这是错误信息:
Traceback (most recent call last):
File "test.py", line 213, in <module>
mumc, dummy = gp1.predict(residuals, dates, kernel = kernelprime )
File "build/bdist.linux-x86_64/egg/george/gp.py", line 511, in predict
File "build/bdist.linux-x86_64/egg/george/solvers/basic.py", line 87, in apply_inverse
File "/home/me/.local/lib/python2.7/site-packages/scipy/linalg/decomp_cholesky.py", line 174, in cho_solve
b1 = asarray_chkfinite(b)
File "/home/me/.local/lib/python2.7/site-packages/numpy/lib/function_base.py", line 1219, in asarray_chkfinite
"array must not contain infs or NaNs")
ValueError: array must not contain infs or NaNs
所以很明显,在某些时候,我将一个包含 infs 或 NaNs 的数组输入到一些它不喜欢的 scipy 或 numpy 代码中。但是首先要了解为什么这些值是 infs 或 NaNs,似乎在 predict 模块中发生了任何问题。
(gp1 是在gp.py 代码中定义的类!)
【问题讨论】:
-
你确定你的错误是在“build/bdist.linux-x86_64/egg/george/gp.py”吗?这是一个相当深的系统文件。也许是其他原因导致您的代码出现错误?
-
检查错误的来源,这通常是原因。
-
是的,请包括整个错误回溯
-
好的,我已将错误消息添加到我的原始帖子中,谢谢。
-
我在这里猜测,但看起来你的无穷大/NaN 是因为协方差矩阵中的值为零(因此协方差矩阵是不可逆的)而生成的。关于找到正确的版本,您应该能够使用
george.__file__获得模块的绝对路径,这应该有助于您更好地了解活动文件的位置。