Skip to main content

No project description provided

Project description

Qlearnkit python library

Python Versions License Build Upload Python Package PypI Versions

Qlearnkit is a simple python library implementing some fundamental Machine Learning models and algorithms for a gated quantum computer, built on top of Qiskit and, optionally, Pennylane.

Installation

We recommend installing qlearnkit with pip

pip install qlearnkit

Note: pip will install the latest stable qlearnkit. However, the main branch of qlearnkit is in active development. If you want to test the latest scripts or functions please refer to development notes.

Optional Install

Via pip, you can install qlearnkit with the optional extension packages dependent on pennylane. To do so, run

pip install qlearnkit['pennylane']

Docker Image

You can also use qlearnkit via Docker building the image from the provided Dockerfile

docker build -t qlearnkit -f docker/Dockerfile .

then you can use it like this

docker run -it --rm -v $PWD:/tmp -w /tmp qlearnkit python ./script.py

Getting started with Qlearnkit

Now that Qlearnkit is installed, it's time to begin working with the Machine Learning module. Let's try an experiment using the QKNN Classifier algorithm to train and test samples from a data set to see how accurately the test set can be classified.

from qlearnkit.algorithms import QKNeighborsClassifier
from qlearnkit.encodings import AmplitudeEncoding
from qiskit import BasicAer
from qiskit.utils import QuantumInstance, algorithm_globals

from qlearnkit.datasets import load_iris

seed = 42
algorithm_globals.random_seed = seed

train_size = 32
test_size = 8
n_features = 4  # all features

# Use iris data set for training and test data
X_train, X_test, y_train, y_test = load_iris(train_size, test_size, n_features)

quantum_instance = QuantumInstance(BasicAer.get_backend('qasm_simulator'),
                                   shots=1024,
                                   optimization_level=1,
                                   seed_simulator=seed,
                                   seed_transpiler=seed)

encoding_map = AmplitudeEncoding(n_features=n_features)

qknn = QKNeighborsClassifier(
    n_neighbors=3,
    quantum_instance=quantum_instance,
    encoding_map=encoding_map
)

qknn.fit(X_train, y_train)

print(f"Testing accuracy: "
      f"{qknn.score(X_test, y_test):0.2f}")

Documentation

The documentation is available here.

Alternatively, you can build and browse it locally as follows:

first make sure to have pandoc installed

sudo apt install pandoc

then run

make doc

then simply open docs/_build/index.html with your favourite browser, e.g.

brave docs/_build/index.html

Development notes

After cloning this repository, create a virtual environment

python3 -m venv .venv

and activate it

source .venv/bin/activate

now you can install the requirements

pip install -r requirements-dev.txt

now run the tests

make test

Make sure to run

pre-commit install

to set up the git hook scripts. Now pre-commit will run automatically on git commit!

Acknowledgments

The Quantum LSTM model is adapted from this article from Riccardio Di Sipio, but the Quantum part has been changed entirely according to the architecture described in this paper.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qlearnkit-0.2.0.tar.gz (297.3 kB view details)

Uploaded Source

Built Distribution

qlearnkit-0.2.0-py3-none-any.whl (43.9 kB view details)

Uploaded Python 3

File details

Details for the file qlearnkit-0.2.0.tar.gz.

File metadata

  • Download URL: qlearnkit-0.2.0.tar.gz
  • Upload date:
  • Size: 297.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for qlearnkit-0.2.0.tar.gz
Algorithm Hash digest
SHA256 278ff72f3bfd1cd6852c71dd9b57710b6f7a09075f27e8a3067717021b7fec30
MD5 52a9a4af9348d6bacf0e89baae354458
BLAKE2b-256 820660e31a9e10dfc4be0679aba7087a40382cd4a4cb80c993408f2e9e64c709

See more details on using hashes here.

File details

Details for the file qlearnkit-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: qlearnkit-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 43.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for qlearnkit-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e907d9093e63c07068bd146e41c77cf3c35dc169be388a566c87b04eeac4b294
MD5 9f707c4f018a70ea4114e12f5febd866
BLAKE2b-256 fa22422c51738bb6b402126263240055e84aa416d27ad5da086fd72472e29d89

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page