class_docstr: The White kernel: this kernel produces 'white noise'. The kernel equation is
  
      k(x_n, x_m) = δ(n, m) σ²
  
  where:
  δ(.,.) is the Kronecker delta,
  σ²  is the variance parameter.
code: def K(
      self, X: TensorType, X2: Optional[TensorType] = None
  ) -> tf.Tensor:
      if X2 is None:
          d = tf.fill(tf.shape(X)[:-1], tf.squeeze(self.variance))
          return tf.linalg.diag(d)
      else:
          shape = tf.concat(
              [tf.shape(X)[:-1], tf.shape(X2)[:-1]], axis=0
          )
          return tf.zeros(shape, dtype=X.dtype)
  
file_path: GPflow/gpflow/kernels/statics.py
imports: from typing import Optional
  import tensorflow
  from check_shapes import check_shapes, inherit_check_shapes
  from ..base import Parameter, TensorType
  from ..utilities import positive
  from .base import ActiveDims, Kernel
label_desc: Use image node_id 1 for calling the White obj's underlying member method code with example usage: obj.K(X, X2) and returns: tf, tf