class TorchGaussianKernel

class deeptime.kernels.TorchGaussianKernel(sigma)

Gaussian kernel which has a dependency to PyTorch and can handle evaluation of Gram matrices as well as (over the batch-size) vectorized evaluations of the kernel.

See also

GaussianKernel

Attributes

impl

sigma

Bandwidth of the Gaussian kernel.

valid_impls

Valid implementation modes.

Methods

apply(data_1, data_2)

Applies the kernel to data arrays.

apply_torch(data_1, data_2)

cdist(x1, x2)

gram(data)

Computes the corresponding Gram matrix, see also apply().

__call__(x, y)

Computes the value of the kernel at two specific points.

Parameters:
  • x ((d,) ndarray) – X point.

  • y ((d,) ndarray) – Y point.

Returns:

kxy – The kernel evaluation \(\kappa (x, y)\).

Return type:

float

Notes

This dispatches to _evaluate() which is an interface method intended to be overridden by a specific kernel implementation.

apply(data_1: Union[ndarray, Tensor], data_2: Union[ndarray, Tensor]) Union[ndarray, Tensor]

Applies the kernel to data arrays.

Given \(x\in\mathbb{R}^{T_1 \times d}\) and \(y\in\mathbb{R}^{T_2\times d}\), it yields a kernel matrix

\[K = (\kappa(x_i, y_j))_{i,j}\in\mathbb{R}^{T_1\times T_2}.\]

Note that this corresponds to the kernel Gramian in case \(x = y\).

Parameters:
  • data_1 ((T_1, d) ndarray) – Data array.

  • data_2 ((T_2, d) ndarray) – Data array.

Returns:

K – The kernel matrix.

Return type:

(T_1, T_2) ndarray

gram(data: ndarray) ndarray

Computes the corresponding Gram matrix, see also apply().

Parameters:

data ((T, d) ndarray) – The data array.

Returns:

G – The kernel Gramian with G[i, j] = k(x[i], x[j]).

Return type:

(T, T) ndarray

property sigma: ndarray

Bandwidth of the Gaussian kernel.

Getter:

Yields the bandwidth.

Type:

(1,) ndarray

valid_impls = ('cdist', 'binomial')

Valid implementation modes.