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

Remove dependency on TracePosterior and deprecate utilities in AbstractInfer #1930

Open
neerajprad opened this issue Jun 29, 2019 · 0 comments

Comments

Projects
None yet
1 participant
@neerajprad
Copy link
Member

commented Jun 29, 2019

While attempting the MCMC class refactoring (as originally suggested in #1725), I realized that it will be best to not subclass off of TracePosterior.

  • For MCMC, storing traces leads to inefficient memory usage where the full trace can often consume 5X more memory. This also leads to our internal trace structure leaking into the API, and makes it harder to integrate with other libraries. e.g. NUTS integration with GPyTorch.
  • For SVI, once we have the trained parameters in the param store, we can just use these each time we need to generate traces, do predictions etc. rather than maintaining a bag of traces. This has often led to confusion that users have surfaced through the forum. example.

TODOs:

Next Release:

  • Refactor MCMC module to not subclass off of TracePosterior, and bring the interface closer to NumPyro, deprecate existing API. #1913
  • Replacement for TracePredictive for MCMC.

Next Release:

  • Deprecate .run method in SVI module to plan for removal
  • Replacement for TracePredictive for SVI (this additionally needs to handle data subsampling).

Following Release:

  • Removing these code paths completely.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.