class_docstr: Class for fitting Gaussian processes. 
class_docstr_tok: ["Class","for","fitting","Gaussian","processes","."]
docstr: This function computes the tuning objective for posterior sampling case. 
docstr_tok: ["This","function","computes","the","tuning","objective","for","posterior","sampling","case","."]
code: def _tuning_objective_post_sampling(
      self,
      gp_cts_hps,
      gp_dscr_hps,
      other_gp_params=None,
      param=None,
      param_num=None,
      gradient=False,
      *args,
      **kwargs,
  ):
      """This function computes the tuning objective for posterior sampling case."""
      built_gp = self.build_gp(
          gp_cts_hps,
          gp_dscr_hps,
          other_gp_params=other_gp_params,
          *args,
          **kwargs,
      )
      if gradient:
          ret = built_gp.compute_grad_log_marginal_likelihood(
              param, param_num
          )
      else:
          ret = built_gp.compute_log_marginal_likelihood()
      return ret
  
imports: from __future__ import division
  from argparse import Namespace
  from itertools import product
  import sys
  import numpy
  from ..distributions.model import Model
  from ..distributions import continuous
  from ..distributions import discrete
  from ..utils.general_utils import stable_cholesky, draw_gaussian_samples, project_symmetric_to_psd_cone, solve_lower_triangular, solve_upper_triangular
  from ..utils.oper_utils import direct_ft_maximise, pdoo_maximise, random_maximise, random_sample_cts_dscr
  from ..utils.option_handler import get_option_specs, load_options
  from ..utils.reporters import get_reporter
label_desc: Use image node_id 13 for calling the GPFitter obj's underlying member method code with example usage: obj._tuning_objective_post_sampling(gp_cts_hps, gp_dscr_hps, other_gp_params, param, param_num, gradient) and returns: ret