Source code for gp.kernels.base

__all__ = ['Kernel']

from functools import wraps
from copy import copy


[docs]class Kernel(object): def __getstate__(self): state = {'params': self.params} return state def __setstate__(self, state): self.params = state['params'] def __copy__(self): return type(self)(*self.params) def __deepcopy__(self, memo): return type(self)(*self.params)
[docs] def copy(self): """ Create a copy of the kernel. Returns ------- kernel : :class:`~gp.kernels.base.Kernel` New kernel function object of type ``type(self)``. """ return copy(self)
[docs] def sym_K(self): """ Symbolic kernel function. Returns ------- K : sympy.Expr A sympy expression representing the symbolic form of the kernel function. """ raise NotImplementedError
@property
[docs] def params(self): """ Kernel parameters. Returns ------- params : tuple """ raise NotImplementedError
[docs] def K(self, x1, x2, out=None): r""" Kernel function evaluated at `x1` and `x2`. Parameters ---------- x1 : numpy.ndarray with ``dtype='f8'`` :math:`n`-length vector x2 : numpy.ndarray with ``dtype='f8'`` :math:`m`-length vector Returns ------- K : numpy.ndarray :math:`n\times m` array """ raise NotImplementedError
@wraps(K) def __call__(self, x1, x2, out=None): return self.K(x1, x2, out=out)
[docs] def jacobian(self, x1, x2, out=None): r""" Jacobian of the kernel function evaluated at `x1` and `x2`. Parameters ---------- x1 : numpy.ndarray with ``dtype='f8'`` :math:`n`-length vector x2 : numpy.ndarray with ``dtype='f8'`` :math:`m`-length vector Returns ------- J : numpy.ndarray :math:`n_p\times n\times m` array, where :math:`n_p` is the number of kernel parameters. See `params`. """ raise NotImplementedError
[docs] def hessian(self, x1, x2, out=None): r""" Hessian of the kernel function evaluated at `x1` and `x2`. Parameters ---------- x1 : numpy.ndarray with ``dtype='f8'`` :math:`n`-length vector x2 : numpy.ndarray with ``dtype='f8'`` :math:`m`-length vector Returns ------- H : numpy.ndarray :math:`n_p\times n_p\times n\times m` array, where :math:`n_p` is the number of kernel parameters. See `params`. """ raise NotImplementedError