class_docstr: Same as FairScale's [`FullyShardedDataParallel`]
  (https://fairscale.readthedocs.io/en/latest/api/nn/fsdp.html) but also implements
  the mixin methods from :class:`allennlp.nn.parallel.sharded_module_mixin.ShardedModuleMixin`.
class_docstr_tok: ["Same","as","FairScale","'s","[","`","FullyShardedDataParallel","`","]","(","https",":","\/\/fairscale.readthedocs.io\/en\/latest\/api\/nn\/fsdp.html",")","but","also","implements","the","mixin","methods","from",":","class",":","`","allennlp.nn.parallel.sharded_module_mixin.ShardedModuleMixin","`","."]
code: def get_original_module(self) -> torch.nn.Module:
      module = self.module
      if isinstance(module, FlattenParamsWrapper):
          module = module.module
      return module
  
imports: import os
  from typing import Tuple, Union, Optional, TYPE_CHECKING, List, Any, Dict, Sequence
  from fairscale.nn import FullyShardedDataParallel
  from fairscale.nn.wrap import enable_wrap, wrap
  from fairscale.nn.misc import FlattenParamsWrapper
  from fairscale.optim.grad_scaler import GradScaler
  import torch
  from torch.cuda import amp
  from allennlp.nn.parallel.sharded_module_mixin import ShardedModuleMixin
  from allennlp.nn.parallel.ddp_accelerator import DdpAccelerator, DdpWrappedModel, StateDictType, LoadStateDictReturnType
label_desc: Use image node_id 1 for calling the _FSDP obj's underlying member method code with example usage: obj.get_original_module() and returns: module