What’s the most efficient way to move from a single-sample D-C distribution:

```
alpha = [1.] * 5
with pm.Model() as model:
dprior = pm.Dirichlet('dir', np.array(alpha), shape=(5,))
picks = pm.Categorical('pick', dprior)
spp = pm.sample_prior_predictive(50)
```

to a multivariate version:

```
alpha = [1.] * 5
k = 3
with pm.Model() as model:
dprior = pm.Dirichlet('dir', np.array(alpha), shape=(k, 5))
# picks = pm.Categorical('pick', dprior) # DOES NOT WORK
# picks = pm.Categorical('pick', dprior, shape=(k,)) # DOES NOT WORK
# picks = pm.Categorical('pick', dprior, shape=(5,)) # DOES NOT WORK
# picks = pm.Categorical('pick', dprior, shape=(5,k)) # DOES NOT WORK (but unique error)
# picks = pm.Categorical('pick', dprior, shape=(k,5)) # DOES NOT WORK
spp = pm.sample_prior_predictive(50)
```

What’s the trick here?

The unique error looks like a collision between `shape`

and `size`

kwargs:

```
~/anaconda3/lib/python3.7/site-packages/pymc3/distributions/dist_math.py in random_choice(*args, **kwargs)
320 """
321 p = kwargs.pop('p')
--> 322 size = kwargs.pop('size')
323 k = p.shape[-1]
324
```