docstr: Here, we implement a default Gauss-Hermite quadrature routine, but some
  likelihoods (e.g. Gaussian) will implement specific cases.
  
  :param X: input tensor
  :param Fmu: mean function evaluation tensor
  :param Fvar: variance of function evaluation tensor
  :returns: mean and variance of Y
docstr_tok: ["Here",",","we","implement","a","default","Gauss-Hermite","quadrature","routine",",","but","some","likelihoods","(","e.g",".","Gaussian",")","will","implement","specific","cases",".",":","param","X",":","input","tensor",":","param","Fmu",":","mean","function","evaluation","tensor",":","param","Fvar",":","variance","of","function","evaluation","tensor",":","returns",":","mean","and","variance","of","Y"]
code: def _predict_mean_and_var(
      self, X: TensorType, Fmu: TensorType, Fvar: TensorType
  ) -> MeanAndVariance:
      r"""
      Here, we implement a default Gauss-Hermite quadrature routine, but some
      likelihoods (e.g. Gaussian) will implement specific cases.
  
      :param X: input tensor
      :param Fmu: mean function evaluation tensor
      :param Fvar: variance of function evaluation tensor
      :returns: mean and variance of Y
      """
  
      def conditional_mean(F: TensorType, X_: TensorType) -> tf.Tensor:
          return self.conditional_mean(X_, F)
  
      def conditional_y_squared(
          F: TensorType, X_: TensorType
      ) -> tf.Tensor:
          return self.conditional_variance(X_, F) + tf.square(
              self.conditional_mean(X_, F)
          )
  
      E_y, E_y2 = self.quadrature(
          [conditional_mean, conditional_y_squared], Fmu, Fvar, X_=X
      )
      V_y = E_y2 - E_y**2
      return E_y, V_y
  
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 7 for calling the QuadratureLikelihood obj's underlying member method code with example usage: obj._predict_mean_and_var(X, Fmu, Fvar) and returns: E_y,  V_y, self, unknown