afnio.utils.data.sampler#
Classes
|
Samples elements randomly. |
|
Base class for all Samplers. |
|
Samples elements sequentially, always in the same order. |
|
Samples elements from |
- class afnio.utils.data.sampler.RandomSampler(data_source, replacement=False, num_samples=None, seed=None)[source]#
-
Samples elements randomly. If without replacement, then sample from a shuffled dataset.
If with replacement, then user can specify
num_samplesto draw.- Parameters:
- class afnio.utils.data.sampler.Sampler[source]#
Bases:
Generic[T_co]Base class for all Samplers.
Every Sampler subclass has to provide an
__iter__()method, providing a way to iterate over indices or lists of indices (batches) of dataset elements, and may provide a__len__()method that returns the length of the returned iterators.
- class afnio.utils.data.sampler.SequentialSampler(data_source)[source]#
-
Samples elements sequentially, always in the same order.
- Parameters:
data_source (Dataset) – dataset to sample from
- class afnio.utils.data.sampler.WeightedRandomSampler(weights, num_samples, replacement=True, seed=None)[source]#
-
Samples elements from
[0,..,len(weights)-1]with given probabilities (weights).- Parameters:
weights (sequence) – a sequence of weights, not necessary summing up to one
num_samples (int) – number of samples to draw
replacement (bool) – if
True, samples are drawn with replacement. If not, they are drawn without replacement, which means that when a sample index is drawn for a row, it cannot be drawn again for that row.seed (int) – A number to set the seed for the random draws.
Example
>>> list(WeightedRandomSampler([0.1, 0.9, 0.4, 0.7, 3.0, 0.6], 5, replacement=True)) [4, 4, 1, 4, 5] >>> list(WeightedRandomSampler([0.9, 0.4, 0.05, 0.2, 0.3, 0.1], 5, replacement=False)) [0, 1, 4, 3, 2]