cov_kernel#

hypercoil.functional.kernel.cov_kernel(X0: Tensor, X1: Tensor | None = None, theta: Tensor | None = None, l2: float = 0) Tensor[source]#

Parameterised covariance kernel between input tensors.

A thin wrapper around the pairedcov() function.

Dimension:
X0 : \((*, N, P)\) or \((N, P, *)\)

N denotes number of observations, P denotes number of features, * denotes any number of additional dimensions. If the input is dense, then the last dimensions should be N and P; if it is sparse, then the first dimensions should be N and P.

X1 : \((*, M, P)\) or \((M, P, *)\)

M denotes number of observations.

theta : \((*, P, P)\) or \((*, P)\)

As above.

Output : \((*, M, N)\) or \((M, N, *)\)

As above.

Parameters:
X0tensor

A feature tensor.

X1tensor or None

Second feature tensor. If not explicitly provided, the kernel of X with itself is computed.

thetatensor or None

Kernel parameter (generally a representation of a positive definite matrix). If not provided, defaults to identity (an unparameterised kernel). If the last two dimensions are the same size, they are used as a matrix parameter; if they are not, the final axis is instead used as the diagonal of the matrix.

Returns:
tensor

Kernel Gram matrix.