Fix nan gradients in TraceEnum_ELBO when evaluated eagerly#544
Merged
Fix nan gradients in TraceEnum_ELBO when evaluated eagerly#544
Conversation
Draft
Member
|
Why is this blocked by #545? |
Member
Author
|
#545 is needed to unblock |
Member
|
Why do we need to unblock the |
Member
Author
|
Sorry for making it confusing, I wasn't sure how to organize these PRs. I will make a separate PR for |
Member
No worries, I just don't want your substantive work to be held up with yet more adjoint/alpha-conversion insanity. |
eb8680
approved these changes
Aug 3, 2021
Member
|
Do the Pyro |
Member
Author
|
Yes, just tested it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes nan gradients in
TraceEnum_ELBOwhen evaluated eagerly (mentioned in #493).The problem seems to be that
reflect.interpretin line 62 leads to substitutions that haveadjointas abase_interpretationwhich in turn leads to some extra expressions being added to thetape. Here I fix it by changing interpretation to_old_interpretation.This also solvestest_adjoint.py::test_sequential_sum_product_adjoint:xfail_param(MarkovProduct, reason="mysteriously doubles adjoint values?")(blocked by #545 ).