class_docstr: Fits a GP by tuning the kernel hyper-params. 
class_docstr_tok: ["Fits","a","GP","by","tuning","the","kernel","hyper-params","."]
docstr: Builds the GP. 
code: def _child_build_gp(
      self,
      mean_func,
      noise_var,
      gp_cts_hps,
      gp_dscr_hps,
      other_gp_params=None,
      *args,
      **kwargs,
  ):
      """Builds the GP."""
      # Domain kernel --------------------------------------
      kernel_hyperparams = self._prep_init_kernel_hyperparams(
          self.kernel_type
      )
      add_gp_groupings = None
      if self.options.use_additive_gp:
          gp_dscr_hps = gp_dscr_hps[
              :-1
          ]  # The first element is the group size
          add_gp_groupings = other_gp_params.add_gp_groupings
      (
          kernel,
          gp_cts_hps,
          gp_dscr_hps,
      ) = get_euclidean_integral_gp_kernel(
          self.kernel_type,
          kernel_hyperparams,
          gp_cts_hps,
          gp_dscr_hps,
          self.options.use_same_bandwidth,
          add_gp_groupings,
          self.options.esp_kernel_type,
      )
      ret_gp = EuclideanGP(
          self.X, self.Y, kernel, mean_func, noise_var, *args, **kwargs
      )
      return ret_gp, gp_cts_hps, gp_dscr_hps
  
imports: from __future__ import division
  from argparse import Namespace
  import numpy
  from .None import gp_core, mf_gp
  from .None import kernel
  from ..utils.ancillary_utils import get_list_of_floats_as_str
  from ..utils.general_utils import get_sublist_from_indices, map_to_bounds
  from ..utils.option_handler import get_option_specs, load_options
  from ..utils.oper_utils import random_sample_from_discrete_domain
  from ..utils.reporters import get_reporter
label_desc: Use image node_id 10 for calling the EuclideanGPFitter obj's underlying member method code with example usage: obj._child_build_gp(mean_func, noise_var, gp_cts_hps, gp_dscr_hps, other_gp_params) and returns: ret_gp,  gp_cts_hps,  gp_dscr_hps