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

Refactor CombinedLoader using pytrees #16714

Merged
merged 10 commits into from
Feb 11, 2023
Merged

Conversation

carmocca
Copy link
Contributor

@carmocca carmocca commented Feb 10, 2023

What does this PR do?

Simplify the CombinedLoader implementation by using slightly modified pytrees from PyTorch.

A follow-up will look at their integration across the codebase.

cc @Borda @justusschock @awaelchli

@carmocca carmocca added refactor data handling Generic data-related topic pl Generic label for PyTorch Lightning package labels Feb 10, 2023
@carmocca carmocca added this to the 2.0 milestone Feb 10, 2023
@carmocca carmocca self-assigned this Feb 10, 2023
@carmocca carmocca marked this pull request as ready for review February 10, 2023 06:50
@github-actions
Copy link
Contributor

github-actions bot commented Feb 10, 2023

⚡ Required checks status: All passing 🟢

Groups summary

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

These checks are required after the changes to src/lightning/pytorch/loops/fetchers.py, src/lightning/pytorch/trainer/connectors/data_connector.py, src/lightning/pytorch/trainer/supporters.py, src/lightning/pytorch/trainer/trainer.py, src/lightning/pytorch/utilities/_pytree.py, src/lightning/pytorch/utilities/data.py, tests/tests_pytorch/loops/test_fetchers.py, tests/tests_pytorch/trainer/test_dataloaders.py, tests/tests_pytorch/trainer/test_supporters.py, tests/tests_pytorch/utilities/test_data.py, tests/tests_pytorch/utilities/test_pytree.py.

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

These checks are required after the changes to src/lightning/pytorch/loops/fetchers.py, src/lightning/pytorch/trainer/connectors/data_connector.py, src/lightning/pytorch/trainer/supporters.py, src/lightning/pytorch/trainer/trainer.py, src/lightning/pytorch/utilities/_pytree.py, src/lightning/pytorch/utilities/data.py, tests/tests_pytorch/loops/test_fetchers.py, tests/tests_pytorch/trainer/test_dataloaders.py, tests/tests_pytorch/trainer/test_supporters.py, tests/tests_pytorch/utilities/test_data.py, tests/tests_pytorch/utilities/test_pytree.py.

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

These checks are required after the changes to src/lightning/pytorch/loops/fetchers.py, src/lightning/pytorch/trainer/connectors/data_connector.py, src/lightning/pytorch/trainer/supporters.py, src/lightning/pytorch/trainer/trainer.py, src/lightning/pytorch/utilities/_pytree.py, src/lightning/pytorch/utilities/data.py, tests/tests_pytorch/loops/test_fetchers.py, tests/tests_pytorch/trainer/test_dataloaders.py, tests/tests_pytorch/trainer/test_supporters.py, tests/tests_pytorch/utilities/test_data.py, tests/tests_pytorch/utilities/test_pytree.py.

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

These checks are required after the changes to src/lightning/pytorch/loops/fetchers.py, src/lightning/pytorch/trainer/connectors/data_connector.py, src/lightning/pytorch/trainer/supporters.py, src/lightning/pytorch/trainer/trainer.py, src/lightning/pytorch/utilities/_pytree.py, src/lightning/pytorch/utilities/data.py, tests/tests_pytorch/loops/test_fetchers.py, tests/tests_pytorch/trainer/test_dataloaders.py, tests/tests_pytorch/trainer/test_supporters.py, tests/tests_pytorch/utilities/test_data.py, tests/tests_pytorch/utilities/test_pytree.py.

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

These checks are required after the changes to src/lightning/pytorch/loops/fetchers.py, src/lightning/pytorch/trainer/connectors/data_connector.py, src/lightning/pytorch/trainer/supporters.py, src/lightning/pytorch/trainer/trainer.py, src/lightning/pytorch/utilities/_pytree.py, src/lightning/pytorch/utilities/data.py.

🟢 mypy
Check ID Status
mypy success

These checks are required after the changes to src/lightning/pytorch/loops/fetchers.py, src/lightning/pytorch/trainer/connectors/data_connector.py, src/lightning/pytorch/trainer/supporters.py, src/lightning/pytorch/trainer/trainer.py, src/lightning/pytorch/utilities/_pytree.py, src/lightning/pytorch/utilities/data.py.

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

These checks are required after the changes to src/lightning/pytorch/loops/fetchers.py, src/lightning/pytorch/trainer/connectors/data_connector.py, src/lightning/pytorch/trainer/supporters.py, src/lightning/pytorch/trainer/trainer.py, src/lightning/pytorch/utilities/_pytree.py, src/lightning/pytorch/utilities/data.py.

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

These checks are required after the changes to src/lightning/pytorch/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.

Copy link
Member

@Borda Borda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice simplification!

src/lightning/pytorch/trainer/supporters.py Outdated Show resolved Hide resolved
src/lightning/pytorch/utilities/_pytree.py Outdated Show resolved Hide resolved
@mergify mergify bot added the ready PRs ready to be merged label Feb 11, 2023
@carmocca carmocca merged commit d660379 into master Feb 11, 2023
@carmocca carmocca deleted the refactor/combined-loader branch February 11, 2023 16:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
data handling Generic data-related topic pl Generic label for PyTorch Lightning package ready PRs ready to be merged refactor
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants