gpflow.functions#
Throughout GPflow, by default, latent functions being modelled with Gaussian processes are assumed to have zero mean, f ~ GP(0, k(x,x’)).
In some cases we may wish to model only the deviation from a fixed function with a Gaussian process. For flexibility this fixed function could be both input dependent and parameterised function, μ(x; θ), with some unknown parameters θ, resulting in f ~ GP(μ(x;θ), k(x,x’)).
The GPflow MeanFunction
class
allows this to be done whilst additionally learning parameters of the
parametric function.
Classes#
gpflow.functions.Additive#
gpflow.functions.Constant#
- class gpflow.functions.Constant(c=None)[source]#
Bases:
MeanFunction
,Function
- Parameters:
c (
Union
[ndarray
[Any
,Any
],Tensor
,Variable
,Parameter
,None
]) –
gpflow.functions.Function#
- class gpflow.functions.Function(name=None)[source]#
Bases:
Module
The base function class. To implement a function, write the
__call__
method. This takes a tensor X and returns a tensor f(X). In accordance with the GPflow standard, each row of X represents one datum, and each row of Y is computed independently for each row of X.Function
classes can have parameters, see theLinear
class for an example.
gpflow.functions.Identity#
gpflow.functions.Linear#
gpflow.functions.MeanFunction#
gpflow.functions.Polynomial#
- class gpflow.functions.Polynomial(degree, input_dim=1, output_dim=1, w=None)[source]#
Bases:
MeanFunction
,Function
A generic polynomial mean function.
- Parameters:
degree (
int
) –input_dim (
int
) –output_dim (
int
) –w (
Union
[ndarray
[Any
,Any
],Tensor
,Variable
,Parameter
,None
]) –
- static compute_powers(degree, input_dim)[source]#
Computes integer tuples corresponding to the powers to raise inputs to.
Specifically this returns, in lexicographical order, all tuples where:
The tuple has length input_dim.
The values are non-negative integers.
The sum of the tuple is no greater than degree.
For example:
compute_powers(degree=2, input_dim=3)
returns:
(0, 0, 0) (0, 0, 1) (0, 0, 2) (0, 1, 0) (0, 1, 1) (0, 2, 0) (1, 0, 0) (1, 0, 1) (1, 1, 0) (2, 0, 0)
where a tuple:
(1, 0, 2)
will translate to a the term:
w[i] * (x[0]**1) * (x[1]**0) * (x[2]**2)
- Parameters:
degree (
int
) –input_dim (
int
) –
- Return type:
Sequence
[Tuple
[int
,...
]]
gpflow.functions.Product#
gpflow.functions.SwitchedFunction#
- class gpflow.functions.SwitchedFunction(function_list)[source]#
Bases:
MeanFunction
,Function
This class enables to use different (independent) functions respective to the data ‘label’. We assume the ‘label’ is stored in the extra column of X.
- Parameters:
function_list (
Collection
[Function
]) –
gpflow.functions.SwitchedMeanFunction#
- class gpflow.functions.SwitchedMeanFunction(meanfunction_list)[source]#
Bases:
SwitchedFunction
Renamed
SwitchedFunction
for backwards compatibility.- Parameters:
meanfunction_list (
Collection
[MeanFunction
]) –