class_docstr: General class for handling a Gaussian Process in GPyOpt.
  
  :param kernel: GPy kernel to use in the GP model.
  :param noise_var: value of the noise variance if known.
  :param exact_feval: whether noiseless evaluations are available. IMPORTANT to make the optimization work well in noiseless scenarios (default, False).
  :param n_samples: number of MCMC samples.
  :param n_burnin: number of samples not used.
  :param subsample_interval: sub-sample interval in the MCMC.
  :param step_size: step-size in the MCMC.
  :param leapfrog_steps: ??
  :param verbose: print out the model messages (default, False).
  
  .. Note:: This model does MCMC over the hyperparameters.
docstr: Returns the mean, standard deviation, mean gradient and standard deviation gradient at X for all the MCMC samples.
docstr_tok: ["Returns","the","mean",",","standard","deviation",",","mean","gradient","and","standard","deviation","gradient","at","X","for","all","the","MCMC","samples","."]
code: def predict_withGradients(self, X):
      """
      Returns the mean, standard deviation, mean gradient and standard deviation gradient at X for all the MCMC samples.
      """
      if X.ndim == 1:
          X = X[None, :]
      ps = self.model.param_array.copy()
      means = []
      stds = []
      dmdxs = []
      dsdxs = []
      for s in self.hmc_samples:
          if self.model._fixes_ is None:
              self.model[:] = s
          else:
              self.model[self.model._fixes_] = s
          self.model._trigger_params_changed()
          m, v = self.model.predict(X)
          std = np.sqrt(np.clip(v, 1e-10, np.inf))
          dmdx, dvdx = self.model.predictive_gradients(X)
          dmdx = dmdx[:, :, 0]
          dsdx = dvdx / (2 * std)
          means.append(m)
          stds.append(std)
          dmdxs.append(dmdx)
          dsdxs.append(dsdx)
      self.model.param_array[:] = ps
      self.model._trigger_params_changed()
      return means, stds, dmdxs, dsdxs
  
imports: import numpy
  import GPy
  from .base import BOModel
label_desc: Use image node_id 6 for calling the GPModel_MCMC obj's underlying member method code with example usage: obj.predict_withGradients(X) and returns: means,  stds,  dmdxs,  dsdxs