PYMC3: forrtl: ошибка (200): программа прерывается из-за события control-C - PullRequest
0 голосов
/ 04 июля 2018

Я новичок в Python и Pymc3. Я пытаюсь воспроизвести пример линейной регрессии, приведенный на сайте документа PYMC3 https://docs.pymc.io/notebooks/getting_started.html#A-Motivating-Example:-Linear-Regression. Я использую anaconda 5.2, python 3.6.5 в Windows 10. Это также приводит к зависанию моей консоли и исчезновению командной строки.

Может кто-нибудь помочь мне понять эту ошибку?

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 голосов
/ 25 сентября 2018

Кажется, что вы нажали " Ctrl + C ", когда программа все еще работала, и завершили ее. Старайтесь не нажимать " Ctrl + C ".

0 голосов
/ 21 июля 2018

С вопросами по pymc3 в общем, вам лучше перейти на страницу discourse .

Однако, у меня была похожая проблема (не то же самое сообщение об ошибке, обратите внимание) с pymc3 на windows. Попробуйте установить njobs=1 в функции примера и посмотрите, поможет ли это.

Обновление: приведенный выше код нормально компилируется на моей машине, поэтому, возможно, попробуйте обновить pymc3 / python до последних версий

...