class_docstr: MultiIterator defines the iteration logic to get a batch, given
  batches from all individual dataloaders.
  iteration_strategy can include accompanying parameters for a particular
  iterator, like cycling order for the dataloaders.
  
  Args:
      individual_dataloaders (Mapping[str, Union[DataLoader, Iterable]]): A mapping of DataLoaders or Iterables with dataloader name as key
          and dataloader/iterable object as value.
      iteration_strategy (DataIterationStrategy): A dataclass indicating how the dataloaders are iterated over.
  
  Note:
      TorchData (https://pytorch.org/data/beta/index.html) also has generic multi-data
          sources reading support to achieve the same functionality provided by MultiIterator.
      For example, `mux`, `mux_longest`, `cycle`, `zip` etc. Please refer to the documentation for more details.
code: def __next__(self) -> Dict[str, Any]:
      pass
  
imports: from __future__ import annotations
  import random
  from abc import abstractmethod
  from dataclasses import dataclass
  from enum import Enum
  from itertools import cycle
  from typing import Any, Dict, Iterable, Iterator, List, Mapping, MutableMapping, Optional, Type, TYPE_CHECKING, Union
  import torch
  import torch.distributed
label_desc: Use image node_id 3 for calling the MultiIterator obj's underlying member method code with example usage: obj.__next__() without return types