我正在使用Dirichlet过程混合模型(DPMM)根据以下Edward使用community post在合成数据集上推断群集分配和群集参数。我正在使用GPU加速的Metropolis Hastings来学习模型参数的后验分布。例如,对于集群方式,我们有:
D = 2 #dimension of the data
K = 5 #cluster truncation
T = 10000 #number of samples
mu = Normal(loc=tf.zeros(D), scale=tf.ones(D), sample_shape=K)
qmu = Normal(loc=tf.zeros(D), scale=tf.ones(D), sample_shape=K) #posterior
gmu = Normal(loc=tf.zeros(D), scale=tf.ones(D), sample_shape=K) #proposal
inference = ed.MetropolisHastings(
latent_vars={mu: qmu, ...},
proposal_vars={mu: gmu, ...},
data={x: x_data})
我有兴趣生成一个跟踪图来显示来自后验分布qmu
的样本。我正在寻找类似于PyMC pm.traceplot()
的东西
如何在爱德华中生成跟踪图?
答案 0 :(得分:2)
对于采样中使用的Empirical
分布,我们可以按如下方式访问采样值:
thin=4
burnin=2000
qmu_trace = qmu.params[burnin::thin].eval()
然后我们可以像往常一样绘制轨迹并计算直方图和自相关。