首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在大都会采样中,PyMC3比PyMC慢得多

在大都会采样中,PyMC3比PyMC慢得多
EN

Stack Overflow用户
提问于 2018-12-28 02:36:57
回答 1查看 1.1K关注 0票数 1

我正在尝试比较PyMC和PyMC3的采样速度。

PyMC:

代码语言:javascript
复制
p1 = pymc.Normal('p1', 10, 0.5)
p2 = pymc.Gamma('p2', 11, 5)
p3 = pymc.Normal('p3', p1, p2)
model = pymc.Model([p1, p2, p3])

mcmc = pymc.MCMC(model)
mcmc.use_step_method(pymc.Metropolis, p1, p2, p3)
mcmc.sample(10000, progress_bar=True)

这花了2.7秒

PyMC3:

代码语言:javascript
复制
with pm.Model() as model:
    p1 = pm.Normal('p1', 10, 0.5)
    p2 = pm.Gamma('p2', 11, 5)
    p3 = pm.Normal('p3', p1, p2)
    steps = pm.Metropolis(vars=[p1, p2, p3])
    trace = pm.sample(10000,step=steps, progressbar=True)

这花了6.6秒

这是正常的吗?我是不是错过了PyMC3的一些优化技巧?

EN

回答 1

Stack Overflow用户

发布于 2019-01-18 05:40:57

这很正常!PyMC3针对运行坚果进行了优化,这是一种用于连续模型的MCMC算法,其效率比大都会从分层模型中采样的效率高出一个数量级。相反,pymc是用fortran编写的,它提供了比pymc3中的jitted代码更快的速度,并且可能更关心像Metropolis这样的算法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53949426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档