class_docstr: Wrapper for multiple stateful objects. Necessary because we might have multiple nn.Modules or multiple optimizers,
  but save/load_checkpoint APIs may only accepts one stateful object.
  
  Stores state_dict as a dict of state_dicts.
class_docstr_tok: ["Wrapper","for","multiple","stateful","objects",".","Necessary","because","we","might","have","multiple","nn.Modules","or","multiple","optimizers",",","but","save\/load_checkpoint","APIs","may","only","accepts","one","stateful","object",".","Stores","state_dict","as","a","dict","of","state_dicts","."]
code: def __init__(
      self,
      stateful_objs: Union[
          StatefulDict,
          ModuleDict,
          OptimizerAndLRSchedulerDict,
          ProgressDict,
      ],
  ) -> None:
      self.stateful_objs = stateful_objs
  
file_path: tnt/torchtnt/utils/stateful.py
imports: from typing import Any, Dict, Union
  import torch
  from torchtnt.utils.lr_scheduler import TLRScheduler
  from torchtnt.utils.prepare_module import FSDPOptimizerWrapper
  from torchtnt.utils.progress import Progress
  from typing_extensions import Protocol, runtime_checkable
label_desc: Use image node_id 1 to create a new MultiStateful object  with example: obj = MultiStateful(stateful_objs)