did.kernels

kernels.py

Implements generic Kernel module as well as Abel and Gaussian kernels.

Module Contents

Classes

Kernel

Generic Kernel nn.Module.

Functions

sq_dist(X1, X2)

Wrapper for torch.cdist with exponent 2.

abel_kernel(X1, X2, a=1.0)

Kernel function for Abel kernel defined as:

gaussian_kernel(X1, X2, sigma=1.0)

Kernel function for Gaussian kernel defined as:

class did.kernels.Kernel(kernel_name, kernel_fn, kernel_params)

Bases: torch.nn.Module

Generic Kernel nn.Module.

Implements a validate_input static method and forward.

static validate_input(x)

Validate input, else add dimension in front.

Parameters

x (torch.Tensor) – Input tensor to validate.

Returns

Validated input tensor, or unsqueezed at 0 dimension.

Return type

torch.Tensor

forward(self, x, y)
did.kernels.sq_dist(X1, X2)

Wrapper for torch.cdist with exponent 2.

\(\Vert X_1 - X_2\Vert^2_2\)

Parameters
  • X1 (torch.Tensor with size (n, d))

  • X2 (torch.Tensor with size (m, d))

Returns

Return type

torch.Tensor with size (n, m)

did.kernels.abel_kernel(X1, X2, a=1.0)

Kernel function for Abel kernel defined as:

\(k(x, y) = \exp(-a\Vert x - y\Vert_2)\).

Parameters
  • X1 (torch.Tensor with size (n, d))

  • X2 (torch.Tensor with size (m, d))

  • a (float, parameter)

Returns

Return type

torch.Tensor with size (n, m)

did.kernels.gaussian_kernel(X1, X2, sigma=1.0)

Kernel function for Gaussian kernel defined as:

\(k(x, y) = \exp\left(-\frac{\Vert x - y\Vert_2 ^2}{2 \sigma^2}\right)\).

Parameters
  • X1 (torch.Tensor with size (n, d))

  • X2 (torch.Tensor with size (m, d))

  • sigma (float, bandwidth parameter)

Returns

Return type

torch.Tensor with size (n, m)