| 35 | """ |
| 36 | |
| 37 | def __init__(self, data_source, replacement=False, num_samples=None): |
| 38 | super(RandomSampler, self).__init__(data_source) |
| 39 | self.data_source = data_source |
| 40 | self.replacement = replacement |
| 41 | self._num_samples = num_samples |
| 42 | self.epoch = -1 |
| 43 | |
| 44 | if self._num_samples is not None and replacement is False: |
| 45 | raise ValueError("With replacement=False, num_samples should not be specified, " |
| 46 | "since a random permute will be performed.") |
| 47 | |
| 48 | if not isinstance(self.num_samples, int) or self.num_samples <= 0: |
| 49 | raise ValueError("num_samples should be a positive integer " |
| 50 | "value, but got num_samples={}".format(self.num_samples)) |
| 51 | if not isinstance(self.replacement, bool): |
| 52 | raise ValueError("replacement should be a boolean value, but got " |
| 53 | "replacement={}".format(self.replacement)) |
| 54 | |
| 55 | @property |
| 56 | def num_samples(self): |