Skip to content

Error in Poster.ipynb #1

Open
Open
@spring-haru

Description

@spring-haru

In Poster.ipynb, when I ran the following cell

nburn = 10000
nthin = 10

# Convert for use with ArviZ and plot posterior
samples_rw = az.convert_to_inference_data(
    {'parameters': samples_rw[None, ..., None]},
    coords={'parameter': model_rw.param_names},
    dims={'parameters': ['parameter']})
ax = az.plot_posterior(samples_rw.posterior.sel(
    {'draw': np.s_[nburn::nthin]}), kind='bin', point_estimate='median');

the following error is generated

KeyError                                  Traceback (most recent call last)
Input In [20], in <cell line: 5>()
      2 nthin = 10
      4 # Convert for use with ArviZ and plot posterior
      5 samples_rw = az.convert_to_inference_data(
----> 6     {'parameters': samples_rw[None, ..., None]},
      7     coords={'parameter': model_rw.param_names},
      8     dims={'parameters': ['parameter']})
      9 ax = az.plot_posterior(samples_rw.posterior.sel(
     10     {'draw': np.s_[nburn::nthin]}), kind='bin', point_estimate='median')

File /opt/anaconda3/envs/latest/lib/python3.10/site-packages/arviz/data/inference_data.py:259, in InferenceData.__getitem__(self, key)
    257 """Get item by key."""
    258 if key not in self._groups_all:
--> 259     raise KeyError(key)
    260 return getattr(self, key)

KeyError: (None, Ellipsis, None)

Then, I removed [None, ..., None], but still giving an error:

/opt/anaconda3/envs/latest/lib/python3.10/site-packages/arviz/data/base.py:130: UserWarning: In variable parameters, there are more dims (1) given than exist (0). Passed array should have shape (chain,draw, *shape)
  warnings.warn(
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Input In [21], in <cell line: 5>()
      2 nthin = 10
      4 # Convert for use with ArviZ and plot posterior
----> 5 samples_rw = az.convert_to_inference_data(
      6     {'parameters': samples_rw},
      7     coords={'parameter': model_rw.param_names},
      8     dims={'parameters': ['parameter']})
      9 ax = az.plot_posterior(samples_rw.posterior.sel(
     10     {'draw': np.s_[nburn::nthin]}), kind='bin', point_estimate='median')

File /opt/anaconda3/envs/latest/lib/python3.10/site-packages/arviz/data/converters.py:111, in convert_to_inference_data(obj, group, coords, dims, **kwargs)
    109     dataset = obj.to_dataset()
    110 elif isinstance(obj, dict):
--> 111     dataset = dict_to_dataset(obj, coords=coords, dims=dims)
    112 elif isinstance(obj, np.ndarray):
    113     dataset = dict_to_dataset({"x": obj}, coords=coords, dims=dims)

File /opt/anaconda3/envs/latest/lib/python3.10/site-packages/arviz/data/base.py:306, in dict_to_dataset(data, attrs, library, coords, dims, default_dims, index_origin, skip_event_dims)
    303 if dims is None:
    304     dims = {}
--> 306 data_vars = {
    307     key: numpy_to_data_array(
    308         values,
    309         var_name=key,
    310         coords=coords,
    311         dims=dims.get(key),
    312         default_dims=default_dims,
    313         index_origin=index_origin,
    314         skip_event_dims=skip_event_dims,
    315     )
    316     for key, values in data.items()
    317 }
    318 return xr.Dataset(data_vars=data_vars, attrs=make_attrs(attrs=attrs, library=library))

File /opt/anaconda3/envs/latest/lib/python3.10/site-packages/arviz/data/base.py:307, in <dictcomp>(.0)
    303 if dims is None:
    304     dims = {}
    306 data_vars = {
--> 307     key: numpy_to_data_array(
    308         values,
    309         var_name=key,
    310         coords=coords,
    311         dims=dims.get(key),
    312         default_dims=default_dims,
    313         index_origin=index_origin,
    314         skip_event_dims=skip_event_dims,
    315     )
    316     for key, values in data.items()
    317 }
    318 return xr.Dataset(data_vars=data_vars, attrs=make_attrs(attrs=attrs, library=library))

File /opt/anaconda3/envs/latest/lib/python3.10/site-packages/arviz/data/base.py:255, in numpy_to_data_array(ary, var_name, coords, dims, default_dims, index_origin, skip_event_dims)
    253 # filter coords based on the dims
    254 coords = {key: xr.IndexVariable((key,), data=np.asarray(coords[key])) for key in dims}
--> 255 return xr.DataArray(ary, coords=coords, dims=dims)

File /opt/anaconda3/envs/latest/lib/python3.10/site-packages/xarray/core/dataarray.py:419, in DataArray.__init__(self, data, coords, dims, name, attrs, indexes, fastpath)
    417 data = _check_data_shape(data, coords, dims)
    418 data = as_compatible_data(data)
--> 419 coords, dims = _infer_coords_and_dims(data.shape, coords, dims)
    420 variable = Variable(dims, data, attrs, fastpath=True)
    421 indexes, coords = _create_indexes_from_coords(coords)

File /opt/anaconda3/envs/latest/lib/python3.10/site-packages/xarray/core/dataarray.py:133, in _infer_coords_and_dims(shape, coords, dims)
    131     dims = tuple(dims)
    132 elif len(dims) != len(shape):
--> 133     raise ValueError(
    134         "different number of dimensions on data "
    135         f"and dims: {len(shape)} vs {len(dims)}"
    136     )
    137 else:
    138     for d in dims:

ValueError: different number of dimensions on data and dims: 2 vs 3

Am I missing something?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions