PyMC3:Spyder中的RuntimeError

问题描述 投票:0回答:1

我正在学习使用PyMC3。但是,每当我尝试在Spyder 4.0.0中运行MCMC模拟时,都会收到以下RuntimeError:

RuntimeError:主进程与其主进程之间的通信管道产卵的孩子坏了。在Windows操作系统中,这通常意味着子进程在生成时引发异常,之前它被设置为与主要过程进行通信。引发的异常由子进程处理,而无法从中捕获或处理产卵主进程,以及从IPython或jupyter笔记本运行时交互式内核,孩子的异常和回溯似乎是丢失。查看孩子错误并尝试解决或处理的已知方法它是将有问题的代码作为批处理脚本从系统的命令提示符。孩子的例外将打印到命令Promt的stderr,并且应该在此错误上方可见,并且追溯。请注意,如果运行被调用的jupyter笔记本,从命令提示符中,应该已经打印出孩子的异常到运行笔记本的命令提示符。

作为示例,我正在使用PyMC3“入门”教程(https://docs.pymc.io/notebooks/getting_started.html)的第一个示例中的复制粘贴,但是无论使用哪种模型,我似乎都会遇到此错误。运行pm.sample()功能行时,只会出现错误。我尝试使用新的虚拟环境,甚至从计算机上删除并重新安装Python / Anaconda。有趣的是,当我在Jupyter中运行程序时,它可以工作。有什么想法吗?

# True parameter values
alpha, sigma = 1, 1
beta = [1, 2.5]

# Size of dataset
size = 100

# Predictor variable
X1 = np.random.randn(size)
X2 = np.random.randn(size) * 0.2

# Simulate outcome variable
Y = alpha + beta[0]*X1 + beta[1]*X2 + np.random.randn(size)*sigma

basic_model = pm.Model()
with basic_model:

    # Priors for unknown model parameters
    alpha = pm.Normal('alpha', mu=0, sigma=10)
    beta = pm.Normal('beta', mu=0, sigma=10, shape=2)
    sigma = pm.HalfNormal('sigma', sigma=1)

    # Expected value of outcome
    mu = alpha + beta[0]*X1 + beta[1]*X2

    # Likelihood (sampling distribution) of observations
    Y_obs = pm.Normal('Y_obs', mu=mu, sigma=sigma, observed=Y)

with basic_model:
    # draw 500 posterior samples
    trace = pm.sample(500)
spyder pymc3
1个回答
0
投票

尝试一下:

with basic_model:
    # draw 500 posterior samples
    trace = pm.sample(500, cores=1)
© www.soinside.com 2019 - 2024. All rights reserved.