Serialization PyMC在采样后更改后端
我一直在使用PyMC分析一些高能物理数据。它已经工作到了完美的程度,分析已经完成,我们正在撰写论文 然而,我有一个小问题。我使用Serialization PyMC在采样后更改后端,serialization,pymc,Serialization,Pymc,我一直在使用PyMC分析一些高能物理数据。它已经工作到了完美的程度,分析已经完成,我们正在撰写论文 然而,我有一个小问题。我使用RAM数据库后端运行了采样器。这些痕迹在IPython内核进程的内存中已经存在了几个月了。问题是工作站支持人员希望执行内核升级并重新启动该工作站。这会使我失去踪迹。我想保留这些痕迹(而不是仅仅生成新的),因为它们是我制作所有情节的依据。我还想将一部分痕迹(仅感兴趣的参数)作为出版物的补充材料 是否可以在使用RAM后端创建的pymc.MCMC对象中获取现有链,更改为其他后
RAM
数据库后端运行了采样器。这些痕迹在IPython内核进程的内存中已经存在了几个月了。问题是工作站支持人员希望执行内核升级并重新启动该工作站。这会使我失去踪迹。我想保留这些痕迹(而不是仅仅生成新的),因为它们是我制作所有情节的依据。我还想将一部分痕迹(仅感兴趣的参数)作为出版物的补充材料
是否可以在使用
RAM
后端创建的pymc.MCMC
对象中获取现有链,更改为其他后端,并写出链中的跟踪?跟踪值存储为NumPy数组,因此可以使用NumPy.savetxt
将每个参数的值发送到文件。(这就是文本后端在引擎盖下的作用。)
虽然保存当前跟踪是个好主意,但我建议在发布之前花点时间让您的分析可以重复。谢谢。当然,分析是可以重复的,我只是不想在这一点上重新做一个通宵运行(再次)。而这些图已经按原样得到了合作组织的批准。如果他们改变了,即使这些改变是看不见的(他们会是看不见的),我也必须再次通过审批流程。因此,保存现有跟踪是可取的。在更一般的情况下,某些计算可能会禁止再次运行。也许你会收到CPU时间的账单。能够从这样的错误中挽救一次跑步是很好的。