Hi, I get this error 'Unknown variable energy'
when calling pm.bfmi(trace)
on a trace
variable that I sampled with trace=backend
where backend
is a Text()
backend. This is not the reloaded trace from disk, but the original object returned by pm.sample
. Same error on the trace
loaded from disk. Any ideas what I’m doing wrong here, or is this a bug?
with my_model:
backend = pm.backends.Text("traces")
trace = pm.sample(**SAMPLE_KWARGS, trace=backend)
pm.bfmi(trace)
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-70-69aaad1a469d> in <module>()
----> 1 pm.bfmi(trace)
~/.pyenv/versions/3.6.5/lib/python3.6/site-packages/pymc3/stats.py in bfmi(trace)
1056 The Bayesian fraction of missing information of the model and trace.
1057 """
-> 1058 energy = trace['energy']
1059
1060 return np.square(np.diff(energy)).mean() / np.var(energy)
~/.pyenv/versions/3.6.5/lib/python3.6/site-packages/pymc3/backends/base.py in __getitem__(self, idx)
317 if var in self.stat_names:
318 return self.get_sampler_stats(var, burn=burn, thin=thin)
--> 319 raise KeyError("Unknown variable %s" % var)
320
321 _attrs = set(['_straces', 'varnames', 'chains', 'stat_names',
KeyError: 'Unknown variable energy'