class_docstr: Base class for multioutput kernels that are constructed from independent
  latent Gaussian processes.
  
  It should always be possible to specify inducing variables for such kernels
  that give a block-diagonal Kuu, which can be represented as a [L, M, M]
  tensor. A reasonable (but not optimal) inference procedure can be specified
  by placing the inducing points in the latent processes and simply computing
  Kuu [L, M, M] and Kuf [N, P, M, L] and using `fallback_independent_latent_
  conditional()`. This can be specified by using `Fallback{Separate|Shared}
  IndependentInducingVariables`.
class_docstr_tok: ["Base","class","for","multioutput","kernels","that","are","constructed","from","independent","latent","Gaussian","processes",".","It","should","always","be","possible","to","specify","inducing","variables","for","such","kernels","that","give","a","block-diagonal","Kuu",",","which","can","be","represented","as","a","[","L",",","M",",","M","]","tensor",".","A","reasonable","(","but","not","optimal",")","inference","procedure","can","be","specified","by","placing","the","inducing","points","in","the","latent","processes","and","simply","computing","Kuu","[","L",",","M",",","M","]","and","Kuf","[","N",",","P",",","M",",","L","]","and","using","`","fallback_independent_latent_","conditional","(",")","`",".","This","can","be","specified","by","using","`","Fallback","{","Separate|Shared","}","IndependentInducingVariables","`","."]
code: def Kgg(self, X: TensorType, X2: TensorType) -> tf.Tensor:
      raise NotImplementedError
  
imports: import abc
  from typing import Optional, Sequence, Tuple
  import tensorflow
  from check_shapes import check_shape
  from check_shapes import check_shapes, inherit_check_shapes
  from ...base import Parameter, TensorType
  from ..base import Combination, Kernel
label_desc: Use image node_id 1 for calling the IndependentLatent obj's underlying member method code with example usage: obj.Kgg(X, X2) without return types