gpflow.models.gpr

gpflow.models.gpr.GPR_deprecated

class gpflow.models.gpr.GPR_deprecated(data, kernel, mean_function=None, noise_variance=1.0)[source]

Bases: gpflow.models.model.GPModel, gpflow.models.training_mixins.InternalDataTrainingLossMixin

Gaussian Process Regression.

This is a vanilla implementation of GP regression with a Gaussian likelihood. Multiple columns of Y are treated independently.

The log likelihood of this model is given by

\[\log p(Y \,|\, \mathbf f) = \mathcal N(Y \,|\, 0, \sigma_n^2 \mathbf{I})\]

To train the model, we maximise the log _marginal_ likelihood w.r.t. the likelihood variance and kernel hyperparameters theta. The marginal likelihood is found by integrating the likelihood over the prior, and has the form

\[\log p(Y \,|\, \sigma_n, \theta) = \mathcal N(Y \,|\, 0, \mathbf{K} + \sigma_n^2 \mathbf{I})\]
Attributes
name

Returns the name of this module as passed or determined in the ctor.

name_scope

Returns a tf.name_scope instance for this class.

non_trainable_variables

Sequence of non-trainable variables owned by this module and its submodules.

parameters
submodules

Sequence of all sub-modules.

trainable_parameters
trainable_variables

Sequence of trainable variables owned by this module and its submodules.

variables

Sequence of variables owned by this module and its submodules.

Methods

calc_num_latent_gps(kernel, likelihood, ...)

Calculates the number of latent GPs required given the number of outputs output_dim and the type of likelihood and kernel.

calc_num_latent_gps_from_data(data, kernel, ...)

Calculates the number of latent GPs required based on the data as well as the type of kernel and likelihood.

log_marginal_likelihood()

Computes the log marginal likelihood.

log_posterior_density(*args, **kwargs)

This may be the posterior with respect to the hyperparameters (e.g.

log_prior_density()

Sum of the log prior probability densities of all (constrained) variables in this model.

maximum_log_likelihood_objective()

Objective for maximum likelihood estimation.

predict_f(Xnew[, full_cov, full_output_cov])

This method computes predictions at X in R^{N x D} input points

predict_f_samples(Xnew[, num_samples, ...])

Produce samples from the posterior latent function(s) at the input points.

predict_log_density(data[, full_cov, ...])

Compute the log density of the data at the new data points.

predict_y(Xnew[, full_cov, full_output_cov])

Compute the mean and variance of the held-out data at the input points.

training_loss()

Returns the training loss for this model.

training_loss_closure(*[, compile])

Convenience method.

with_name_scope(method)

Decorator to automatically enter the module name scope.

Parameters
  • data (Tuple[Union[ndarray, Tensor, Variable, Parameter], Union[ndarray, Tensor, Variable, Parameter]]) –

  • kernel (Kernel) –

  • mean_function (Optional[MeanFunction]) –

  • noise_variance (float) –

log_marginal_likelihood()[source]

Computes the log marginal likelihood.

\[\log p(Y | \theta).\]
Return type

Tensor

maximum_log_likelihood_objective()[source]

Objective for maximum likelihood estimation. Should be maximized. E.g. log-marginal likelihood (hyperparameter likelihood) for GPR, or lower bound to the log-marginal likelihood (ELBO) for sparse and variational GPs.

Return type

Tensor

predict_f(Xnew, full_cov=False, full_output_cov=False)[source]

This method computes predictions at X in R^{N x D} input points

\[p(F* | Y)\]

where F* are points on the GP at new data points, Y are noisy observations at training data points.

Parameters
  • Xnew (Union[ndarray, Tensor, Variable, Parameter]) –

  • full_cov (bool) –

  • full_output_cov (bool) –

Return type

Tuple[Tensor, Tensor]

gpflow.models.gpr.GPR_with_posterior

class gpflow.models.gpr.GPR_with_posterior(data, kernel, mean_function=None, noise_variance=1.0)[source]

Bases: gpflow.models.gpr.GPR_deprecated

This is an implementation of GPR that provides a posterior() method that enables caching for faster subsequent predictions.

Attributes
name

Returns the name of this module as passed or determined in the ctor.

name_scope

Returns a tf.name_scope instance for this class.

non_trainable_variables

Sequence of non-trainable variables owned by this module and its submodules.

parameters
submodules

Sequence of all sub-modules.

trainable_parameters
trainable_variables

Sequence of trainable variables owned by this module and its submodules.

variables

Sequence of variables owned by this module and its submodules.

Methods

calc_num_latent_gps(kernel, likelihood, ...)

Calculates the number of latent GPs required given the number of outputs output_dim and the type of likelihood and kernel.

calc_num_latent_gps_from_data(data, kernel, ...)

Calculates the number of latent GPs required based on the data as well as the type of kernel and likelihood.

log_marginal_likelihood()

Computes the log marginal likelihood.

log_posterior_density(*args, **kwargs)

This may be the posterior with respect to the hyperparameters (e.g.

log_prior_density()

Sum of the log prior probability densities of all (constrained) variables in this model.

maximum_log_likelihood_objective()

Objective for maximum likelihood estimation.

posterior([precompute_cache])

Create the Posterior object which contains precomputed matrices for faster prediction.

predict_f(Xnew[, full_cov, full_output_cov])

For backwards compatibility, GPR's predict_f uses the fused (no-cache) computation, which is more efficient during training.

predict_f_samples(Xnew[, num_samples, ...])

Produce samples from the posterior latent function(s) at the input points.

predict_log_density(data[, full_cov, ...])

Compute the log density of the data at the new data points.

predict_y(Xnew[, full_cov, full_output_cov])

Compute the mean and variance of the held-out data at the input points.

training_loss()

Returns the training loss for this model.

training_loss_closure(*[, compile])

Convenience method.

with_name_scope(method)

Decorator to automatically enter the module name scope.

Parameters
  • data (Tuple[Union[ndarray, Tensor, Variable, Parameter], Union[ndarray, Tensor, Variable, Parameter]]) –

  • kernel (Kernel) –

  • mean_function (Optional[MeanFunction]) –

  • noise_variance (float) –

posterior(precompute_cache=PrecomputeCacheType.TENSOR)[source]

Create the Posterior object which contains precomputed matrices for faster prediction.

precompute_cache has three settings:

  • PrecomputeCacheType.TENSOR (or “tensor”): Precomputes the cached quantities and stores them as tensors (which allows differentiating through the prediction). This is the default.

  • PrecomputeCacheType.VARIABLE (or “variable”): Precomputes the cached quantities and stores them as variables, which allows for updating their values without changing the compute graph (relevant for AOT compilation).

  • PrecomputeCacheType.NOCACHE (or “nocache” or None): Avoids immediate cache computation. This is useful for avoiding extraneous computations when you only want to call the posterior’s fused_predict_f method.

predict_f(Xnew, full_cov=False, full_output_cov=False)[source]

For backwards compatibility, GPR’s predict_f uses the fused (no-cache) computation, which is more efficient during training.

For faster (cached) prediction, predict directly from the posterior object, i.e.,:

model.posterior().predict_f(Xnew, …)

Parameters

Xnew (Union[ndarray, Tensor, Variable, Parameter]) –

Return type

Tuple[Tensor, Tensor]

gpflow.models.gpr.data_input_to_tensor

gpflow.models.gpr.data_input_to_tensor(structure)[source]

Converts non-tensor elements of a structure to TensorFlow tensors retaining the structure itself. The function doesn’t keep original element’s dtype and forcefully converts them to GPflow’s default float type.