code: def predict(self, X):
          
  
          if X.ndim==1: X = X[None,:]
          ps = self.model.param_array.copy()
          means = []
          stds = []
          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)
              means.append(m)
              stds.append(np.sqrt(np.clip(v, 1e-10, np.inf)))
          self.model.param_array[:] = ps
          self.model._trigger_params_changed()
          return means, stds
docs: Predictions with the model for all the MCMC samples. Returns posterior means and standard deviations at X. Note that this is different in GPy where the variances are given.