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.
What does this implement/fix? Explain your changes
This introduces some additional features for score estimation named in #1226, namely:
enable_transform = True
for score-based potentialsconverged()
method for NPSEDoes this close any currently open issues?
#1226
Any relevant code examples, logs, error output, etc?
Any other comments?
score_based_posterior.map()
is still quite slow. We get the gradient of the log probs with respect totheta
by using the score estimator, but still computing the log-probs explicitly ingradient_ascent
, which is more expensive. To get around this, we save a low-accuracy ode_flow to calculate the log-probs more quickly. Ideally, we might want to write a customgradient_ascent
function for calculating the MAP for score estimators to avoid doing this altogether.linearGaussian_npse_test.py::test_npse_map
- as far as I can tell, the reason this failed with the lower tolerance is not because of MAP calculation, but because score-based posteriors are currently slightly less accurate (at least for our test tasks).