MCPcopy
hub / github.com/pytorch/pytorch / __init__

Method __init__

torch/utils/data/dataloader.py:565–605  ·  view source on GitHub ↗
(self, loader: DataLoader)

Source from the content-addressed store, hash-verified

563
564class _BaseDataLoaderIter:
565 def __init__(self, loader: DataLoader) -> None:
566 self._dataset = loader.dataset
567 self._shared_seed = None
568 self._pg = None
569 if isinstance(self._dataset, IterDataPipe):
570 if dist.is_available() and dist.is_initialized():
571 self._pg = dist.new_group(backend="gloo")
572 self._shared_seed = _share_dist_seed(loader.generator, self._pg)
573 shared_rng = torch.Generator()
574 shared_rng.manual_seed(self._shared_seed)
575 self._dataset = torch.utils.data.graph_settings.apply_random_seed(self._dataset, shared_rng)
576 self._dataset_kind = loader._dataset_kind
577 self._IterableDataset_len_called = loader._IterableDataset_len_called
578 self._auto_collation = loader._auto_collation
579 self._drop_last = loader.drop_last
580 self._index_sampler = loader._index_sampler
581 self._num_workers = loader.num_workers
582 ws, rank = _get_distributed_settings()
583 self._world_size = ws
584 self._rank = rank
585 # for other backends, pin_memory_device need to set. if not set
586 # default behaviour is CUDA device. if pin_memory_device is selected
587 # and pin_memory is not set, the default behaviour false.
588 if (len(loader.pin_memory_device) == 0):
589 self._pin_memory = loader.pin_memory and torch.cuda.is_available()
590 self._pin_memory_device = None
591 else:
592 if not loader.pin_memory:
593 warn_msg = ("pin memory device is set and pin_memory flag is not used then device pinned memory won't be used"
594 "please set pin_memory to true, if you need to use the device pin memory")
595 warnings.warn(warn_msg)
596
597 self._pin_memory = loader.pin_memory
598 self._pin_memory_device = loader.pin_memory_device
599 self._timeout = loader.timeout
600 self._collate_fn = loader.collate_fn
601 self._sampler_iter = iter(self._index_sampler)
602 self._base_seed = torch.empty((), dtype=torch.int64).random_(generator=loader.generator).item()
603 self._persistent_workers = loader.persistent_workers
604 self._num_yielded = 0
605 self._profile_name = f"enumerate(DataLoader)#{self.__class__.__name__}.__next__"
606
607 def __iter__(self) -> '_BaseDataLoaderIter':
608 return self

Callers

nothing calls this directly

Calls 8

isinstanceFunction · 0.85
_share_dist_seedFunction · 0.85
iterFunction · 0.85
warnMethod · 0.80
itemMethod · 0.80
emptyMethod · 0.80
is_availableMethod · 0.45

Tested by

no test coverage detected