Skip to content

Default target_accept not mentioned anywhere in the docs #7455

@ricardoV94

Description

@ricardoV94
Member

Description

...

Activity

kdotmanoj

kdotmanoj commented on Aug 14, 2024

@kdotmanoj
Contributor

can you provide more info about this?

ricardoV94

ricardoV94 commented on Aug 14, 2024

@ricardoV94
MemberAuthor

can you provide more info about this?

I think it's pretty self explanatory.

ricardoV94

ricardoV94 commented on Aug 14, 2024

@ricardoV94
MemberAuthor

It's a keyword argument to pm.sample

kdotmanoj

kdotmanoj commented on Aug 14, 2024

@kdotmanoj
Contributor

so the value is 0.8 right, found here:

image

i am finding it difficult to find where to edit as it is autogenerated from the code.

ricardoV94

ricardoV94 commented on Aug 14, 2024

@ricardoV94
MemberAuthor

so the value is 0.8 right, found here:

image

i am finding it difficult to find where to edit as it is autogenerated from the code.

You're looking at nutpie sample function not pymc

cluhmann

cluhmann commented on Aug 15, 2024

@cluhmann
Member

Is target_accept a kwarg to pm.sample() or just another **kwargs? The argument isn't even included in the API docs, so if it's the former, there's a bigger problem.

I mean, it's detailed here, but I assumed that the sampling defaults would be specified deeper in the code, possibly allowing for different default for different sampling algorithms.

Armavica

Armavica commented on Aug 15, 2024

@Armavica
Member

There are at least a couple places where a default is provided deep in the code:

target_accept=kwargs.pop("nuts", {}).get("target_accept", 0.8),

target_accept: float = 0.8,

kwargs.setdefault("target_accept", 0.65)

target_accept=0.8,

cluhmann

cluhmann commented on Aug 15, 2024

@cluhmann
Member

Exactly. But those are each specified separately and, it turns out, in a way that creates different defaults for different algorithms. So I'm not sure what's missing from the docs.

ricardoV94

ricardoV94 commented on Aug 15, 2024

@ricardoV94
MemberAuthor

Exactly. But those are each specified separately and, it turns out, in a way that creates different defaults for different algorithms. So I'm not sure what's missing from the docs.

I couldn't figure out what the default is as an advanced user. Since it's common advice to increase it (even automatic in case of divergences) it should be easy to find what the default is.

cluhmann

cluhmann commented on Aug 15, 2024

@cluhmann
Member

This is caused by pm.sample() being a franken-wrapper that dispatches to a bunch of actual sampling methods, but seems like it does something useful all on its own. Where would you expect the default value to be documented?

ricardoV94

ricardoV94 commented on Aug 15, 2024

@ricardoV94
MemberAuthor

pm.sample 🤷‍♂️🫠🥹? Or do you have a better idea?

cluhmann

cluhmann commented on Aug 16, 2024

@cluhmann
Member

But ... it's not an argument to pm.sample(). I do have a better idea, but you didn't like it (e.g., deprecate pm.sample). 😂

ricardoV94

ricardoV94 commented on Aug 16, 2024

@ricardoV94
MemberAuthor

But ... it's not an argument to pm.sample(). I do have a better idea, but you didn't like it (e.g., deprecate pm.sample). 😂

It is, just hidden inside **kwargs.

It's actually a special kwarg, the only one we accept both directly and as usual step kwargs

ricardoV94

ricardoV94 commented on Aug 16, 2024

@ricardoV94
MemberAuthor

See #5622

kdotmanoj

kdotmanoj commented on Aug 16, 2024

@kdotmanoj
Contributor

@ricardoV94 do you suggest mentioning the default values of target_accept here ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @fonnesbeck@Armavica@ricardoV94@cluhmann@kdotmanoj

        Issue actions

          Default target_accept not mentioned anywhere in the docs · Issue #7455 · pymc-devs/pymc