Neural Network Quantum State Tomography.
Project description
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 the Sz 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). The project is currently in beta. So, expect some rough edges, bugs, and backward incompatible updates.
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 varied to systematically control representation error.
Currently the reconstruction can be performed on pure states with either positive-definite or complex wavefunctions. In the case of a positive-definite wavefunction, data is only required in one basis. For complex wavefunctions, tomographically complete basis sets will be required to train the wavefunction.
Documentation
Documentation can be found here.
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.5 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 develop branch and then build from source like so:
git clone git@github.com:PIQuIL/QuCumber.git
cd ./QuCumber
git checkout develop
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.
Acknowledgments
-
Lauren Hayward Sierens for many helpful discussions.
-
Nick Mercer for creating our awesome logo. You can check out more of Nick's work by visiting his portfolio on Behance!
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 Distributions
Hashes for qucumber-0.3.0-cp37-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 680ae222f28b6fbfec901810c32f090fc9f671a7a8e1d07c7e469578251acf1c |
|
MD5 | babf86ec1f7e6b4eae3a6e8f8fc533eb |
|
BLAKE2b-256 | 2cf5c9964554161cb3ad95dd2759f7bf6708cd96a37899330ef64a0f04f2eb5f |
Hashes for qucumber-0.3.0-cp36-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 368f5b24fad6e0cc1d56814d7cc973aadd960157950b422dad3db829a2693cef |
|
MD5 | 4e702418297b28ee76603f76c292fdba |
|
BLAKE2b-256 | c92ed0c7f52f497785714a0a5808d3b1a98748386d331e7926ad5a46f24f0acc |
Hashes for qucumber-0.3.0-cp35-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7978db8cbf253c36ad9c83640dd4cbd8b7a819ff01907b5a523dec9373230e55 |
|
MD5 | 549a03a4854a5533ee2a9115af24ef39 |
|
BLAKE2b-256 | f23e7d8e2906be71ce0d88f5c9500232c62893d5e1d60f8783a3f820892de38f |