PYMC3:forrtl:错误(200):由于Control-C事件导致程序中止

时间:2018-07-03 21:40:57

标签: python pymc3

我是python和pymc3的新手。我正在尝试复制PYMC3文档站点https://docs.pymc.io/notebooks/getting_started.html#A-Motivating-Example:-Linear-Regression给出的线性回归示例。我在Windows 10上运行anaconda 5.2,python 3.6.5,这也导致控制台冻结,命令行消失。

有人可以帮助我了解此错误吗?

import numpy as np
import matplotlib.pyplot as plt

# Initialize random number generator
np.random.seed(123)

# 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



import pymc3 as pm
print('Running on PyMC3 v{}'.format(pm.__version__))

basic_model = pm.Model()

with basic_model:

    # Priors for unknown model parameters
    alpha = pm.Normal('alpha', mu=0, sd=10)
    beta = pm.Normal('beta', mu=0, sd=10, shape=2)
    sigma = pm.HalfNormal('sigma', sd=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, sd=sigma, observed=Y)

map_estimate = pm.find_MAP(model=basic_model)

map_estimate

map_estimate = pm.find_MAP(model=basic_model, method='powell')

map_estimate


   with basic_model:
       # draw 500 posterior samples
        trace = pm.sample(500)


with basic_model:

    # instantiate sampler
    step = pm.Slice()

    # draw 5000 posterior samples
    trace = pm.sample(5000, step=step)

    pm.traceplot(trace);

    pm.summary(trace).round(2)

我收到的错误:

Exception: ('The following error happened while compiling the node', 
Alloc(TensorConstant{(1,) of 0.0}, Shape_i{0}.0), '\n', 'Compilation failed 
(return status=3): ', '[Alloc(TensorConstant{(1,) of 0.0}, 
<TensorType(int64, scalar)>)]')
forrtl: error (200): program aborting due to control-C event
Image              PC                Routine            Line        Source             
libifcoremd.dll    00007FFBD1A594C4  Unknown               Unknown  Unknown
KERNELBASE.dll     00007FFC0098717D  Unknown               Unknown  Unknown
KERNEL32.DLL       00007FFC02EF2774  Unknown               Unknown  Unknown
ntdll.dll          00007FFC043D0D51  Unknown               Unknown  Unknown
ERROR: The process "4828" not found.
forrtl: error (200): program aborting due to control-C event
Image              PC                Routine            Line        Source             
libifcoremd.dll    00007FFBD1A594C4  Unknown               Unknown  Unknown
KERNELBASE.dll     00007FFC0098717D  Unknown               Unknown  Unknown
KERNEL32.DLL       00007FFC02EF2774  Unknown               Unknown  Unknown
ntdll.dll          00007FFC043D0D51  Unknown               Unknown  Unknown

Process finished with exit code 0

2 个答案:

答案 0 :(得分:0)

一般来说,对于pymc3问题,最好进入其discourse页面。

但是,我在Windows上的pymc3遇到了类似的问题(请注意,不是完全一样的错误消息)。尝试在示例函数中设置njobs=1,看看是否有帮助。

更新:上面的代码在我的机器上似乎可以正常编译,所以也许尝试将pymc3 / python更新到最新版本

答案 1 :(得分:0)

在程序仍在运行时,您似乎按下了“ Ctrl + C ”,并终止了该程序。尽量不要按“ Ctrl + C ”。