fix: correct off-by-one error in windowed DINOv2 early stopping #523
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.
Fixed an off-by-one error in the early stopping logic of WindowedDinov2WithRegistersEncoder.forward().
Bug: The condition if i > int(self.config.out_features[-1][5:]): incorrectly compares a 0-based layer index (i) with a 1-based stage number.
Fix: Changed to if i > int(self.config.out_features[-1][5:]) - 1: to properly convert the stage number to a 0-based index before comparison.
Example:
If out_features[-1] = "stage8", stage number = 8
Corresponding layer index = 7 (0-based)
Old condition: i > 8 → never true for i in [0, 11]
New condition: i > 7 → stops when i reaches 8
Impact: The encoder now correctly stops after processing the last required transformer layer, improving computational efficiency.