gpt4 book ai didi

python - 从 pymc 中保存的痕迹中绘制图形

转载 作者:太空狗 更新时间:2023-10-30 03:01:56 24 4
gpt4 key购买 nike

我需要用不同的参数运行 MCMC 不同的时间来检查收敛性。所以我决定保存痕迹,这样当我需要知道(出于同牢目的)

的结果是什么时

pymc.MCMC (iter = 10000, burn = 1000, thin = 10)

我不需要重新运行它。 (这需要很多时间(我必须对许多不同的参数值做同样的事情))。

我找到了解决方案

m = MCMC([tau, rv], db='pickle', dbname='10000iter1000burn.pickle')
m.sample(iter = 10000, burn = 5000, thin = 10)
m.db.close()

所以跟踪现在保存在名为10000iter1000burn.pickle的数据库中

现在,为了加载跟踪,我执行以下操作

db = pymc.database.pickle.load('10000iter5000burn.pickle')

当我执行 print db.trace('tau')[:] 时,我得到了相同的输出,但是当我想要 tp 绘制图形或获取其他信息时,它失败了

plot(db)  #error

plot() 至少需要 2 个参数(给定 1 个)但是当我执行 plot(m) 时(当我再次运行采样器时的初始情况),它工作正常。

同样 db.tau.summary() 给出错误 'Trace' object has no attribute 'summary'当我执行 m.tau.summary()

时它工作正常

db.logp也是如此

我是这个领域的新手。如果语法中某处有任何错误,请纠正我。如果有其他方法可以重新绘制图形并获得模型的对数概率而无需再次运行 mcmc,我将很高兴知道。

最佳答案

您不能只将数据库后端传递给绘图函数。您可以传递 (1) 原始节点/随机 (2) 跟踪对象 (3) pymc 节点/随机的字典或 (4) 原始输出。

关于python - 从 pymc 中保存的痕迹中绘制图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23922290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com