class_docstr: - Separate: we use different kernel for each output latent
  - Independent: Latents are uncorrelated a priori.
class_docstr_tok: ["-","Separate",":","we","use","different","kernel","for","each","output","latent","-","Independent",":","Latents","are","uncorrelated","a","priori","."]
code: def num_latent_gps(self) -> int:
      return len(self.kernels)
  
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 2 for calling the SeparateIndependent obj's underlying member method code with example usage: obj.num_latent_gps() and returns: len