pymc.model.transform.insert_deterministics#
- pymc.model.transform.insert_deterministics(model, deterministics)[source]#
Splice detached Deterministics into a Model.
This is the inverse of
extract_deterministics(). The Deterministics are attached by matching the names of the Model variables they depend on against the variables in the target Model.- Parameters:
- model
Model The model to insert the Deterministics into.
- deterministicssequence of
FrozenFunctionGraph The Deterministics to insert, as returned by
extract_deterministics(). They must be provided in topological order (Deterministics that depend on other inserted Deterministics come later), which is howextract_deterministicsreturns them.
- model
- Returns:
- new_model
Model A copy of the model with the Deterministics inserted.
- new_model
See also
extract_deterministicsRemove Deterministics from a Model as detached subgraphs.
Examples
import numpy as np import pymc as pm from pymc.model.transform import ( extract_deterministics, insert_deterministics, ) with pm.Model() as model: x = pm.Data("x", np.ones((10, 3))) beta = pm.Normal("beta", shape=(3,)) mu = pm.Deterministic("mu", x @ beta) pm.Normal("y", mu=mu, sigma=1, observed=np.ones(10)) # Drop the ``mu`` Deterministic (it gets inlined into ``y``) no_det_model, deterministics = extract_deterministics(model) # Put it back model_again = insert_deterministics(no_det_model, deterministics)