class_docstr: A saveable version of the PyTorch DataLoader.
  
  See `torch.utils.data.DataLoader` for usage. This class should work exactly
  like the PyTorch basic DataLoader, but this can be checkpointed with
  SpeechBrain's Checkpointer.
  
  Note
  ----
  1. The saveability is implemented via some unfortunately slightly magical
  means.
  2. The data loader cannot recover after entering __iter__. Normally this is
  not a problem, as recovery should happen before training begins.  However,
  just before evaluation, it is also typical to recover the checkpoint at
  which performance was the best. Thus, if a checkpoint is loaded after
  entering __iter__, we just assume it is for this reason. A warning is
  logged, but that is all.
class_docstr_tok: ["A","saveable","version","of","the","PyTorch","DataLoader",".","See","`","torch.utils.data.DataLoader","`","for","usage",".","This","class","should","work","exactly","like","the","PyTorch","basic","DataLoader",",","but","this","can","be","checkpointed","with","SpeechBrain","'s","Checkpointer",".","Note","--","--","1",".","The","saveability","is","implemented","via","some","unfortunately","slightly","magical","means",".","2",".","The","data","loader","can","not","recover","after","entering","__iter__",".","Normally","this","is","not","a","problem",",","as","recovery","should","happen","before","training","begins",".","However",",","just","before","evaluation",",","it","is","also","typical","to","recover","the","checkpoint","at","which","performance","was","the","best",".","Thus",",","if","a","checkpoint","is","loaded","after","entering","__iter__",",","we","just","assume","it","is","for","this","reason",".","A","warning","is","logged",",","but","that","is","all","."]
code: def _speechbrain_load(self, path, end_of_epoch):
      if self._speechbrain_iterator is not None:
          logging.debug(
              "SaveableDataLoader was requested to load a "
              "checkpoint, but the DataLoader has already been "
              "iterated. The DataLoader file will be ignored. "
              "This is normal in evaluation, when a checkpoint is "
              "loaded just to retrieve the best model."
          )
          return
      if end_of_epoch:
          # Don't load at end of epoch, as we actually want to start a fresh
          # epoch iteration next.
          return
      with open(path) as fi:
          saved = fi.read()
          if saved == str(None):
              # Saved at a point where e.g. an iterator did not yet exist.
              return
          else:
              self._speechbrain_recovery_skip_to = int(saved)
  
imports: from torch.utils.data import DataLoader
  from torch.utils.data import IterableDataset
  from torch.utils.data.dataloader import _BaseDataLoaderIter
  import logging
  import warnings
  import functools
  from torch.utils.data import DistributedSampler
  from speechbrain.dataio.batch import PaddedBatch, BatchsizeGuesser
  from speechbrain.dataio.dataset import DynamicItemDataset
  from speechbrain.dataio.sampler import ReproducibleRandomSampler, DistributedSamplerWrapper
  from speechbrain.utils.checkpoints import register_checkpoint_hooks, mark_as_saver, mark_as_loader
label_desc: Use image node_id 4 for calling the SaveableDataLoader obj's underlying member method code with example usage: obj._speechbrain_load(path, end_of_epoch) without return types