class_docstr: A way of adapting attributes of underlying class to parallel mode. See: https://pytorch.org/tutorials/beginner/former_torchies/parallelism_tutorial.html#dataparallel
  
  Gets into recursion errors. Workaround see: https://discuss.pytorch.org/t/access-att-of-model-wrapped-within-torch-nn-dataparallel-maximum-recursion-depth-exceeded/46975
class_docstr_tok: ["A","way","of","adapting","attributes","of","underlying","class","to","parallel","mode",".","See",":","https",":","\/\/pytorch.org\/tutorials\/beginner\/former_torchies\/parallelism_tutorial.html","#","dataparallel","Gets","into","recursion","errors",".","Workaround","see",":","https",":","\/\/discuss.pytorch.org\/t\/access-att-of-model-wrapped-within-torch-nn-dataparallel-maximum-recursion-depth-exceeded\/46975"]
code: def __getattr__(self, name):
      try:
          return super().__getattr__(name)
      except AttributeError:
          return getattr(self.module, name)
  
file_path: FARM/farm/modeling/optimization.py
imports: from importlib import import_module
  import logging
  import sys
  import inspect
  import torch
  from torch.nn.parallel import DistributedDataParallel
  from torch.nn import DataParallel
  from transformers.optimization import AdamW
  from farm.utils import MLFlowLogger
label_desc: Use image node_id 1 for calling the WrappedDataParallel obj's underlying member method code with example usage: obj.__getattr__(name) and returns: super, getattr