【问题标题】:How can I save/restore AdaptiveMetropolis step method state?如何保存/恢复 AdaptiveMetropolis 步骤方法状态?
【发布时间】:2013-06-10 14:51:42
【问题描述】:

我一直在运行一些相当昂贵且老化时间很长的型号。我想保存和恢复 AdaptiveMetropolis 步骤方法的状态(至少)以减少老化时间。有没有推荐的方法来做到这一点,或者我应该只腌制step_method.current_state() 字典并尝试在我想重新启动时从腌制数据中更新step_method.Cstep_method.proposal_sd 以及其他人?

(来自已弃用的 Google Group 论坛的交叉帖子:https://groups.google.com/forum/#!topic/pymc/6U72WuuXmMo

【问题讨论】:

  • 目前这似乎是一个计算问题('我如何让这个软件来做这个特定的事情?')而不是一个统计问题。您能否更清楚地识别特定的统计问题,或考虑将其标记为移至 StackOverflow?
  • 你能给我们看一些代码吗?也请标记您的问题。这看起来像 python(基于 pickle 参考)
  • @booyaa - 抱歉,这是一个针对他们的论坛的 pymc 问题,它告诉我在交叉验证上发帖,然后将我重定向到这里......我会做一个代码示例...

标签: python numpy pymc


【解决方案1】:

您是否尝试过使用save_staterestore_sampler_state 方法?它们应该适用于任何非 sqlite 后端(例如 pickle、txt)。前者应将采样器信息保存到数据库中;这是一个例子:

    {'stochastics': {'alpha': array([-0.20073951]), 'beta': array([ 2.77634734])}, 'step_methods': {'AdaptiveMetropolis_beta_alpha': {'C': array([[ 41.28628017,   2.79567393],
       [  2.79567393,   1.8832875 ]]), '_trace': [array([ 10.4010084 ,   1.48321645]), ... [ 0.43509455,  1.30152996]]), 
       'accepted': 69.0, 'shrink_if_necessary': False}}, 
       'sampler': {'status': 'ready', '_iter': 2000, '_tune_interval': 1000, '_tuned_count': 0, '_tune_throughout': True, '_burn_till_tuned': False, '_current_iter': 2000, '_burn': 0, '_thin': 1}}

【讨论】:

  • 如果使用 RAM 后端运行采样会怎样?有什么办法可以保存这种状态?
  • 状态将作为dict存储在ram后端的_state_属性中。
  • 没有_state_ 属性,_state 只是一个列表。 .current_state()读取_state引用的属性,是这个意思吗?
  • 刚刚发现这个老问题,可能MCMC.get_state()['step_methods'].keys() 显示了 OP 正在寻找什么。
猜你喜欢
  • 2013-08-31
  • 2016-01-12
  • 2018-03-28
  • 1970-01-01
  • 1970-01-01
  • 2013-04-04
  • 2011-07-23
  • 2014-04-25
相关资源
最近更新 更多