Hello, I am porting an old PyMC3 model (written in 2019, so I assume it was v3.7 or similar) to the PyMC and am struggling. Does there exist a vocabulary from ‘old’ to ‘new’ way of doing things? For example, what should I use instead of

`theano.shared`

`.astype(floatX)`

in an expression like `np.random.normal(loc=0, scale=1, size=[2, 3]).astype(floatX)`

- how to get access to posterior of a specific parameter? I reran this example in Colab, and it breaks with the new PyMC at the expression
`trace2['alpha']`

Most of the times it’s enough to replace `theano.x`

by `pytensor.x`

. In your case `pytensor.shared`

1 Like

Re: the last point, all the `pm.sample`

functions return arviz `InferenceData`

by default now, so you can grab variables as if you had first done `az.from_pymc3`

in older versions. This notebook also does a lot grabbing stuff out of InferenceData, so it might be good to check out.

1 Like

Thanks both @ricardoV94 @jessegrabowski, `pytensor`

got me a long way. The item I am stuck with now is

1). getting samples of a particular variable from trace,

2). getting samples of a particular variable from prior/posterior predictive.

For example, the code below produces errors on the last two lines. What am I doing wrong? Here is a link to Colab with the same code for reproducibility.

```
import pymc as pm
n = 250
with pm.Model() as model:
alpha = pm.Gamma('alpha', alpha=4, beta=0.5)
beta = pm.Gamma('beta', alpha=4, beta=0.5)
x1 = pm.Beta('x1', alpha, beta)
x2 = pm.Beta('x2', alpha, beta)
k1 = pm.Binomial('k1', n=n, p=x1, observed=140)
k2 = pm.Binomial('k2', n=n, p=x2, observed=110)
with model:
trace_prior = pm.sample_prior_predictive(500)
with model:
trace_sample = pm.sample(500)
trace_prior['alpha']
trace_sample['alpha']
```

`trace_prior`

will have groups `prior`

and `prior_predictive`

. Since alpha isn’t observed, you can get it out of the prior group like this: `trace_prior.prior['alpha']`

.

`trace_sample`

will have a bunch of groups, but the relevant one here is `posterior`

: `trace_sample.posterior['alpha']`

If you’re working in a notebook, you run a cell with only `trace_prior`

or `trace_sample`

to get a nice interactive object you can click around inside to explore the structure.

1 Like