Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sampler parameters not used when calling JAX samplers #813

Open
GStechschulte opened this issue May 27, 2024 · 1 comment
Open

Sampler parameters not used when calling JAX samplers #813

GStechschulte opened this issue May 27, 2024 · 1 comment
Labels
enhancement good first issue If you want to contribute but are not sure where to get started, this issue is for you!

Comments

@GStechschulte
Copy link
Collaborator

To change bayeux based sampler parameter values, we require passing kwargs like

kwargs = {
        "adapt.run": {"num_steps": 500},
        "num_chains": 4,
        "num_draws": 250,
        "num_adapt_draws": 250
}

blackjax_nuts_idata = model.fit(inference_method="blackjax_nuts", **kwargs)

However, if a user attempts to also pass draws and tune

kwargs = {
        "adapt.run": {"num_steps": 500},
        "num_chains": 4,
        "num_draws": 500,
        "num_adapt_draws": 500
}

blackjax_nuts_idata = model.fit(draws=250, tune=250, inference_method="blackjax_nuts", **kwargs)

the values for draws and tune are never used. Should we print to stdout that these values are not used? Or using some other means to make the user aware?

Of course, after sampling one can infer the number of chains, draws, etc. Just a thought.

@GStechschulte GStechschulte added enhancement good first issue If you want to contribute but are not sure where to get started, this issue is for you! labels May 27, 2024
@GStechschulte GStechschulte changed the title Parameters not used when calling JAX samplers Sampler parameters not used when calling JAX samplers May 27, 2024
@ColCarroll
Copy link
Collaborator

Maybe just an adapter to map draws -> num_steps and tune -> num_adapt_draws?

I think in the example above, bayeux will ignore the adapt.run kwarg. It is undocumented, but in order to allow switching methods more quickly, bayeux does not currently warn on unused kwargs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement good first issue If you want to contribute but are not sure where to get started, this issue is for you!
Projects
None yet
Development

No branches or pull requests

2 participants