docstr: A base class for likelihoods, which specifies an observation model
  connecting the latent functions ('F') to the data ('Y').
  
  All of the members of this class are expected to obey some shape conventions, as specified
  by latent_dim and observation_dim.
  
  If we're operating on an array of function values 'F', then the last dimension represents
  multiple functions (preceding dimensions could represent different data points, or
  different random samples, for example). Similarly, the last dimension of Y represents a
  single data point. We check that the dimensions are as this object expects.
  
  The return shapes of all functions in this class is the broadcasted shape of the arguments,
  excluding the last dimension of each argument.
  
  :param input_dim: the dimension of the input vector X for a single data point
  :param latent_dim: the dimension of the vector F of latent functions for a single data point
  :param observation_dim: the dimension of the observation vector Y for a single data point
docstr_tok: ["A","base","class","for","likelihoods",",","which","specifies","an","observation","model","connecting","the","latent","functions","(","'","F","'",")","to","the","data","(","'","Y","'",")",".","All","of","the","members","of","this","class","are","expected","to","obey","some","shape","conventions",",","as","specified","by","latent_dim","and","observation_dim",".","If","we","'re","operating","on","an","array","of","function","values","'","F","'",",","then","the","last","dimension","represents","multiple","functions","(","preceding","dimensions","could","represent","different","data","points",",","or","different","random","samples",",","for","example",")",".","Similarly",",","the","last","dimension","of","Y","represents","a","single","data","point",".","We","check","that","the","dimensions","are","as","this","object","expects",".","The","return","shapes","of","all","functions","in","this","class","is","the","broadcasted","shape","of","the","arguments",",","excluding","the","last","dimension","of","each","argument",".",":","param","input_dim",":","the","dimension","of","the","input","vector","X","for","a","single","data","point",":","param","latent_dim",":","the","dimension","of","the","vector","F","of","latent","functions","for","a","single","data","point",":","param","observation_dim",":","the","dimension","of","the","observation","vector","Y","for","a","single","data","point"]
code: def __init__(
      self,
      input_dim: Optional[int],
      latent_dim: Optional[int],
      observation_dim: Optional[int],
  ) -> None:
      """
      A base class for likelihoods, which specifies an observation model
      connecting the latent functions ('F') to the data ('Y').
  
      All of the members of this class are expected to obey some shape conventions, as specified
      by latent_dim and observation_dim.
  
      If we're operating on an array of function values 'F', then the last dimension represents
      multiple functions (preceding dimensions could represent different data points, or
      different random samples, for example). Similarly, the last dimension of Y represents a
      single data point. We check that the dimensions are as this object expects.
  
      The return shapes of all functions in this class is the broadcasted shape of the arguments,
      excluding the last dimension of each argument.
  
      :param input_dim: the dimension of the input vector X for a single data point
      :param latent_dim: the dimension of the vector F of latent functions for a single data point
      :param observation_dim: the dimension of the observation vector Y for a single data point
      """
      super().__init__()
      self.input_dim = input_dim
      self.latent_dim = latent_dim
      self.observation_dim = observation_dim
  
imports: import abc
  from typing import Any, Callable, Iterable, Optional, Sequence, Union
  import tensorflow
  from check_shapes import check_shapes, inherit_check_shapes
  from ..base import MeanAndVariance, Module, TensorType
  from ..quadrature import GaussianQuadrature, NDiagGHQuadrature, ndiag_mc
label_desc: Use image node_id 1 to create a new Likelihood object from inherited base classes: Module, abc with example: obj = Likelihood(input_dim, latent_dim, observation_dim)