Skip to main content

Neural Network Quantum State Tomography.

Project description

QuCumber

PyPI Version Python Versions Documentation Status Build Status (Travis) Build Status (AppVeyor) codecov Code style: black arXiv scipost

A Quantum Calculator Used for Many-body Eigenstate Reconstruction

QuCumber is a program that reconstructs an unknown quantum wavefunction from a set of measurements. The measurements should consist of binary counts; for example, the occupation of an atomic orbital, or angular momentum eigenvalue of a qubit. These measurements form a training set, which is used to train a stochastic neural network called a Restricted Boltzmann Machine. Once trained, the neural network is a reconstructed representation of the unknown wavefunction underlying the measurement data. It can be used for generative modelling, i.e. producing new instances of measurements, and to calculate estimators not contained in the original data set.

QuCumber is developed by the Perimeter Institute Quantum Intelligence Lab (PIQuIL).

Features

QuCumber implements unsupervised generative modelling with a two-layer RBM. Each layer is a number of binary stochastic variables (with values 0 or 1). The size of the visible layer corresponds to the input data, i.e. the number of qubits. The size of the hidden layer is a hyperparameter, varied to systematically control representation error.

Currently, quantum state reconstruction/tomography can be performed on both pure and mixed states. Pure state reconstruction can be further broken down into positive or complex wavefunction reconstruction. In the case of a positive wavefunction, data is only required in one basis. For complex wavefunctions as well as mixed states, measurement data in additional bases will be required to train the state.

Documentation

Documentation can be found here.

See "QuCumber: wavefunction reconstruction with neural networks" https://scipost.org/SciPostPhys.7.1.009

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Installing

If you're on Windows, you will have to install PyTorch manually; instructions can be found on their website: pytorch.org.

You can install the latest stable version of QuCumber, along with its dependencies, using pip:

pip install qucumber

If, for some reason, pip fails to install PyTorch, you can find installation instructions on their website. Once that's done you should be able to install QuCumber through pip as above.

QuCumber supports Python 3.6 and newer stable versions.

Installing the bleeding-edge version

If you'd like to install the most upto date, but potentially unstable version, you can clone the repository's master branch and then build from source like so:

git clone git@github.com:PIQuIL/QuCumber.git
cd ./QuCumber
python setup.py install

Contributing

Please read CONTRIBUTING.md for details on how to contribute to the project, and the process for submitting pull requests to us.

License

QuCumber is licensed under the Apache License Version 2.0, this includes almost all files in this repo. However, some miscellaneous files may be licensed differently. See LICENSE for more details.

Citation

@Article{10.21468/SciPostPhys.7.1.009,
    title={{QuCumber: wavefunction reconstruction with neural networks}},
    author={Matthew J. S. Beach and Isaac De Vlugt and Anna Golubeva and Patrick Huembeli and Bohdan Kulchytskyy and Xiuzhe Luo and Roger G. Melko and Ejaaz Merali and Giacomo Torlai},
    journal={SciPost Phys.},
    volume={7},
    issue={1},
    pages={9},
    year={2019},
    publisher={SciPost},
    doi={10.21468/SciPostPhys.7.1.009},
    url={https://scipost.org/10.21468/SciPostPhys.7.1.009},
}

Acknowledgments

  • We thank M. Albergo, G. Carleo, J. Carrasquilla, D. Sehayek, and L. Hayward Sierens for many helpful discussions.

  • We thank the Perimeter Institute for the continuing support of PIQuIL.

  • Thanks to Nick Mercer for creating our awesome logo. You can check out more of Nick's work by visiting his portfolio on Behance!

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

qucumber-1.3.3.tar.gz (58.1 kB view details)

Uploaded Source

Built Distribution

qucumber-1.3.3-py3-none-any.whl (74.9 kB view details)

Uploaded Python 3

File details

Details for the file qucumber-1.3.3.tar.gz.

File metadata

  • Download URL: qucumber-1.3.3.tar.gz
  • Upload date:
  • Size: 58.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.16

File hashes

Hashes for qucumber-1.3.3.tar.gz
Algorithm Hash digest
SHA256 2941d609a90637a85ff938800667a1f6254bbfb1154c72682a6384d48a154a26
MD5 558142321b885b0c4ab5d421a0b4b04f
BLAKE2b-256 3c4509466a85566b6b0f7b2daa58efba55402e659c9617e2418bb6b15ba573ce

See more details on using hashes here.

File details

Details for the file qucumber-1.3.3-py3-none-any.whl.

File metadata

  • Download URL: qucumber-1.3.3-py3-none-any.whl
  • Upload date:
  • Size: 74.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.16

File hashes

Hashes for qucumber-1.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6af7e482e44b22ad7ec1f4281d8c4edfa4a186d5576a1d8a0dde37e1fea71dc2
MD5 7a1ce01e5204fccc108cbe5042a23bbe
BLAKE2b-256 11f95876c86a0db5f4ee30752c5cbc9f15d9e94797902b8dd6469130ca11be2d

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