class_docstr: Fits a GP by tuning the kernel hyper-params. 
class_docstr_tok: ["Fits","a","GP","by","tuning","the","kernel","hyper-params","."]
docstr: Sets parameters for GPFitter. 
code: def _child_set_up(self):
      """Sets parameters for GPFitter."""
      # IMPORTANT: Keep this order when tuning for the hyper-parameters.
      # Continuous: Mean value, GP noise, kernel scale, then the remaining Kernel params.
      # Discrete: add_group_size, then the remaining kernel params.
      # Check args - so that we don't have to keep doing this all the time
      if self.options.kernel_type not in [
          "se",
          "matern",
          "poly",
          "esp",
          "default",
      ]:
          raise ValueError(
              "Unknown kernel_type. Should be either se, matern or poly."
          )
      if self.options.noise_var_type not in ["tune", "label", "value"]:
          raise ValueError(
              "Unknown noise_var_type. Should be either tune, label or value."
          )
      if self.options.mean_func_type not in [
          "mean",
          "median",
          "const",
          "zero",
          "tune",
      ]:
          raise ValueError(
              "Unknown mean_func_type. Should be mean/median/const/zero/tune."
          )
      # Set kernel type
      if self.options.kernel_type == "default":
          self.kernel_type = _DFLT_KERNEL_TYPE
      else:
          self.kernel_type = self.options.kernel_type
      # 1 & 2: mean value and noise variance - done in parent class.
      # 3. Kernel parameters
      if self.kernel_type == "se":
          self._se_kernel_set_up()
      elif self.kernel_type == "matern":
          self._matern_kernel_set_up()
      elif self.kernel_type in ["poly"]:
          self._poly_kernel_set_up()
      elif self.kernel_type == "esp":
          self._esp_kernel_set_up()
      # 4. Additive grouping
      if self.options.use_additive_gp and self.kernel_type != "esp":
          self.add_group_size_idx_in_dscr_hp_vals = len(
              self.dscr_hp_vals
          )
          self.add_max_group_size = min(
              self.options.add_max_group_size, self.dim
          )
          self.dscr_hp_vals.append(
              [x + 1 for x in range(self.add_max_group_size)]
          )
          self.param_order.append(["additive_grp", "dscr"])
      elif self.kernel_type == "esp" and self.options.esp_order == -1:
          self.dscr_hp_vals.append(
              list(range(1, max(self.dim, self.options.esp_order) + 1))
          )
          self.param_order.append(["esp_order", "dscr"])
  
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 2 for calling the EuclideanGPFitter obj's underlying member method code with example usage: obj._child_set_up() without return types