code: def Kuf_conv_patch(
      inducing_variable: InducingPatches,
      kernel: Convolutional,
      Xnew: TensorType,
  ) -> tf.Tensor:
      Xp = kernel.get_patches(Xnew)  # [N, num_patches, patch_len]
      bigKzx = kernel.base_kernel.K(
          inducing_variable.Z, Xp
      )  # [M, N, P] -- thanks to broadcasting of kernels
      Kzx = tf.reduce_sum(
          bigKzx * kernel.weights
          if hasattr(kernel, "weights")
          else bigKzx,
          [2],
      )
      return Kzx / kernel.num_patches
  
file_path: GPflow/gpflow/covariances/kufs.py
imports: import numpy
  import tensorflow
  from check_shapes import check_shapes
  from ..base import TensorLike, TensorType
  from ..inducing_variables import InducingPatches, InducingPoints, Multiscale
  from ..kernels import Convolutional, Kernel, SquaredExponential
  from .dispatch import Kuf
label_desc: Use image node_id 3 for calling a global function with example usage: Kuf_conv_patch(inducing_variable, kernel, Xnew) and returns: unknown