Skip to content

pymc3.sample() not starting from the specified start value #4689

Closed
@adrn

Description

@adrn

(see also: https://discourse.pymc.io/t/pymc3-sample-not-starting-from-the-specified-start-value/7419)

Description of your problem

I would like to set the start value explicitly when calling pm.sample() using start=, but it seems like the tuning does not use the input. I know that for some initialization methods (e.g., jitter+adapt_diag), the init can override the start. However, I would not expect adapt_diag to override the input start. As example:

with pm.Model() as model:
    lnx = pm.Uniform('lnx', 0., 5.)
    infdata = pm.sample(tune=100, draws=0, 
                        start={'lnx': 1.},
                        init='adapt_diag',
                        return_inferencedata=True,
                        discard_tuned_samples=False, 
                        chains=1)

Please provide the full traceback.

I would expect infdata.warmup_posterior.lnx.values[0, 0] == 1. with the example above, but instead it seems to initialize at a random point.

Versions and main components

  • PyMC3 Version: 3.11.1
  • Aesara Version: n/a
  • Python Version: 3.8
  • Operating system: macOS
  • How did you install PyMC3: pip

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions