class_docstr: The standard likelihood for regression.
  Assumes a standard homoskedastic noise model:
  
  .. math::
      p(y \mid f) = f + \epsilon, \quad \epsilon \sim \mathcal N (0, \sigma^2)
  
  where :math:`\sigma^2` is a noise parameter.
  
  .. note::
      This likelihood can be used for exact or approximate inference.
  
  .. note::
      GaussianLikelihood has an analytic marginal distribution.
  
  :param noise_prior: Prior for noise parameter :math:`\sigma^2`.
  :param noise_constraint: Constraint for noise parameter :math:`\sigma^2`.
  :param batch_shape: The batch shape of the learned noise parameter (default: []).
  :param kwargs:
  
  :ivar torch.Tensor noise: :math:`\sigma^2` parameter (noise)
class_docstr_tok: ["The","standard","likelihood","for","regression",".","Assumes","a","standard","homoskedastic","noise","model",":","..","math",":",":","p","(","y","\\mid","f",")","=","f","+","\\epsilon",",","\\quad","\\epsilon","\\sim","\\mathcal","N","(","0",",","\\sigma^2",")","where",":","math",":","`","\\sigma^2","`","is","a","noise","parameter",".","..","note",":",":","This","likelihood","can","be","used","for","exact","or","approximate","inference",".","..","note",":",":","GaussianLikelihood","has","an","analytic","marginal","distribution",".",":","param","noise_prior",":","Prior","for","noise","parameter",":","math",":","`","\\sigma^2","`",".",":","param","noise_constraint",":","Constraint","for","noise","parameter",":","math",":","`","\\sigma^2","`",".",":","param","batch_shape",":","The","batch","shape","of","the","learned","noise","parameter","(","default",":","[","]",")",".",":","param","kwargs",":",":","ivar","torch.Tensor","noise",":",":","math",":","`","\\sigma^2","`","parameter","(","noise",")"]
code: def __init__(
      self,
      noise_prior: Optional[Prior] = None,
      noise_constraint: Optional[Interval] = None,
      batch_shape: torch.Size = torch.Size(),
      **kwargs: Any,
  ) -> None:
      noise_covar = HomoskedasticNoise(
          noise_prior=noise_prior,
          noise_constraint=noise_constraint,
          batch_shape=batch_shape,
      )
      super().__init__(noise_covar=noise_covar)
  
imports: import math
  import warnings
  from copy import deepcopy
  from typing import Any, Optional, Tuple, Union
  import torch
  from linear_operator.operators import LinearOperator, MaskedLinearOperator, ZeroLinearOperator
  from torch import Tensor
  from torch.distributions import Distribution, Normal
  from ..None import settings
  from ..constraints import Interval
  from ..distributions import base_distributions, MultivariateNormal
  from ..priors import Prior
  from ..utils.warnings import GPInputWarning
  from .likelihood import Likelihood
  from .noise_models import FixedGaussianNoise, HomoskedasticNoise, Noise
label_desc: Use image node_id 1 to create a new GaussianLikelihood object from inherited base classes: _GaussianLikelihoodBase with example: obj = GaussianLikelihood(noise_prior, noise_constraint, batch_shape)