code: def __init__(
      self,
      input_dim: Optional[int],
      latent_dim: Optional[int],
      observation_dim: Optional[int],
      *,
      quadrature: Optional[GaussianQuadrature] = None,
  ) -> None:
      super().__init__(
          input_dim=input_dim,
          latent_dim=latent_dim,
          observation_dim=observation_dim,
      )
      if quadrature is None:
          with tf.init_scope():
              quadrature = NDiagGHQuadrature(
                  self._quadrature_dim, DEFAULT_NUM_GAUSS_HERMITE_POINTS
              )
      self.quadrature = quadrature
  
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 QuadratureLikelihood object from inherited base classes: Likelihood, abc with example: obj = QuadratureLikelihood(input_dim, latent_dim, observation_dim)