| |
| from .builder import DATASETS |
|
|
|
|
| @DATASETS.register_module() |
| class RepeatDataset: |
| """A wrapper of repeated dataset. |
| |
| The length of repeated dataset will be `times` larger than the original |
| dataset. This is useful when the data loading time is long but the dataset |
| is small. Using RepeatDataset can reduce the data loading time between |
| epochs. |
| |
| Args: |
| dataset (:obj:`Dataset`): The dataset to be repeated. |
| times (int): Repeat times. |
| """ |
|
|
| def __init__(self, dataset, times): |
| self.dataset = dataset |
| self.times = times |
|
|
| self._ori_len = len(self.dataset) |
|
|
| def __getitem__(self, idx): |
| """Get data.""" |
| return self.dataset[idx % self._ori_len] |
|
|
| def __len__(self): |
| """Length after repetition.""" |
| return self.times * self._ori_len |
|
|