0

我已经用 rjags 实现了 LDA 模型。我成功获得了最终样本:

jags <- jags.model('../lda_jags.bug',
               data = data,
               n.chains = 1,
               n.adapt = 100)

update(jags, 2000)

samples <- jags.samples(jags,
         c('theta', 'phi', 'z'),
         1000)

现在我可以使用samples$thetaorsamples$phi来获得thetaand的结果phi。但是我怎么知道采样需要多长时间?谢谢!

4

1 回答 1

1

正如@eipi10 所说,您可以在 update() 调用周围使用 system.time() 来为 R 中的进程计时。或者,您可以使用 runjags 包打印更新模型所花费的(总)时间,包括所有以前的调用扩展.jags:

library('runjags')
results <- run.jags('../lda_jags.bug', monitor = c('theta', 'phi', 'z'), 
           data = data, n.chains = 1, adapt = 100, burnin = 2000, sample = 1000)
results

# or:

jags <- jags.model('../lda_jags.bug',
               data = data,
               n.chains = 1,
               n.adapt = 0)
runjags <- as.runjags(jags, monitor = c('theta', 'phi', 'z'))
results <- extend.jags(runjags, adapt = 100, burnin = 2000, sample = 1000)
results
results <- extend.jags(runjags, sample = 1000)
results
于 2016-04-25T07:30:40.550 回答