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
Xvia>>> rng = np.random.default_rng(seed=1234) >>> X = rng.random((4, 2)) >>> qml.kernels.square_kernel_matrix(X, kernel) array([[1. , 0.9957817 , 0.88043387, 0.87011008], [0.9957817 , 1. , 0.90680189, 0.88760331], [0.88043387, 0.90680189, 1. , 0.98850996], [0.87011008, 0.88760331, 0.98850996, 1. ]])
code/api/pennylane.kernels.square_kernel_matrix
Download Python script
Download Notebook
View on GitHub