Code Monkey home page Code Monkey logo

quask's Introduction

QuASK Made at CERN! Made at CERN! Made at CERN!

Quantum Advantage Seeker with Kernel

QuASK is a quantum machine learning software written in Python that supports researchers in designing, experimenting, and assessing different quantum and classic kernels performance. This software is package agnostic and can be integrated with all major quantum software packages (e.g. IBM Qiskit, Xanadu’s Pennylane, Amazon Braket).

QuASK guides the user through a simple preprocessing of input data, definition and calculation of quantum and classic kernels, either custom or pre-defined ones. From this evaluation the package provide an assessment about potential quantum advantage and prediction bounds on generalization error.

Beyond theoretical framing, it allows for the generation of parametric quantum kernels that can be trained using gradient-descent-based optimization, grid search, or genetic algorithms. Projected quantum kernels, an effective solution to mitigate the curse of dimensionality induced by the exponential scaling dimension of large Hilbert spaces, is also calculated. QuASK can also generate the observable values of a quantum model and use them to study the prediction capabilities of the quantum and classical kernels.

The initial release is accompanied by the journal article "QuASK - Quantum Advantage Seeker with Kernels" available on arxiv.org.

Installation

The software has been tested on Python 3.9.10. We recommend using this version or a newer one.

You can install the software directly from the repository using the command:

python3 -m pip install https://github.com/CERN-IT-INNOVATION/QuASK/releases/download/1.0.0-beta/quask-1.0.0b0-py3-none-any.whl

If the software shows dependencies related problems, download the repository and from the main directory run the command:

python3 -m pip install -r requirements.txt

Usage

Use quask as a library of software components

QuASK can be used as a library to extend your own software. Check if everything's working with:

import numpy as np
import quask.metrics
A = np.array([[1,2], [3,4]])
B = np.array([[5,6], [7,8]])
print(quask.metrics.calculate_frobenius_inner_product(A, B))  # 70

Use quask as a command-line interface tool

QuASK can be used as a command-line interface to analyze the dataset with the kernel methods. These are the commands implemented so far.

To retrieve the datasets available:

$ python3.9 -m quask get-dataset

To preprocess a dataset:

$ python3.9 -m quask preprocess-dataset

To analyze a dataset using quantum and classical kernels:

$ python3.9 -m quask apply-kernel

To create some plot of the property related to the generated Gram matrices:

$ python3.9 -m quask plot-metric --metric accuracy --train-gram training_linear_kernel.npy --train-y Y_train.npy --test-gram testing_linear_kernel.npy --test-y Y_test.npy --label linear

Credits

Please cite the work using the following Bibtex entry:

@article{https://doi.org/10.48550/arxiv.2206.15284,
  doi = {10.48550/ARXIV.2206.15284},
  url = {https://arxiv.org/abs/2206.15284},
  author = {Di Marcantonio, Francesco and Incudini, Massimiliano and Tezza, Davide and Grossi, Michele},
  keywords = {Quantum Physics (quant-ph), Machine Learning (cs.LG), FOS: Physical sciences, FOS: Physical sciences, FOS: Computer and information sciences, FOS: Computer and information sciences},
  title = {QuASK -- Quantum Advantage Seeker with Kernels},
  publisher = {arXiv},
  year = {2022},
  copyright = {Creative Commons Attribution 4.0 International}
}

quask's People

Contributors

fradm98 avatar grossim avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.