0

我无法使用 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 的新手,我不太熟悉如何完成)?

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

4

1 回答 1

0

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

emcee.__version__

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

pip install -U emcee

或与conda(看起来像您正在使用的)。

conda install -c conda-forge emcee

在其conda forge 页面上查看有关使用 conda 安装 emcee 的更多详细信息

于 2020-07-02T16:57:31.033 回答