class_docstr: The basic kernel class. Management of active dimensions is implemented here.
  
  :param active_dims: active dimensions, either a slice or list of
      indices into the columns of X.
  :param name: optional kernel name.
class_docstr_tok: ["The","basic","kernel","class",".","Management","of","active","dimensions","is","implemented","here",".",":","param","active_dims",":","active","dimensions",",","either","a","slice","or","list","of","indices","into","the","columns","of","X.",":","param","name",":","optional","kernel","name","."]
code: def __call__(
      self,
      X: TensorType,
      X2: Optional[TensorType] = None,
      *,
      full_cov: bool = True,
      presliced: bool = False,
  ) -> tf.Tensor:
      if (not full_cov) and (X2 is not None):
          raise ValueError(
              "Ambiguous inputs: `not full_cov` and `X2` are not compatible."
          )
  
      if not presliced:
          X, X2 = self.slice(X, X2)
  
      if not full_cov:
          assert X2 is None
          return self.K_diag(X)
  
      else:
          return self.K(X, X2)
  
imports: import abc
  from functools import partial, reduce
  from typing import Callable, List, Optional, Sequence, Tuple, Union, overload
  import numpy
  import tensorflow
  from check_shapes import check_shapes
  from ..base import AnyNDArray, Module, TensorType
label_desc: Use image node_id 13 for calling the Kernel obj's underlying member method code with example usage: obj.__call__(X, X2) and returns: self, self