Hm, I’m getting different values for even Deterministic quantities when I declare them in this way. Here’s a minimal example:
import pymc as pm
from pymc.model.fgraph import clone_model
with pm.Model() as model:
data = pm.ConstantData('data',[0])
mu = pm.Normal('mu', mu=0, sigma=1)
mu_squared1 = pm.Deterministic('mu_squared1', mu**2)
y = pm.Normal('y', mu=mu, sigma=1, observed=data)
with clone_model(model) as model2:
mu_squared2 = pm.Deterministic('mu_squared2', mu**2)
with model2:
trace = pm.sample_prior_predictive(
samples = 1
, var_names = ['mu','mu_squared1','mu_squared2']
)
Which yields:
>>> trace['prior']['mu']
array([[-1.44118118]])
>>> trace['prior']['mu_squared1']
array([[2.0770032]])
>>> trace['prior']['mu_squared2']
array([[0.25616674]])