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

Allow standalone generate_quantities using non-HMC fit #1106

Merged
merged 4 commits into from
Jul 6, 2022

Conversation

WardBrian
Copy link
Member

Submisison Checklist

  • Run tests: ./runCmdStanTests.py src/test
  • Declare copyright holder and open-source license: see below

Summary:

This closes #1099. Currently, generate_quantities assumes there are exactly 7 columns of non-parameters before the parameter draws in the CSV, as this is the case in HMC. However, no further assumptions are made on the draws for this method.

This PR simply changes from using a hardcoded value of 7 to first counting the number of columns which end with "__", then proceeding as before.

Following the existing design in terms of the warmup draws, this makes no attempt to avoid running generate_quantities on pre-converged optimization paths. It will run for each row in the CSV, leaving it up to downstream interfaces to sort this out.

Intended Effect:

generate_quantities can now accept files for fitted_params which are the results of optimization or VI.

How to Verify:

A test is added which uses a CSV file generated from LBFGS.

Side Effects:

Should be none. The only changes are in command.hpp, none of the upstream IO needed adjusting, since the specific information we need from the CSV is agnostic.

Interfaces like cmdstanpy/cmdstanr will need updates to support this

Documentation:

I believe that this PR actually makes the existing documentation more correct. The current documentation states

This method requires sub-argument fitted_params which takes as its value an existing Stan CSV file

without specifying that this CSV file must be from sampling.

Copyright and Licensing

Please list the copyright holder for the work you are submitting (this will be you or your assignee, such as a university or company):

By submitting this pull request, the copyright holder is agreeing to license the submitted work under the following licenses:

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

Successfully merging this pull request may close these issues.

Standalone generated quantities following optimization or VI
3 participants