class_docstr: MultiDataLoader cycles through individual dataloaders passed to it.
  
  Attributes:
      individual_dataloaders (Dict[str, Union[DataLoader, Iterable]]): A dictionary 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.
      iterator_cls (MultiIterator, optional): A subclass of MultiIterator defining iteration logic. This is the type, not an object instance
      ignore_empty_data (bool): skip dataloaders which contain no data. It's False by default, and an exception is raised.
  
  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.
docstr: Return an aggregated state dict based on individual dataloaders.
  
  The state dict is keyed off the names provided by ``individual_dataloaders``.
  
  Note:
      Only states from dataloaders that implement the :class:`~torchtnt.utils.stateful.Stateful` protocol are included in the returned state dict.
code: def state_dict(self) -> Dict[str, Any]:
      """Return an aggregated state dict based on individual dataloaders.
  
      The state dict is keyed off the names provided by ``individual_dataloaders``.
  
      Note:
          Only states from dataloaders that implement the :class:`~torchtnt.utils.stateful.Stateful` protocol are included in the returned state dict.
      """
      state_dict = {}
      for name, dl in self.individual_dataloaders.items():
          if isinstance(dl, Stateful):
              state_dict[name] = dl.state_dict()
  
      return state_dict
  
file_path: tnt/torchtnt/utils/data/multi_dataloader.py
imports: from __future__ import annotations
  import logging
  from typing import Any, Dict, Iterable, Iterator, Optional, Type, TYPE_CHECKING, Union
  from torchtnt.utils.data.iterators import DataIterationStrategy, DataIterationStrategyRegistry, MultiIterator
  from torchtnt.utils.stateful import Stateful
label_desc: Use image node_id 3 for calling the MultiDataLoader obj's underlying member method code with example usage: obj.state_dict() and returns: state_dict