Skip to content

Sampler argument target_accept not working in 4.0.0b4  #5620

Closed
@larryshamalama

Description

@larryshamalama
with pm.Model() as model:
    norm = pm.Normal("norm")
    pm.sample(target_accept=0.9, tune=2000)

yields

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Input In [2], in <module>
      1 with pm.Model() as model:
      2     norm = pm.Normal("norm")
----> 3     pm.sample(target_accept=0.9, tune=2000)

File ~/opt/anaconda3/envs/pymc-dev-py39/lib/python3.9/site-packages/pymc/sampling.py:470, in sample(draws, step, init, n_init, initvals, trace, chain_idx, chains, cores, tune, progressbar, model, random_seed, discard_tuned_samples, compute_convergence_checks, callback, jitter_max_retries, return_inferencedata, idata_kwargs, mp_ctx, **kwargs)
    467 draws += tune
    469 initial_points = None
--> 470 step = assign_step_methods(model, step, methods=pm.STEP_METHODS, step_kwargs=kwargs)
    472 if isinstance(step, list):
    473     step = CompoundStep(step)

File ~/opt/anaconda3/envs/pymc-dev-py39/lib/python3.9/site-packages/pymc/sampling.py:219, in assign_step_methods(model, step, methods, step_kwargs)
    211         selected = max(
    212             methods,
    213             key=lambda method, var=rv_var, has_gradient=has_gradient: method._competence(
    214                 var, has_gradient
    215             ),
    216         )
    217         selected_steps[selected].append(var)
--> 219 return instantiate_steppers(model, steps, selected_steps, step_kwargs)

File ~/opt/anaconda3/envs/pymc-dev-py39/lib/python3.9/site-packages/pymc/sampling.py:142, in instantiate_steppers(model, steps, selected_steps, step_kwargs)
    140 unused_args = set(step_kwargs).difference(used_keys)
    141 if unused_args:
--> 142     raise ValueError("Unused step method arguments: %s" % unused_args)
    144 if len(steps) == 1:
    145     return steps[0]

ValueError: Unused step method arguments: {'target_accept'}

with PyMC version 4.0.0b4, aesara version 2.5.1 and aeppl version 0.0.27. However, there is no error when using PyMC version 4.0.0b3 (and aesara version 2.4.0, aeppl version 0.0.26). See notebooks here (b3) and here (b4)

First raised by @OriolAbril

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions