class_docstr: The exact marginal log likelihood (MLL) for an exact Gaussian process with a
  Gaussian likelihood.
  
  .. note::
      This module will not work with anything other than a :obj:`~gpytorch.likelihoods.GaussianLikelihood`
      and a :obj:`~gpytorch.models.ExactGP`. It also cannot be used in conjunction with
      stochastic optimization.
  
  :param ~gpytorch.likelihoods.GaussianLikelihood likelihood: The Gaussian likelihood for the model
  :param ~gpytorch.models.ExactGP model: The exact GP model
  
  Example:
      >>> # model is a gpytorch.models.ExactGP
      >>> # likelihood is a gpytorch.likelihoods.Likelihood
      >>> mll = gpytorch.mlls.ExactMarginalLogLikelihood(likelihood, model)
      >>>
      >>> output = model(train_x)
      >>> loss = -mll(output, train_y)
      >>> loss.backward()
code: def _add_other_terms(self, res, params):
      # Add additional terms (SGPR / learned inducing points, heteroskedastic likelihood models)
      for added_loss_term in self.model.added_loss_terms():
          res = res.add(added_loss_term.loss(*params))
  
      # Add log probs of priors on the (functions of) parameters
      res_ndim = res.ndim
      for name, module, prior, closure, _ in self.model.named_priors():
          prior_term = prior.log_prob(closure(module))
          res.add_(
              prior_term.view(*prior_term.shape[:res_ndim], -1).sum(
                  dim=-1
              )
          )
  
      return res
  
file_path: gpytorch/gpytorch/mlls/exact_marginal_log_likelihood.py
imports: from linear_operator.operators import MaskedLinearOperator
  from ..None import settings
  from ..distributions import MultivariateNormal
  from ..likelihoods import _GaussianLikelihoodBase
  from .marginal_log_likelihood import MarginalLogLikelihood
label_desc: Use image node_id 2 for calling the ExactMarginalLogLikelihood obj's underlying member method code with example usage: obj._add_other_terms(res, params) and returns: res