code: def __iter__(self):
      self.randomize()
      self.before_iter()
      self.__idxs = (
          self.get_idxs()
      )  # called in context of main process (not workers/subprocesses)
      for b in _loaders[self.fake_l.num_workers == 0](self.fake_l):
          # pin_memory causes tuples to be converted to lists, so convert them back to tuples
          if self.pin_memory and type(b) == list:
              b = tuple(b)
          if self.device is not None:
              b = to_device(b, self.device)
          yield self.after_batch(b)
      self.after_iter()
      if hasattr(self, "it"):
          del self.it
  
imports: from __future__ import annotations
  from ..torch_basics import *
  from torch.utils.data.dataloader import _MultiProcessingDataLoaderIter, _SingleProcessDataLoaderIter, _DatasetKind
label_desc: Use image node_id 5 for calling the DataLoader obj's underlying member method code with example usage: obj.__iter__() without return types