| # -------------------------------------------------------- | |
| # Swin Transformer | |
| # Copyright (c) 2021 Microsoft | |
| # Licensed under The MIT License [see LICENSE for details] | |
| # Written by Ze Liu | |
| # -------------------------------------------------------- | |
| import torch | |
| class SubsetRandomSampler(torch.utils.data.Sampler): | |
| r"""Samples elements randomly from a given list of indices, without replacement. | |
| Arguments: | |
| indices (sequence): a sequence of indices | |
| """ | |
| def __init__(self, indices): | |
| self.epoch = 0 | |
| self.indices = indices | |
| def __iter__(self): | |
| return (self.indices[i] for i in torch.randperm(len(self.indices))) | |
| def __len__(self): | |
| return len(self.indices) | |
| def set_epoch(self, epoch): | |
| self.epoch = epoch | |