emcee EnsembleSampler 对象没有属性get_chain



我在使用 get_chain(( 方法访问从 emcee 生成的值时遇到问题。我的代码如下:

import numpy as np
import emcee
def log_prob(x): return -np.sum(x**2)
p0 = np.array(np.random.randn(12, 1))
sampler = emcee.EnsembleSampler(12, 1, log_prob)
sampler.run_mcmc(p0, 1000)
samples = sampler.get_chain()

当我运行它时,我收到消息AttributeError: 'EnsembleSampler' object has no attribute 'get_chain',我不确定为什么。 我在网上的某个地方读到get_chain((方法只是在较新版本的emcee中添加的,并且需要从GitHub下载。如果这是问题所在,我将如何从GitHub下载它并确保它仍然可以与Anaconda一起使用(我是Python/GitHub的新手,我不太熟悉如何做到这一点(?

任何帮助将不胜感激!谢谢!

正如您所怀疑的,这可能是由于安装了旧版本的 emcee。您可以检查安装的版本

emcee.__version__

emcee3 在很长一段时间内只是一个候选版本(而不是官方版本(,因此您阅读的博客文章中的建议。然而,它已经发布,这篇文章可能至少有将近一年的历史了。您应该能够更新到最新的司仪并使用pip修复您的问题

pip install -U emcee

或带有conda(看起来像您正在使用的(。

conda install -c conda-forge emcee

有关使用 Conda 安装的 Emcee 的更多详细信息,请访问其 Conda Forge 页面

相关内容

  • 没有找到相关文章

最新更新