class_docstr: Mixin to give a from_params method to classes. We create a distinct base class for this
  because sometimes we want non-Registrable classes to be instantiatable from_params.
class_docstr_tok: ["Mixin","to","give","a","from_params","method","to","classes",".","We","create","a","distinct","base","class","for","this","because","sometimes","we","want","non-Registrable","classes","to","be","instantiatable","from_params","."]
docstr: Returns a dictionary of parameters that, when turned into a `Params` object and
  then fed to `.from_params()`, will recreate this object.
  
  You don't need to implement this all the time. AllenNLP will let you know if you
  need it.
docstr_tok: ["Returns","a","dictionary","of","parameters","that",",","when","turned","into","a","`","Params","`","object","and","then","fed","to","`",".from_params","(",")","`",",","will","recreate","this","object",".","You","do","n't","need","to","implement","this","all","the","time",".","AllenNLP","will","let","you","know","if","you","need","it","."]
code: def _to_params(self) -> Dict[str, Any]:
      """
      Returns a dictionary of parameters that, when turned into a `Params` object and
      then fed to `.from_params()`, will recreate this object.
  
      You don't need to implement this all the time. AllenNLP will let you know if you
      need it.
      """
      raise NotImplementedError()
  
imports: import collections.abc
  from copy import deepcopy
  from pathlib import Path
  from typing import Any, Callable, cast, Dict, Iterable, List, Mapping, Set, Tuple, Type, TypeVar, Union, Optional
  import inspect
  import logging
  from allennlp.common.checks import ConfigurationError
  from allennlp.common.lazy import Lazy
  from allennlp.common.params import Params
label_desc: Use image node_id 3 for calling the FromParams obj's underlying member method code with example usage: obj._to_params() without return types