Fix randomresized params flaky #1282
Merged
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 #1170
The flakiness is due to the rounding in
vision/torchvision/transforms/transforms.py
Lines 645 to 646 in 5537790
We are guaranteed that the floating point values for the dimensions gives an aspect ratio between the requested range, but after rounding this doesn't hold anymore.
One possible fix would be to re-check that this is still the case after rounding in
vision/torchvision/transforms/transforms.py
Line 648 in 5537790
vision/torchvision/transforms/transforms.py
Lines 653 to 665 in 5537790
Given that for arbitrary values of
scale
,ratio
and sizes there is no guarantee that there exists an integer value that satisfies all the constraints, I decided instead to keep the implementation the same, but to increase the minimum scale that is allowed during the tests, so that rounding differences are amortized, and tests passes much more often.The only fix that is done in the transforms here is to avoid empty-sized dimensions to be returned, which was a problem with the previous implementation.