afnio.utils.data.sampler#

Classes

RandomSampler(data_source[, replacement, ...])

Samples elements randomly.

Sampler()

Base class for all Samplers.

SequentialSampler(data_source)

Samples elements sequentially, always in the same order.

WeightedRandomSampler(weights, num_samples)

Samples elements from [0,..,len(weights)-1] with given probabilities (weights).

class afnio.utils.data.sampler.RandomSampler(data_source, replacement=False, num_samples=None, seed=None)[source]#

Bases: Sampler[int]

Samples elements randomly. If without replacement, then sample from a shuffled dataset.

If with replacement, then user can specify num_samples to draw.

Parameters:
  • data_source (Dataset) – dataset to sample from

  • replacement (bool) – samples are drawn on-demand with replacement if True, default=``False``

  • num_samples (int) – number of samples to draw, default=`len(dataset)`.

  • seed (int) – A number to set the seed for the random draws.

data_source: Sized#
property num_samples: int#
replacement: bool#
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]#

Bases: Sampler[int]

Samples elements sequentially, always in the same order.

Parameters:

data_source (Dataset) – dataset to sample from

data_source: Sized#
class afnio.utils.data.sampler.WeightedRandomSampler(weights, num_samples, replacement=True, seed=None)[source]#

Bases: Sampler[int]

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]
num_samples: int#
replacement: bool#
weights: Sequence[float]#