我还在学习使用PyMC3的基础知识,所以希望在文档中已经不那么明显了.基本的想法是,我已经将我的模型放在一起,对它进行了一些采样以建立我的后验分布并保存链.如果我按照后端页面的建议加载链,就像trace = pm.backends.text.load('test_txt')那样我得到TypeError: No context on context stack.我期望的是,我能够将text.load方法指向已保存的数据库,并且我将获得具有所有跟踪值的numpy数组,即数据库将包含访问链值所需的所有信息.
小狩猎和装载在PyMC3一丝我能找到的唯一的例子是在这里,而显示正在使用相同的模型变量加载走线,用于创建它.如果我想要一个脚本来运行我的链和一个单独的脚本来加载和分析跟踪,那么唯一的方法就是在两个文件中使用相同的命令初始化模型.这听起来很容易在文件之间产生不一致,但是因为我必须手动保持模型相同.
这是一个从PyMC入门页面获取的示例,我保存链.我在短脚本中保存了以下代码.
import numpy as np
import pymc3 as pm
from scipy import optimize
# Initialize random number generator
np.random.seed(123)
# True parameter values
alpha, sigma = 1, 1
beta = [1, 2.5]
# Size of dataset
size = 100
# Predictor variable
X1 = np.random.randn(size)
X2 = np.random.randn(size) * 0.2
# Simulate outcome variable
Y = alpha + beta[0]*X1 + beta[1]*X2 …Run Code Online (Sandbox Code Playgroud)