【问题标题】:Kernel restarting running Ipython + PyMC内核重新​​启动运行 Ipython + PyMC
【发布时间】:2014-12-06 00:34:44
【问题描述】:

当我运行以下代码时,Ipython Notebook 中出现错误提示 The kernel appears to have died. It will restart automatically.

from sklearn.datasets import load_boston
import numpy as np
import pymc as pm
import pandas as pd

boston = load_boston()
features = ['INDUS', 'NOX', 'RM', 'TAX', 'PTRATIO', 'LSTAT']
df = pd.DataFrame(boston.data, columns=boston.feature_names)
X = np.array(df.ix[:, features])
y = boston.target

gamma = pm.Binomial('gamma', 1, 0.5, size=len(features))
var = pm.Lambda('var', lambda gamma=gamma: (1-gamma)*0.001 + gamma*10)
prec = pm.Lambda('prec', lambda var=var: 1.0/var)
b = pm.Normal('b', 0, prec)
int_ = pm.Normal('int_', 0, 0.01)
taue = pm.Gamma('taue', 0.1, 0.1)
mu = int_ + X[:,0]*b[0] + X[:,1]*b[1] + X[:,2]*b[2] + X[:,3]*b[3] + X[:,4]*b[4] + X[:,5]*b[5]
observed = pm.Normal('obs', mu, taue, observed=True, value=y)
M = pm.MCMC([observed, mu, int_, b, prec, var, gamma])
M.sample(10000, 500, 5)

pm.Matplot.plot(M)

如果它是相关的,我正在尝试从这个page(WinBUGS 代码,第 14 页)重现贝叶斯变量选择的示例。有时运行M.sample()时内核会失败,但大多数时候运行pm.Matplot.plot(M)时会出现错误

我也尝试使用ipython qtconsole,但结果是一样的。在ipython 中,它会导致分段错误。我正在使用带有 ipython 2.3.0、matplotlib 1.4.0、pandas 0.14.1、scikit-learn 0.15.2、pymc 2.3.4 和 python 2.7.8 的 conda 环境。我用 ipython 3.0.0 创建了一个新环境,但是这个问题仍然存在。

谁能重现这个问题?

更新

我使用全新的 Anaconda 环境在 EC2 实例中尝试了这个示例,这是我能找到的唯一一个错误示例。我需要添加的唯一代码如下:

import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt

因此,我基本上是在 ipython 中运行它:

import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
%run model

model 是一个文件,其中包含与我最初发布的完全相同的代码。错误有点改变。例如:

IndexError                                Traceback (most recent call last)
/home/ubuntu/model.py in <module>()
     16 int_ = pm.Normal('int_', 0, 0.01)
     17 taue = pm.Gamma('taue', 0.1, 0.1)
---> 18 mu = int_ + X[:,0]*b[0] + X[:,1]*b[1] + X[:,2]*b[2] + X[:,3]*b[3] + X[:,4]*b[4] + X[:,5]*b[5]
     19 observed = pm.Normal('obs', mu, taue, observed=True, value=y)
     20 M = pm.MCMC([observed, mu, int_, b, prec, var, gamma])

IndexError: index 0 is out of bounds for axis 1 with size -4611686018427387904

*** Error in `/home/ubuntu/anaconda/envs/env3/bin/python': double free or corruption (out): 0x00000000028a0b00 ***
Aborted (core dumped)

另一个:

In [5]: %run model
 [-----------------100%-----------------] 10000 of 10000 complete in 17.7 sec/home/ubuntu/anaconda/envs/env3/lib/python2.7/site-packages/numpy/core/fromnumeric.py:2499: VisibleDeprecationWarning: `rank` is deprecated; use the `ndim` attribute or function instead. To find the rank of a matrix see `numpy.linalg.matrix_rank`.
  VisibleDeprecationWarning)
Plotting int_
Plotting prec_0
Plotting prec_1
Plotting prec_2
Plotting prec_3
Plotting prec_4
Plotting prec_5
Plotting var_0
Plotting var_1
Plotting var_2
Plotting var_3
Plotting var_4
Plotting var_5
Plotting gamma_0
Plotting gamma_1
Plotting gamma_2
Plotting gamma_3
Plotting gamma_4
Plotting gamma_5
Plotting b_0
Plotting b_1
Plotting b_2
Plotting b_3
Plotting b_4
Plotting b_5
*** Error in `/home/ubuntu/anaconda/envs/env3/bin/python': double free or corruption (out): 0x00000000023dc940 ***
Aborted (core dumped)

再次,类似于上面的错误:

In [6]: %run model
 [-----------------100%-----------------] 10000 of 10000 complete in 18.4 secPlotting var_0
*** Error in `/home/ubuntu/anaconda/envs/env3/bin/python': double free or corruption (out): 0x00000000035f0f10 ***
Aborted (core dumped)

这个发生得更早:

In [13]: gamma = pm.Binomial('gamma', 1, 0.5, size=len(features))
Segmentation fault (core dumped)

最后:

In [22]: M.sample(10000, 500, 5)
Segmentation fault (core dumped)

有时,代码会正确运行并生成多个图。作为比较,我还运行了 this examplethis one 没有问题。

This是我在conda环境中安装的包列表。

【问题讨论】:

    标签: ipython ipython-notebook pymc


    【解决方案1】:

    这在 Python 2.7.6 和 IPython 3.0.0-dev 上运行得很好。您可以尝试升级/更改您的 Matplotlib 吗?

    【讨论】:

    • 谢谢。我会试试的。
    • 使用从主分支安装的 Ipython 2.3.0 和 matplotlib 会有所帮助。当我第一次运行代码时,它可以工作。但是,如果我再次重新运行相同的代码,它会在绘图时重新启动内核。我将再次安装 Ipython 3.0.0-dev 看看是否有帮助。
    • Ipython 3.0.0-dev 根本没有帮助。实际上,有时在绘图之前重新启动并在重新运行代码后产生与 ipython 2.3.0 中相同的行为。您的环境中还有其他不同的东西吗?
    • 我仅使用 Ipython 发布了有关此问题的更新。也许这有助于解决这个问题。
    猜你喜欢
    • 2015-10-27
    • 1970-01-01
    • 2018-11-15
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    • 2021-05-03
    相关资源
    最近更新 更多