qml.kernels.square_kernel_matrix¶
- square_kernel_matrix(X, kernel, assume_normalized_kernel=False)[source]¶
Computes the square matrix of pairwise kernel values for a given dataset.
- Parameters
X (list[datapoint]) – List of datapoints
kernel ((datapoint, datapoint) -> float) – Kernel function that maps datapoints to kernel value.
assume_normalized_kernel (bool, optional) – Assume that the kernel is normalized, in which case the diagonal of the kernel matrix is set to 1, avoiding unnecessary computations.
- Returns
The square matrix of kernel values.
- Return type
array[float]
Example:
Consider a simple kernel function based on
AngleEmbedding
:dev = qml.device('default.qubit', wires=2) @qml.qnode(dev) def circuit(x1, x2): qml.templates.AngleEmbedding(x1, wires=dev.wires) qml.adjoint(qml.templates.AngleEmbedding)(x2, wires=dev.wires) return qml.probs(wires=dev.wires) kernel = lambda x1, x2: circuit(x1, x2)[0]
We can then compute the kernel matrix on a set of 4 (random) feature vectors
X
via>>> X = np.random.random((4, 2)) >>> qml.kernels.square_kernel_matrix(X, kernel) tensor([[1. , 0.9532702 , 0.96864001, 0.90932897], [0.9532702 , 1. , 0.99727485, 0.95685561], [0.96864001, 0.99727485, 1. , 0.96605621], [0.90932897, 0.95685561, 0.96605621, 1. ]], requires_grad=True)
code/api/pennylane.kernels.square_kernel_matrix
Download Python script
Download Notebook
View on GitHub