Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run on_train_epoch_end after the LM for callbacks that monitor #16567

Merged
merged 3 commits into from
Feb 1, 2023

Conversation

carmocca
Copy link
Contributor

@carmocca carmocca commented Jan 30, 2023

What does this PR do?

Unblocks #16520

EarlyStopping and ModelCheckpoint run checks on_train_epoch_end.
After #16520 lands, if you were logging on LightningModule.training_epoch_end you need to change it to LightningModule.on_train_epoch_end
But Callbacks run their hooks before the LightningModule, so these two callbacks fail to monitor a key that was logged on_train_epoch_end because the monitored key is not available when they run.

This was not an important problem before #16520 because training_epoch_end was a working alternative. It runs after on_train_epoch_end.

This PR suggests a hacky workaround of calling this hook later just for these two Callback classes

Other suggestions are welcome.

Does your PR introduce any breaking changes? If yes, please list them.

Yes, the hook call order has changed.

cc @awaelchli @Borda @justusschock @carmocca

@carmocca carmocca added callback breaking change Includes a breaking change hooks Related to the hooks API pl Generic label for PyTorch Lightning package labels Jan 30, 2023
@carmocca carmocca self-assigned this Jan 30, 2023
@carmocca carmocca added this to the 2.0 milestone Jan 30, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Jan 30, 2023

⚡ Required checks status: All passing 🟢

Groups summary

🟢 pytorch_lightning: Tests workflow
Check ID Status
pl-cpu (macOS-11, pytorch, 3.8, 1.11) success
pl-cpu (macOS-11, pytorch, 3.9, 1.12) success
pl-cpu (macOS-11, pytorch, 3.10, 1.13) success
pl-cpu (macOS-11, pytorch, 3.8, 1.10, oldest) success
pl-cpu (ubuntu-20.04, pytorch, 3.8, 1.10) success
pl-cpu (ubuntu-20.04, pytorch, 3.9, 1.11) success
pl-cpu (ubuntu-20.04, pytorch, 3.10, 1.12) success
pl-cpu (ubuntu-20.04, pytorch, 3.10, 1.13) success
pl-cpu (ubuntu-20.04, pytorch, 3.7, 1.10, oldest) success
pl-cpu (windows-2022, pytorch, 3.9, 1.11) success
pl-cpu (windows-2022, pytorch, 3.10, 1.12) success
pl-cpu (windows-2022, pytorch, 3.10, 1.13) success
pl-cpu (windows-2022, pytorch, 3.7, 1.10, oldest) success
pl-cpu (slow, macOS-11, pytorch, 3.7, 1.11) success
pl-cpu (slow, ubuntu-20.04, pytorch, 3.7, 1.11) success
pl-cpu (slow, windows-2022, pytorch, 3.7, 1.11) success
pl-cpu (macOS-11, lightning, 3.8, 1.13) success
pl-cpu (ubuntu-20.04, lightning, 3.8, 1.13) success
pl-cpu (windows-2022, lightning, 3.8, 1.13) success

These checks are required after the changes to src/pytorch_lightning/loops/fit_loop.py, src/pytorch_lightning/trainer/trainer.py, tests/tests_pytorch/callbacks/test_early_stopping.py, tests/tests_pytorch/models/test_hooks.py.

🟢 pytorch_lightning: Azure GPU
Check ID Status
pytorch-lightning (GPUs) success

These checks are required after the changes to src/pytorch_lightning/loops/fit_loop.py, src/pytorch_lightning/trainer/trainer.py, tests/tests_pytorch/callbacks/test_early_stopping.py, tests/tests_pytorch/models/test_hooks.py.

🟢 pytorch_lightning: Azure HPU
Check ID Status
pytorch-lightning (HPUs) success

These checks are required after the changes to src/pytorch_lightning/loops/fit_loop.py, src/pytorch_lightning/trainer/trainer.py, tests/tests_pytorch/callbacks/test_early_stopping.py, tests/tests_pytorch/models/test_hooks.py.

🟢 pytorch_lightning: Azure IPU
Check ID Status
pytorch-lightning (IPUs) success

These checks are required after the changes to src/pytorch_lightning/loops/fit_loop.py, src/pytorch_lightning/trainer/trainer.py, tests/tests_pytorch/callbacks/test_early_stopping.py, tests/tests_pytorch/models/test_hooks.py.

🟢 pytorch_lightning: Docs
Check ID Status
make-doctest (pytorch) success
make-html (pytorch) success

These checks are required after the changes to src/pytorch_lightning/loops/fit_loop.py, src/pytorch_lightning/trainer/trainer.py.

🟢 mypy
Check ID Status
mypy success

These checks are required after the changes to src/pytorch_lightning/loops/fit_loop.py, src/pytorch_lightning/trainer/trainer.py.

🟢 install
Check ID Status
install-pkg (ubuntu-22.04, app, 3.7) success
install-pkg (ubuntu-22.04, app, 3.10) success
install-pkg (ubuntu-22.04, fabric, 3.7) success
install-pkg (ubuntu-22.04, fabric, 3.10) success
install-pkg (ubuntu-22.04, pytorch, 3.7) success
install-pkg (ubuntu-22.04, pytorch, 3.10) success
install-pkg (ubuntu-22.04, lightning, 3.7) success
install-pkg (ubuntu-22.04, lightning, 3.10) success
install-pkg (ubuntu-22.04, notset, 3.7) success
install-pkg (ubuntu-22.04, notset, 3.10) success
install-pkg (macOS-12, app, 3.7) success
install-pkg (macOS-12, app, 3.10) success
install-pkg (macOS-12, fabric, 3.7) success
install-pkg (macOS-12, fabric, 3.10) success
install-pkg (macOS-12, pytorch, 3.7) success
install-pkg (macOS-12, pytorch, 3.10) success
install-pkg (macOS-12, lightning, 3.7) success
install-pkg (macOS-12, lightning, 3.10) success
install-pkg (macOS-12, notset, 3.7) success
install-pkg (macOS-12, notset, 3.10) success
install-pkg (windows-2022, app, 3.7) success
install-pkg (windows-2022, app, 3.10) success
install-pkg (windows-2022, fabric, 3.7) success
install-pkg (windows-2022, fabric, 3.10) success
install-pkg (windows-2022, pytorch, 3.7) success
install-pkg (windows-2022, pytorch, 3.10) success
install-pkg (windows-2022, lightning, 3.7) success
install-pkg (windows-2022, lightning, 3.10) success
install-pkg (windows-2022, notset, 3.7) success
install-pkg (windows-2022, notset, 3.10) success

These checks are required after the changes to src/pytorch_lightning/loops/fit_loop.py, src/pytorch_lightning/trainer/trainer.py.

🟢 link-check
Check ID Status
markdown-link-check success

These checks are required after the changes to src/pytorch_lightning/CHANGELOG.md.


Thank you for your contribution! 💜

Note
This comment is automatically generated and updates for 60 minutes every 180 seconds. If you have any other questions, contact carmocca for help.

@carmocca carmocca enabled auto-merge (squash) February 1, 2023 02:21
@carmocca carmocca merged commit df09370 into master Feb 1, 2023
@carmocca carmocca deleted the loops/monitoring-callbacks branch February 1, 2023 14:27
@mergify mergify bot added the ready PRs ready to be merged label Feb 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking change Includes a breaking change callback hooks Related to the hooks API pl Generic label for PyTorch Lightning package ready PRs ready to be merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants