tlc.client.torch.samplers.infinite_weighted_random_sampler#
Module Contents#
Classes#
Class |
Description |
|---|---|
A PyTorch Sampler subclass that provides an infinite stream of sample indices. |
API#
- class tlc.client.torch.samplers.infinite_weighted_random_sampler.InfiniteWeightedRandomSampler(weights: Sequence[float], num_samples: int)#
Bases:
torch.utils.data.SamplerA PyTorch Sampler subclass that provides an infinite stream of sample indices.
This class is a wrapper around PyTorch’s WeightedRandomSampler, and it samples with replacement from a given set of weights. Unlike the standard WeightedRandomSampler, however, this class can iterate indefinitely over the dataset indices.
When used in a DataLoader, an epoch will see
num_samplessamples, which are drawn according to the provided weights. At the end of each epoch, sampling continues from the same distribution without interruption, allowing for continuous, indefinite sampling.- Parameters:
weights – A sequence of weights, not necessarily summing to 1, associated with each item, i.e., the probability of each item to be sampled.
num_samples – Number of samples to draw in one epoch.
- Yields:
An index that has been sampled according to the distribution defined by
weights.
Warning
Be cautious when using this sampler, as the ‘infinite’ nature of this sampler can cause infinite loops if not handled properly. For example,
[x for x in sampler]will never terminate.