Skip to content

"Quantum Evolution Kernel"

Installation

Using hatch, uv or any pyproject-compatible Python manager

Edit file pyproject.toml to add the line

  "quantum-evolution-kernel"

to the list of dependencies.

Using pip or pipx

To install the pipy package using pip or pipx

  1. Create a venv if that's not done yet
$ python -m venv venv
  1. Enter the venv
$ . venv/bin/activate
  1. Install the package
$ pip install quantum-evolution-kernel
# or
$ pipx install quantum-evolution-kernel

Usage

# Load a dataset
import torch_geometric.datasets as pyg_dataset
og_ptcfm = pyg_dataset.TUDataset(root="dataset", name="PTC_FM")

# Setup a quantum feature extractor for this dataset.
# In this example, we'll use QutipExtractor, to emulate a Quantum Device on our machine.
import qek.data.graphs as qek_graphs
import qek.data.extractors as qek_extractors
extractor = qek_extractors.QutipExtractor(compiler=qek_graphs.PTCFMCompiler())

# Add the graphs, compile them and look at the results.
extractor.add_graphs(graphs=og_ptcfm)
extractor.compile()
processed_dataset = extractor.run().processed_data

# Prepare a machine learning pipeline with Scikit Learn.
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC

X = [data for data in processed_dataset]  # Features
y = [data.target for data in processed_dataset]  # Targets
X_train, X_test, y_train, y_test = train_test_split(X, y, stratify = y, test_size=0.2, random_state=42)

# Train a kernel
from qek.kernel import QuantumEvolutionKernel as QEK
kernel = QEK(mu=0.5)
model = SVC(kernel=kernel, random_state=42)
model.fit(X_train, y_train)

Documentation

source package qek

The Quantum Evolution Kernel is a Python library designed for the machine learning community to help users design quantum-driven similarity metrics for graphs and to use them inside kernel-based machine learning algorithms for graph data.

The core of the library is focused on the development of a classification algorithm for molecular-graph dataset as it is presented in the published paper Quantum feature maps for graph machine learning on a neutral atom quantum processor.

Users setting their first steps into quantum computing will learn how to implement the core algorithm in a few simple steps and run it using the Pasqal Neutral Atom QPU. More experienced users will find this library to provide the right environment to explore new ideas - both in terms of methodologies and data domain - while always interacting with a simple and intuitive QPU interface.

Modules

  • qek.data Data manipulation utilities.

  • qek.kernel The Quantum Evolution Kernel itself, for use in a machine-learning pipeline.

  • qek.shared Shared utility code.

  • qek.backends Low-level tools to execute compiled registers and pulses onto Quantum Devices, including local emulators, remote emulators and physical QPUs.

Tutorials

We have a two parts tutorial:

  1. Using a Quantum Device to extract machine-learning features;
  2. Machine Learning with the Quantum Evolution Kernel

Getting in touch

Contribute

The GitHub repository is open for contributions!

Don't forget to read the Contributor License Agreement.