-
-
Notifications
You must be signed in to change notification settings - Fork 368
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
Feature/bbvb family #1505
Feature/bbvb family #1505
Conversation
I think this is a good enough separation of the raw inference algorithm from the variational families used, i.e., the raw inference algorithm simply calls upon generic methods for a variational family such as Ideally the gradient of the ELBO should exist as a function inside |
Build Log
Refer to this link for build results (access rights to CI server needed): |
@dustinvtran Thanks! @syclik Do you understand this code well enough to review it? I missed the overview and haven't been caught up yet. |
@bob-carpenter this is a branch off of feature/bbvb. i can review it and merge it into feature/bbvb. so nothing here is touching develop at the moment. |
@dustinvtran It's only failing in the cpplint style filter, which enforces the Google C++ style. The errors are usually very easy to fix. You can run it locally using https://github.com/stan-dev/stan/wiki/Coding-Style-and-Idioms |
Great, thanks. I went ahead and fixed it on both branches. |
you're moving too fast for me to react! 👍 thanks dustin. |
Refer to this link for build results (access rights to CI server needed): |
Summary:
Allows one to specify an arbitrary class of variational distribution in order to perform variational inference with. I built a base class
base_family.hpp
from which all variational distributions should inherit from and build methods for, c.f.,variational/families
directory, which makes the two Gaussian families we currently have as special cases.Intended Effect:
No effect on the user/outputs. Removes a ton of hard coded nastiness and makes it easier to do black box variational inference with whatever desired variational distributions.
How to Verify:
Run tests, run models. Fix a seed and check that the estimates are exactly the same as in the original codebase.
Side Effects:
None
Documentation:
None
Reviewer Suggestions:
@akucukelbir