No project description provided
Project description
Qlearnkit python library
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 278ff72f3bfd1cd6852c71dd9b57710b6f7a09075f27e8a3067717021b7fec30 |
|
MD5 | 52a9a4af9348d6bacf0e89baae354458 |
|
BLAKE2b-256 | 820660e31a9e10dfc4be0679aba7087a40382cd4a4cb80c993408f2e9e64c709 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | e907d9093e63c07068bd146e41c77cf3c35dc169be388a566c87b04eeac4b294 |
|
MD5 | 9f707c4f018a70ea4114e12f5febd866 |
|
BLAKE2b-256 | fa22422c51738bb6b402126263240055e84aa416d27ad5da086fd72472e29d89 |