docstr: Wraps an iterator to allow for infinite iteration. This is especially useful
  for DataLoader types that we wish to automatically restart upon completion.
  
  Args:
      loader (iterator): The data loader to repeat.
docstr_tok: ["Wraps","an","iterator","to","allow","for","infinite","iteration",".","This","is","especially","useful","for","DataLoader","types","that","we","wish","to","automatically","restart","upon","completion",".","Args",":","loader","(","iterator",")",":","The","data","loader","to","repeat","."]
code: def __init__(self, loader):
      """Wraps an iterator to allow for infinite iteration. This is especially useful
      for DataLoader types that we wish to automatically restart upon completion.
  
      Args:
          loader (iterator): The data loader to repeat.
      """
      self.loader = loader
      self.data_iter = iter(self.loader)
  
file_path: DeepSpeed/deepspeed/runtime/dataloader.py
imports: from torch.utils.data import DataLoader, RandomSampler
  from torch.utils.data.distributed import DistributedSampler
  from deepspeed.accelerator import get_accelerator
  from deepspeed.runtime.data_pipeline.data_sampling.data_sampler import DeepSpeedDataSampler
  from deepspeed.runtime.data_pipeline.constants import CURRICULUM_LEARNING, DATA_EFFICIENCY, DATA_SAMPLING_NUM_WORKERS
  from deepspeed.runtime.constants import GRADIENT_ACCUMULATION_STEPS, DATA_PARALLEL_GROUP, GLOBAL_RANK
label_desc: Use image node_id 1 to create a new RepeatingLoader object  with example: obj = RepeatingLoader(loader)