|
56 | 56 | "MultivariateNormalProposal", |
57 | 57 | ] |
58 | 58 |
|
| 59 | +from pymc.util import get_value_vars_from_user_vars |
| 60 | + |
59 | 61 | # Available proposal distributions for Metropolis |
60 | 62 |
|
61 | 63 |
|
@@ -176,9 +178,7 @@ def __init__( |
176 | 178 | if vars is None: |
177 | 179 | vars = model.value_vars |
178 | 180 | else: |
179 | | - vars = [model.rvs_to_values.get(var, var) for var in vars] |
180 | | - |
181 | | - vars = pm.inputvars(vars) |
| 181 | + vars = get_value_vars_from_user_vars(vars, model) |
182 | 182 |
|
183 | 183 | initial_values_shape = [initial_values[v.name].shape for v in vars] |
184 | 184 | if S is None: |
@@ -394,7 +394,7 @@ def __init__(self, vars, scaling=1.0, tune=True, tune_interval=100, model=None): |
394 | 394 | self.steps_until_tune = tune_interval |
395 | 395 | self.accepted = 0 |
396 | 396 |
|
397 | | - vars = [model.rvs_to_values.get(var, var) for var in vars] |
| 397 | + vars = get_value_vars_from_user_vars(vars, model) |
398 | 398 |
|
399 | 399 | if not all([v.dtype in pm.discrete_types for v in vars]): |
400 | 400 | raise ValueError("All variables must be Bernoulli for BinaryMetropolis") |
@@ -484,8 +484,9 @@ def __init__(self, vars, order="random", transit_p=0.8, model=None): |
484 | 484 | # transition probabilities |
485 | 485 | self.transit_p = transit_p |
486 | 486 |
|
| 487 | + vars = get_value_vars_from_user_vars(vars, model) |
| 488 | + |
487 | 489 | initial_point = model.initial_point() |
488 | | - vars = [model.rvs_to_values.get(var, var) for var in vars] |
489 | 490 | self.dim = sum(initial_point[v.name].size for v in vars) |
490 | 491 |
|
491 | 492 | if order == "random": |
@@ -566,8 +567,7 @@ def __init__(self, vars, proposal="uniform", order="random", model=None): |
566 | 567 |
|
567 | 568 | model = pm.modelcontext(model) |
568 | 569 |
|
569 | | - vars = [model.rvs_to_values.get(var, var) for var in vars] |
570 | | - vars = pm.inputvars(vars) |
| 570 | + vars = get_value_vars_from_user_vars(vars, model) |
571 | 571 |
|
572 | 572 | initial_point = model.initial_point() |
573 | 573 |
|
@@ -777,8 +777,7 @@ def __init__( |
777 | 777 | if vars is None: |
778 | 778 | vars = model.continuous_value_vars |
779 | 779 | else: |
780 | | - vars = [model.rvs_to_values.get(var, var) for var in vars] |
781 | | - vars = pm.inputvars(vars) |
| 780 | + vars = get_value_vars_from_user_vars(vars, model) |
782 | 781 |
|
783 | 782 | if S is None: |
784 | 783 | S = np.ones(initial_values_size) |
@@ -928,8 +927,7 @@ def __init__( |
928 | 927 | if vars is None: |
929 | 928 | vars = model.continuous_value_vars |
930 | 929 | else: |
931 | | - vars = [model.rvs_to_values.get(var, var) for var in vars] |
932 | | - vars = pm.inputvars(vars) |
| 930 | + vars = get_value_vars_from_user_vars(vars, model) |
933 | 931 |
|
934 | 932 | if S is None: |
935 | 933 | S = np.ones(initial_values_size) |
|
0 commit comments