code: def _expectation_gaussian_identity__linear(
      p: Gaussian,
      mean1: mfn.Identity,
      _: None,
      mean2: mfn.Linear,
      __: None,
      nghp: None = None,
  ) -> tf.Tensor:
      """
      Compute the expectation:
      expectation[n] = <m1(x_n)^T m2(x_n)>_p(x_n)
          - m1(.) :: Identity mean function
          - m2(.) :: Linear mean function
  
      :return: NxDxQ
      """
      N = tf.shape(p.mu)[0]
      e_xxt = p.cov + (p.mu[:, :, None] * p.mu[:, None, :])  # NxDxD
      e_xxt_A = tf.linalg.matmul(
          e_xxt, tf.tile(mean2.A[None, ...], (N, 1, 1))
      )  # NxDxQ
      e_x_bt = p.mu[:, :, None] * mean2.b[None, None, :]  # NxDxQ
  
      return e_xxt_A + e_x_bt
  
file_path: GPflow/gpflow/expectations/mean_functions.py
imports: from typing import Type, Union
  import tensorflow
  from check_shapes import check_shapes
  from ..None import mean_functions
  from ..probability_distributions import Gaussian
  from .None import dispatch
  from .expectations import expectation
label_desc: Use image node_id 6 for calling a global function with example usage: _expectation_gaussian_identity__linear(p, mean1, _, mean2, __, nghp) and returns: unknown