设计一个简单的二项分布会在 pymc 中抛出核心转储

Designing a simple Binomial distribution throws core dump in pymc

我正在尝试在 pymc 中设计一个简单的二项分布。但是它失败并出现以下错误,如果我使用泊松分布而不是二项式

,则相同的代码可以正常工作
import pymc as pm
from pymc import Beta,Binomial,Exponential
import numpy as np
from pymc.Matplot import plot as mcplot

data = pm.rbinomial(5,0.01,size=100)
p = Beta("p",1,1)
observations = Binomial("obs",5,p,value=data,observed=True)
model = pm.Model([p,observations])
mcmc = pm.MCMC(model)
mcmc.sample(400,100,2)
mcplot(mcmc)

错误

venki@venki-HP-248-G1-Notebook-PC:~/Desktop$ python perf_testing.py 
*** glibc detected *** python: free(): corrupted unsorted chunks: 0x0000000003cb0d40 ***
*** glibc detected *** python: malloc(): memory corruption: 0x00000000038bf2e0 ***

我还在 github pymc 中创建了一个问题。我不确定,如果我错了还是错误?

OS

Python 2.7.3
pymc 2.3.4
Ubuntu 12.04.5 LTS

我认为这是一个错误(这里是 a link to the issue you opened,谢谢!)。

这里有一个您现在可以使用的解决方法:不要像上面那样创建 observations,而是使用 np 参数,它们具有维度匹配 data:

observations = Binomial("obs", 5*np.ones_like(data),
                        p*np.ones_like(data), value=data,observed=True)