Restore determinism in beersheba tests - #977
Open
gonzaponte wants to merge 3 commits into
Open
gonzaponte wants to merge 3 commits into
gonzaponte wants to merge 3 commits into
Conversation
The separate-mode fixture updated `deconv_params` on the shared `beersheba_config` dictionary. Pytest reuses a fixture's returned object within a test, so requesting both fixtures could leave the base configuration set to separate mode as well. A deep copy of the base configuration before changing to separate mode prevents this issue. Tests can now use independent configurations for joint and separate deconvolution, so each variant exercises the mode it intends to check.
FFT convolution can produce tiny negative or near-zero values through floating-point roundoff. Replacing only exact zeros (as we have been doing so far) with machine epsilon leaves those values in place; dividing the image by them can greatly amplify numerical noise during the Richardson–Lucy update. Clamping the convolved estimate to at least machine epsilon before calculating the relative blur keeps the denominator positive and prevents small roundoff differences from causing large changes in the reconstruction.
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.
This PR addresses instabilities in the RL algorithm caused by roundoff errors. At the same time, it fixes a silent issue by which the "joint" mode of beersheba was not being exercised. After fixing this issue, the exact_result tests are no longer flaky.
Closes #975.