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.InternalDataTrainingLossMixinGaussian 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
nameReturns the name of this module as passed or determined in the ctor.
name_scopeReturns a tf.name_scope instance for this class.
non_trainable_variablesSequence of non-trainable variables owned by this module and its submodules.
- parameters
submodulesSequence of all sub-modules.
- trainable_parameters
trainable_variablesSequence of trainable variables owned by this module and its submodules.
variablesSequence 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.
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.
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_deprecatedThis is an implementation of GPR that provides a posterior() method that enables caching for faster subsequent predictions.
- Attributes
nameReturns the name of this module as passed or determined in the ctor.
name_scopeReturns a tf.name_scope instance for this class.
non_trainable_variablesSequence of non-trainable variables owned by this module and its submodules.
- parameters
submodulesSequence of all sub-modules.
- trainable_parameters
trainable_variablesSequence of trainable variables owned by this module and its submodules.
variablesSequence 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]