Shortcuts

Source code for pytorch_lightning.loops.dataloader.dataloader_loop

# Copyright The PyTorch Lightning team.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from abc import abstractmethod
from typing import Any, Sequence

from torch.utils.data import DataLoader

from pytorch_lightning.loops.loop import Loop
from pytorch_lightning.trainer.progress import DataLoaderProgress


[docs]class DataLoaderLoop(Loop): """Base class to loop over all dataloaders.""" def __init__(self) -> None: super().__init__() self.dataloader_progress = DataLoaderProgress() @property @abstractmethod def dataloaders(self) -> Sequence[DataLoader]: """Returns the dataloaders to loop over.""" @property def current_dataloader_idx(self) -> int: """Returns the index of the current dataloader.""" return self.dataloader_progress.current.ready - 1 @property def current_dataloader(self) -> DataLoader: """Returns the current dataloader.""" return self.dataloaders[self.current_dataloader_idx] @property def num_dataloaders(self) -> int: """Returns the number of dataloaders present.""" return len(self.dataloaders) if self.dataloaders is not None else 0 @property def done(self) -> bool: """Returns whether all dataloaders have been processed.""" return self.dataloader_progress.current.completed >= self.num_dataloaders
[docs] def reset(self) -> None: """Resets the internal state.""" if not self.restarting: self.dataloader_progress.reset_on_run() else: self.dataloader_progress.reset_on_restart()
[docs] def on_advance_start(self, *args: Any, **kwargs: Any) -> None: self.dataloader_progress.increment_ready()
[docs] def on_advance_end(self) -> None: self.dataloader_progress.increment_completed()

© Copyright Copyright (c) 2018-2022, Lightning AI et al... Revision 92fe1887.

Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: stable
Versions
latest
stable
1.8.3post1
1.8.3.post0
1.8.3
1.8.2
1.8.1
1.8.0.post1
1.8.0
1.7.7
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.10
1.5.9
1.5.8
1.5.7
1.5.6
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.8
1.3.7
1.3.6
1.3.5
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.10
1.2.8
1.2.7
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.10.0
0.9.0
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.0
0.5.3
0.4.9
Downloads
html
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.