Lightning-AI/pytorch-lightning

Redesign dataloader re-instantiation context managers for Lite

Open

#15.179 aberto em 18 de out. de 2022

Ver no GitHub
 (10 comments) (0 reactions) (1 assignee)Python (3.233 forks)batch import
discussionfabrichelp wantedpriority: 2refactor

Métricas do repositório

Stars
 (26.687 stars)
Métricas de merge de PR
 (Mesclagem média 9d 15h) (3 fundiu PRs em 30d)

Description

Proposed refactor

Redesign the context managers that enable re-instantiations of DataLoader after #14992 deprecates the run method design.

Motivation

We currently have two context managers over the run method:

https://github.com/Lightning-AI/lightning/blob/776432fd7e34cc02e9dbfb16ad8ec8491c176dbf/src/lightning_lite/lite.py#L394-L397

  • _replace_dunder_methods(DataLoader, "dataset")
  • _replace_dunder_methods(BatchSampler)

These get applied for the user if they implement the run method. However, this won't be the case anymore after #14992. We need to find an alternative approach.

Pitch

We probably need to call these methods at the start of the program, for example in LightningLite.__init__. But it is unclear how to undo the patching which is usually done in __exit__. Happy to hear suggestions.

cc @borda @justusschock @awaelchli @tchaton @carmocca @otaj

Guia do colaborador