Fix integration of LearningRateFinder
with EarlyStopping
#21056
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.
What does this PR do?
Fixes #19575
Fixes #20355
When using
LearningRateFinder
there is currently a bug that makes is so thaton_train_epoch_end
hooks are executed as one of the first things when starting fitting afterwards. The reason for this seems to be that thedata_fetcher
returnsStopIteration
after the learning rate finding, which makes theself.advance()
method in fit loop return immediatelypytorch-lightning/src/lightning/pytorch/loops/fit_loop.py
Lines 207 to 223 in f067626
afterwards the
self.on_advance_end
is executed which then calls theon_train_epoch_end
hook fromEarlyStopping
which then fails if we are monitoring a validation metric, because the validation loop have not been called yet (which is expected).Solution is to reset
data_fetcher
toNone
such that it is re-initialized during the actual fit loop.Before submitting
PR review
Anyone in the community is welcome to review the PR.
Before you start reviewing, make sure you have read the review guidelines. In short, see the following bullet-list:
Reviewer checklist
📚 Documentation preview 📚: https://pytorch-lightning--21056.org.readthedocs.build/en/21056/