code: def __init__(
      self,
      kernel_type,
      data_noise,
      b_0_var=1.0,
      w_0_var=1.0,
      w_1_var=2.0,
      u_var=1.0,
      g_var=1.0,
      depth=2,
  ):
      self.kernel_type = kernel_type
      self.data_noise = data_noise
      self.name_ = "GP"
  
      # variance for step fn, relu, erf
      self.b_0_var = b_0_var  # first layer bias variance
      self.w_0_var = w_0_var  # first layer weight variance
      self.w_1_var = w_1_var  # second layer weight variance
  
      # variance for rbf - we use williams 1996 notation
      # i.e. node = exp(-(x-u)^2 / 2*var_g)
      self.g_var = g_var  # param of rbf fn (fixed)
      self.u_var = u_var  # var of centers, as -> inf, goes to stationary cov dist
  
      # place holders
      self.mse_unnorm = 0.0
      self.rmse = 0.0
      self.nll = 0.0
  
      self.depth = depth
      return
  
file_path: elu-gelu-kernels/code/experiments/02_shallow_experiments/module_gp_gelu.py
imports: import numpy
  from .utils import *
  from ...kernels.nn_kernel_relu import NNKernelRelu
  from ...kernels.nn_kernel_gelu import NNKernelGelu
  from ...kernels.nn_kernel_lrelu import NNKernelLRelu
  from ...kernels.nn_kernel_elu import NNKernelElu
  from ...kernels.nn_kernel_erf import NNKernelErf
label_desc: Use image node_id 1 to create a new gp_model object  with example: obj = gp_model(kernel_type, data_noise, b_0_var, w_0_var, w_1_var, u_var, g_var, depth)