class_docstr: Common base class for SGPR and GPRFITC that provides the common __init__
  and upper_bound() methods.
docstr: This method only works with a Gaussian likelihood, its variance is
  initialized to `noise_variance`.
  
  :param data: a tuple of (X, Y), where the inputs X has shape [N, D]
      and the outputs Y has shape [N, R].
  :param inducing_variable:  an InducingPoints instance or a matrix of
      the pseudo inputs Z, of shape [M, D].
  :param kernel: An appropriate GPflow kernel object.
  :param mean_function: An appropriate GPflow mean function object.
docstr_tok: ["This","method","only","works","with","a","Gaussian","likelihood",",","its","variance","is","initialized","to","`","noise_variance","`",".",":","param","data",":","a","tuple","of","(","X",",","Y",")",",","where","the","inputs","X","has","shape","[","N",",","D","]","and","the","outputs","Y","has","shape","[","N",",","R","]",".",":","param","inducing_variable",":","an","InducingPoints","instance","or","a","matrix","of","the","pseudo","inputs","Z",",","of","shape","[","M",",","D","]",".",":","param","kernel",":","An","appropriate","GPflow","kernel","object",".",":","param","mean_function",":","An","appropriate","GPflow","mean","function","object","."]
code: def __init__(
      self,
      data: RegressionData,
      kernel: Kernel,
      inducing_variable: InducingPointsLike,
      *,
      mean_function: Optional[MeanFunction] = None,
      num_latent_gps: Optional[int] = None,
      noise_variance: Optional[TensorData] = None,
      likelihood: Optional[Gaussian] = None,
  ):
      """
      This method only works with a Gaussian likelihood, its variance is
      initialized to `noise_variance`.
  
      :param data: a tuple of (X, Y), where the inputs X has shape [N, D]
          and the outputs Y has shape [N, R].
      :param inducing_variable:  an InducingPoints instance or a matrix of
          the pseudo inputs Z, of shape [M, D].
      :param kernel: An appropriate GPflow kernel object.
      :param mean_function: An appropriate GPflow mean function object.
      """
      assert (noise_variance is None) or (
          likelihood is None
      ), "Cannot set both `noise_variance` and `likelihood`."
      if likelihood is None:
          if noise_variance is None:
              noise_variance = 1.0
          likelihood = Gaussian(noise_variance)
      X_data, Y_data = data_input_to_tensor(data)
      num_latent_gps = (
          Y_data.shape[-1] if num_latent_gps is None else num_latent_gps
      )
      super().__init__(
          kernel,
          likelihood,
          mean_function,
          num_latent_gps=num_latent_gps,
      )
  
      self.data = X_data, Y_data
      self.num_data = X_data.shape[0]
  
      self.inducing_variable: InducingPoints = inducingpoint_wrapper(
          inducing_variable
      )
  
imports: from typing import NamedTuple, Optional, Tuple
  import numpy
  import tensorflow
  from check_shapes import check_shapes, inherit_check_shapes
  from ..None import posteriors
  from ..base import InputData, MeanAndVariance, RegressionData, TensorData
  from ..config import default_float, default_jitter
  from ..covariances.dispatch import Kuf, Kuu
  from ..inducing_variables import InducingPoints
  from ..kernels import Kernel
  from ..likelihoods import Gaussian
  from ..mean_functions import MeanFunction
  from ..utilities import add_noise_cov, assert_params_false, to_default_float
  from .model import GPModel
  from .training_mixins import InternalDataTrainingLossMixin
  from .util import InducingPointsLike, data_input_to_tensor, inducingpoint_wrapper
label_desc: Use image node_id 1 to create a new SGPRBase_deprecated object from inherited base classes: GPModel, InternalDataTrainingLossMixin with example: obj = SGPRBase_deprecated(data, kernel, inducing_variable)