code: def _resolve_dotted_name(dotted_name):
      
      if not isinstance(dotted_name, str):
          return dotted_name
  
      if '.' not in dotted_name:
          return dotted_name
  
      args = None
      params = None
      match = P_PARAMS.match(dotted_name)
      if match:
          dotted_name = match.group('name')
          params = match.group('params')
  
      module, name = dotted_name.rsplit('.', 1)
      attr = import_module(module)
      attr = getattr(attr, name)
  
      if params:
          args, kwargs = _parse_args_kwargs(params[1:-1])
          attr = attr(*args, **kwargs)
  
      return attr
docs: Returns objects from strings
  
      Deals e.g. with 'torch.nn.Softmax(dim=-1)'.
  
      Modified from palladium:
  
      https://github.com/ottogroup/palladium/blob/8a066a9a7690557d9b1b6ed54b7d1a1502ba59e3/palladium/util.py
  
      with added support for instantiated objects.