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 state_dict(self) -> Dict[str, Any]:
      return {k: v.state_dict() for k, v in self.stateful_objs.items()}
  
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 2 for calling the MultiStateful obj's underlying member method code with example usage: obj.state_dict() and returns: unknown