InfiniteSampler¶
- class mmengine.dataset.InfiniteSampler(dataset, shuffle=True, seed=None)[source]¶
It’s designed for iteration-based runner and yields a mini-batch indices each time.
The implementation logic is referred to https://github.com/facebookresearch/detectron2/blob/main/detectron2/data/samplers/distributed_sampler.py
- Parameters:
- set_epoch(epoch)[source]¶
Not supported in iteration-based runner.
- Parameters:
epoch (int)
- Return type:
None
- skip(num_samples)[source]¶
Fast-forward the sampler to an absolute position for resuming.
It rebuilds the deterministic index stream from the seed and discards the first
num_samplesindices, so the next iteration continues from the same position as an uninterrupted run.num_samplesis absolute (counted from the start of the stream, per rank), not relative to the current position, and this method is meant to be called once before iterating. Only indices are generated and no data is loaded, so it is safe for anynum_workers; the cost isO(num_samples)index generation, which is still far cheaper than loading the skipped data.- Parameters:
num_samples (int) – The number of per-rank indices already consumed in the previous training that should be skipped. Must be a non-negative integer.
- Return type:
None