I’m trying to convert a trace to arviz but I’m getting an exception.
trace = pymc3.backends.sqlite.load(file)
converter = arviz.data.io_pymc3.PyMC3Converter(
trace=trace,
model=model,
)
In [7]: converter.to_inference_data()
In [7]: converter.to_inference_data()
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
~/tools/miniconda3/lib/python3.7/site-packages/pymc3/backends/base.py in __getitem__(self, idx)
139 try:
--> 140 return self.point(int(idx))
141 except (ValueError, TypeError): # Passed variable or variable name.
~/tools/miniconda3/lib/python3.7/site-packages/pymc3/backends/sqlite.py in point(self, idx)
268 values = _rows_to_ndarray(self.db.cursor)
--> 269 var_values[varname] = values.reshape(self.var_shapes[varname])
270 return var_values
ValueError: cannot reshape array of size 0 into shape (6,)
During handling of the above exception, another exception occurred:
ValueError Traceback (most recent call last)
/data/r4/projects/wellbeing/notebooks/state_year_load.py in <module>
----> 1 converter.to_inference_data()
~/tools/miniconda3/lib/python3.7/site-packages/arviz/data/io_pymc3.py in to_inference_data(self)
366 "posterior": self.posterior_to_xarray(),
367 "sample_stats": self.sample_stats_to_xarray(),
--> 368 "log_likelihood": self.log_likelihood_to_xarray(),
369 "posterior_predictive": self.posterior_predictive_to_xarray(),
370 "predictions": self.predictions_to_xarray(),
~/tools/miniconda3/lib/python3.7/site-packages/arviz/data/base.py in wrapped(cls, *args, **kwargs)
35 if all([getattr(cls, prop_i) is None for prop_i in prop]):
36 return None
---> 37 return func(cls, *args, **kwargs)
38
39 return wrapped
~/tools/miniconda3/lib/python3.7/site-packages/arviz/data/base.py in wrapped(cls, *args, **kwargs)
35 if all([getattr(cls, prop_i) is None for prop_i in prop]):
36 return None
---> 37 return func(cls, *args, **kwargs)
38
39 return wrapped
~/tools/miniconda3/lib/python3.7/site-packages/arviz/data/io_pymc3.py in log_likelihood_to_xarray(self)
212 return None
213 try:
--> 214 data = self._extract_log_likelihood()
215 except TypeError:
216 warnings.warn(
~/tools/miniconda3/lib/python3.7/site-packages/arviz/data/base.py in wrapped(cls, *args, **kwargs)
35 if all([getattr(cls, prop_i) is None for prop_i in prop]):
36 return None
---> 37 return func(cls, *args, **kwargs)
38
39 return wrapped
~/tools/miniconda3/lib/python3.7/site-packages/arviz/data/base.py in wrapped(cls, *args, **kwargs)
35 if all([getattr(cls, prop_i) is None for prop_i in prop]):
36 return None
---> 37 return func(cls, *args, **kwargs)
38
39 return wrapped
~/tools/miniconda3/lib/python3.7/site-packages/arviz/data/io_pymc3.py in _extract_log_likelihood(self)
177 log_like_chain = [
178 self.log_likelihood_vals_point(point, var, log_like_fun)
--> 179 for point in self.trace.points([chain])
180 ]
181 log_likelihood_dict.insert(var.name, np.stack(log_like_chain), chain)
~/tools/miniconda3/lib/python3.7/site-packages/arviz/data/io_pymc3.py in <listcomp>(.0)
176 for chain in self.trace.chains:
177 log_like_chain = [
--> 178 self.log_likelihood_vals_point(point, var, log_like_fun)
179 for point in self.trace.points([chain])
180 ]
~/tools/miniconda3/lib/python3.7/site-packages/pymc3/backends/base.py in __getitem__(self, idx)
140 return self.point(int(idx))
141 except (ValueError, TypeError): # Passed variable or variable name.
--> 142 raise ValueError('Can only index with slice or integer')
143
144 def __len__(self):
ValueError: Can only index with slice or integer
Versions and main components
- PyMC3 Version: 3.8
- Theano Version: 1.0.4
- Python Version: 3.7.4
- Operating system: Ubuntu
- How did you install PyMC3: conda