class_docstr: Fits a GP by tuning the kernel hyper-params. 
docstr: Constructor. 
docstr_tok: ["Constructor","."]
code: def __init__(
      self,
      X,
      Y,
      nn_type,
      tp_comp=None,
      list_of_dists=None,
      options=None,
      reporter=None,
      *args,
      **kwargs,
  ):
      """Constructor."""
      self.nn_type = nn_type
      self.list_of_dists = list_of_dists
      self.tp_comp = tp_comp
      # get options
      reporter = get_reporter(reporter)
      options = load_options(
          nn_gp_args,
          "NNGPFitter",
          reporter=reporter,
          partial_options=options,
      )
      super(NNGPFitter, self).__init__(
          X, Y, options, reporter, *args, **kwargs
      )
  
imports: import numpy
  from .None import otmann
  from ..gp import gp_core
  from ..utils.ancillary_utils import get_list_of_floats_as_str
  from ..utils.reporters import get_reporter
  from ..utils.option_handler import get_option_specs, load_options
label_desc: Use image node_id 1 to create a new NNGPFitter object from inherited base classes: gp_core with example: obj = NNGPFitter(X, Y, nn_type, tp_comp, list_of_dists, options, reporter)