class_docstr: A Gaussian process for Neural Networks. 
docstr: Constructor.
  kernel: Should be a kernel or one of 'from_distance_computer', 'lp', 'emd',
    'sum_lp-emd', 'product_lp-emd'
  kernel_hyperparams: is a python dictionary specifying the hyper-parameters for the
    kernel. Will have parameters 'beta', 'scale', 'sum_scales', 'powers'.
  list_of_dists: Is a list of distances for the training set.
  tp_comp: a transport distance computer object.
docstr_tok: ["Constructor",".","kernel",":","Should","be","a","kernel","or","one","of","'from_distance_computer","'",",","'lp","'",",","'emd","'",",","'sum_lp-emd","'",",","'product_lp-emd'","kernel_hyperparams",":","is","a","python","dictionary","specifying","the","hyper-parameters","for","the","kernel",".","Will","have","parameters","'beta","'",",","'scale","'",",","'sum_scales","'",",","'powers","'",".","list_of_dists",":","Is","a","list","of","distances","for","the","training","set",".","tp_comp",":","a","transport","distance","computer","object","."]
code: def __init__(
      self,
      X,
      Y,
      kernel,
      mean_func,
      noise_var,
      nn_type,
      kernel_hyperparams=None,
      dist_type=None,
      tp_comp=None,
      list_of_dists=None,
      *args,
      **kwargs,
  ):
      # pylint: disable=too-many-arguments
      """Constructor.
      kernel: Should be a kernel or one of 'from_distance_computer', 'lp', 'emd',
        'sum_lp-emd', 'product_lp-emd'
      kernel_hyperparams: is a python dictionary specifying the hyper-parameters for the
        kernel. Will have parameters 'beta', 'scale', 'sum_scales', 'powers'.
      list_of_dists: Is a list of distances for the training set.
      tp_comp: a transport distance computer object.
      """
      if isinstance(kernel, str):
          # then kernel is specifying the kernel type
          kernel = get_nn_kernel_from_args(
              kernel, nn_type, kernel_hyperparams, tp_comp, dist_type
          )
      self.nn_type = nn_type
      self.list_of_dists = list_of_dists
      # Call super constructor
      super(NNGP, self).__init__(
          X,
          Y,
          kernel,
          mean_func,
          noise_var,
          handle_non_psd_kernels="project_first",
          *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 NNGP object from inherited base classes: gp_core with example: obj = NNGP(X, Y, kernel, mean_func, noise_var, nn_type, kernel_hyperparams, dist_type, tp_comp, list_of_dists)