• Stars
    star
    297
  • Rank 140,075 (Top 3 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created about 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

This repository contains the source code used to produce the results presented in the paper "Continuous-variable quantum neural networks". Due to subsequent interface upgrades, these scripts will work only with Strawberry Fields version <= 0.10.0.

Continuous-variable quantum neural networks

This repository contains the source code used to produce the results presented in "Continuous-variable quantum neural networks".


Requirements

To construct and optimize the variational quantum circuits, these scripts and notebooks use the TensorFlow backend of Strawberry Fields. In addition, matplotlib is required for generating output plots.

Due to subsequent interface upgrades, these scripts will work only with the following configuration

  • Strawberry Fields version 0.10.0
  • TensorFlow version 1.3
  • Python version 3.5 or 3.6

Your version of Python can be checked by running python --version. The correct versions of StrawberryFields and TensorFlow can be installed by running pip install -r requirements.txt from the main directory of this repository.

Contents

  • Function fitting: The folder function_fitting contains the Python script function_fitting.py, which automates the process of fitting classical functions using continuous-variable (CV) variational quantum circuits. Simply specify the function you would like to fit, along with other hyperparameters, and this script automatically constructs and optimizes the CV quantum neural network. In addition, training data is also provided.

  • Quantum autoencoder: coming soon.

  • Quantum fraud detection: The folder fraud_detection contains the Python script fraud_detection.py, which builds and trains a hybrid classical/quantum model for fraud detection. Additional scripts are provided for visualizing the results.

  • Tetrominos learning: The folder tetrominos_learning contains the Python script tetrominos_learning.py, which trains a continuous-variable (CV) quantum neural network. The task of the network is to encode 7 different 4X4 images, representing the (L,O,T,I,S,J,Z) tetrominos, in the photon number distribution of two light modes. Once the training phase is completed, the script plot_images.py can be executed in order to generate a .png figure representing the final results.

Using the scripts

To use the scripts, simply set the input data, output data, and hyperparametersby modifying the scripts directly - and then enter the subdirectory and run the script using Python 3:

python3 script_name.py

The outputs of the simulations will be saved in the subdirectory.

To access any saved data, the file can be loaded using NumPy:

results = np.load('simulation_results.npz')

Authors

Nathan Killoran, Thomas R. Bromley, Juan Miguel Arrazola, Maria Schuld, Nicolás Quesada, and Seth Lloyd.

If you are doing any research using this source code and Strawberry Fields, please cite the following two papers:

Nathan Killoran, Thomas R. Bromley, Juan Miguel Arrazola, Maria Schuld, Nicolás Quesada, and Seth Lloyd. Continuous-variable quantum neural networks. Physical Review Research, 1(3), 033063 (2019).

Nathan Killoran, Josh Izaac, Nicolás Quesada, Ville Bergholm, Matthew Amy, and Christian Weedbrook. Strawberry Fields: A Software Platform for Photonic Quantum Computing. arXiv, 2018. Quantum, 3, 129 (2019).

License

This source code is free and open source, released under the Apache License, Version 2.0.

More Repositories

1

strawberryfields

Strawberry Fields is a full-stack Python library for designing, simulating, and optimizing continuous variable (CV) quantum optical circuits.
Python
749
star
2

QHack2021

Official repo for QHack—the quantum machine learning hackathon
Python
121
star
3

quantum-learning

This repository contains the source code used to produce the results presented in the paper "Machine learning method for state preparation and gate synthesis on photonic quantum computers".
Jupyter Notebook
113
star
4

Xanadu-Quantum-Codebook

Learn quantum computing interactively with PennyLane
Python
111
star
5

QMLT

The Quantum Machine Learning Toolbox (QMLT) is a Strawberry Fields application that simplifies the optimization of variational quantum circuits (also known as parametrized quantum circuits).
Python
110
star
6

thewalrus

A library for the calculation of hafnians, Hermite polynomials and Gaussian boson sampling.
Python
101
star
7

quantum-inspired-algorithms

Quantum-inspired algorithms for linear algebra applications. The repository contains all source code used to generate results presented in "Practical performance of quantum-inspired algorithms for linear algebra".
Python
97
star
8

QHack2022

QHack—The one-of-a-kind quantum computing hackathon
Python
87
star
9

MrMustard

A differentiable bridge between phase space and Fock space
Python
78
star
10

quantum-transfer-learning

A transfer learning approach applied to hybrid neural networks composed of classical and quantum elements.
Jupyter Notebook
70
star
11

QHack2023

QHack 2023
69
star
12

blackbird

Blackbird is a quantum assembly language for continuous-variable quantum computation, that can be used to program Xanadu's quantum photonics hardware and Strawberry Fields simulator.
C++
67
star
13

GradDFT

GradDFT is a JAX-based library enabling the differentiable design and experimentation of exchange-correlation functionals using machine learning techniques.
Python
65
star
14

jet

Jet is a cross-platform library for simulating quantum circuits using tensor network contractions.
C++
59
star
15

qml-benchmarks

Code to benchmark quantum machine learning models
Python
49
star
16

pennylane-demo-cern

Contains material for the PennyLane tutorial at CERN on 3/4 February 2021.
Jupyter Notebook
46
star
17

expressive_power_of_quantum_models

This repository contains the source code necessary to reproduce the figures and simulation results of the url[paper](XXX) "The effect of data encoding on the expressive power of variational quantum machine learning models" by Maria Schuld, Ryan Sweke and Johannes Jakob Meyer.
Jupyter Notebook
44
star
18

flamingpy

FlamingPy is a cross-platform Python library with a variety of backends for efficient simulations of error correction in fault-tolerant quantum computers.
Python
44
star
19

qhack_2023_coding_challenges

Jupyter Notebook
35
star
20

SFOpenBoson

A plugin for Strawberry Fields and OpenFermion, providing methods of simulating bosonic Hamiltonians directly in Strawberry Fields
Python
30
star
21

QHack-2019

QHACK: The Quantum Machine Learning Hackathon
28
star
22

constrained-quantum-learning

This repository contains the source code used to produce the results presented in the paper "Near-deterministic production of universal quantum photonic gates enhanced by machine learning".
Python
19
star
23

realistic-quantum-states

This repository contains the source code used to produce the results presented in the paper "Simulating realistic non-Gaussian state preparation".
Python
13
star
24

xanadu-cloud-client

CLI and Python API for the Xanadu Cloud.
Python
12
star
25

fockgaussian

This repository contains the source code used to produce the results presented in " Franck-Condon factors by counting perfect matchings of graphs with loops " J. Chem. Phys. 150, 164113 (2019).
Jupyter Notebook
10
star
26

approximate-GKP-prep

This repository contains the source code used to produce the results presented in the paper "Progress towards practical qubit computation using approximate Gottesman-Kitaev-Preskill codes".
Jupyter Notebook
10
star
27

derivatives-of-variational-circuits

Jupyter Notebook
9
star
28

torontonian-sampling

This repository contains the source code used to produce the results presented in the paper "Classical benchmarking of Gaussian Boson Sampling on the Titan supercomputer".
Fortran
9
star
29

randomized-measurements-circuit-cutting

Jupyter Notebook
8
star
30

xanadu-qca-data

Python
8
star
31

sqtom

Tomography of squeezed modes
Python
6
star
32

pennylane-plugin-template

This template repository provides the boilerplate and file structure required to easily create your own PennyLane plugin.
Python
6
star
33

Contextual-ML

Jupyter Notebook
5
star
34

xir

XIR is an intermediate representation language for quantum circuits.
Python
5
star
35

PLC-YouTube-tutorials

This repository houses code that was used in our YouTube videos.
Jupyter Notebook
4
star
36

xanadu-sphinx-theme

The Xanadu Sphinx Theme is a Sphinx theme used for open-source Xanadu software projects.
HTML
4
star
37

hva-without-barren-plateaus

Repositoy for "Hamiltonian variational ansatz without barren plateaus"
C++
4
star
38

cloud-workshops

Materials for Xanadu's Quantum Cloud workshops
Jupyter Notebook
3
star
39

generative_qml_qchem

Repository for the generative QML for quantum chemistry project
Python
3
star
40

kerr-squeezing

Python
3
star
41

PLC-borealis-demos

Borealis demos for PennyLane Cloud
Jupyter Notebook
2
star
42

polyval2d-high-precision

CMake
2
star
43

cloud-actions

A repository of reusable GitHub actions for cloud workflows
JavaScript
2
star
44

plaas-examples

Examples PLAAS notebooks
Jupyter Notebook
1
star
45

github_test

A test repository for GitHub options.
1
star
46

plotters-solstice

A web and opengl backend for Plotters using Solstice.
Rust
1
star
47

all-you-need-is-spin

Python
1
star
48

pseudopotentials

Python
1
star
49

CFQMagnus

Numerical analysis of the Magnus Hamiltonian simulation technique
Python
1
star
50

Analytic_Pulse_Gradients

Code supporting arXiv:XXXX.XXXX "Exact gradients of pulse programs on quantum computers"
Jupyter Notebook
1
star
51

Fourier-sampling

Notes on Fourier sampling and the hidden subgroup problem.
HTML
1
star