All Projects → HUJI-Deep → FlowKet

HUJI-Deep / FlowKet

Licence: MIT License
A framework based on Tensorflow for running variational Monte-Carlo simulations of quantum many-body systems.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to FlowKet

GatedPixelCNNPyTorch
PyTorch implementation of "Conditional Image Generation with PixelCNN Decoders" by van den Oord et al. 2016
Stars: ✭ 68 (+88.89%)
Mutual labels:  pixelcnn, autoregressive
VQ-VAE withPixelCNNprior
Implementation of Vector Quantised VAE (VQ-VAE) with PixelCNN prior in Tensorflow.
Stars: ✭ 26 (-27.78%)
Mutual labels:  pixelcnn
Autoregressive-models
Tensorflow 2.0 implementation of Deep Autoregressive Models
Stars: ✭ 18 (-50%)
Mutual labels:  pixelcnn
stat-mech-van
Code for 'Solving Statistical Mechanics using Variational Autoregressive Networks'.
Stars: ✭ 73 (+102.78%)
Mutual labels:  variational-monte-carlo
ARFIMA.jl
Simulate stochastic timeseries that follow ARFIMA, ARMA, ARIMA, AR, etc. processes
Stars: ✭ 44 (+22.22%)
Mutual labels:  autoregressive
pixel-models
Pytorch implementations of the PixelCNN (va Oord et al. 2016) and PixelVAE (Gulrajani et al. 2016) models
Stars: ✭ 27 (-25%)
Mutual labels:  pixelcnn
admc
Infinite order automatic differentiation for Monte Carlo with unnormalized probability distribution
Stars: ✭ 17 (-52.78%)
Mutual labels:  variational-monte-carlo
PixelCNN
PyTorch implementation of gated PixelCNN
Stars: ✭ 28 (-22.22%)
Mutual labels:  pixelcnn
Comprehensive-Tacotron2
PyTorch Implementation of Google's Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions. This implementation supports both single-, multi-speaker TTS and several techniques to enforce the robustness and efficiency of the model.
Stars: ✭ 22 (-38.89%)
Mutual labels:  autoregressive

FlowKet - A Python framework for variational Monte-Carlo simulations on top of Tensorflow

FlowKet is our framework for running variational Monte-Carlo simulations of quantum many-body systems. It supports any Keras model for representing a parameterized unnormalized wave-function, e.g., Restricted Boltzman Machines and ConvNets, with real or complex-valued parameters. We have implemented a standard Markov-Chain Monte-Carlo (MCMC) energy gradient estimator for this general case, which can be used to approximate the ground state of a quantum system according to a given Hamiltonian. The neural-network-based approach for representing wave-fucntions was shown to be a promising method for solving the many-body problem, often matching or even surpassing the precision of other competing methods.

In addition to an MCMC energy gradient estimator, we have also implemented our novel Neural Autoregressive Quantum State wave-function representation that supports efficient and exact sampling. By overcoming the reliance on MCMC, our models can converge much faster for models of same size, which allows us to scale them to millions of parameters, as opposed to just a few thousands for prior approaches. This leads to better precison and ability to invesitgate larger and more intricated systems. Please read our paper (arXiv version), cited below, for further details on this approach. We hope that users of our library will be able to take our method and apply to a variety of problems. If you use this codebase or apply our method, we would appreciate if you cite us as follows:

@article{PhysRevLett.124.020503,
  title = {Deep Autoregressive Models for the Efficient Variational Simulation of Many-Body Quantum Systems},
  author = {Sharir, Or and Levine, Yoav and Wies, Noam and Carleo, Giuseppe and Shashua, Amnon},
  journal = {Phys. Rev. Lett.},
  volume = {124},
  issue = {2},
  pages = {020503},
  numpages = {6},
  year = {2020},
  month = {Jan},
  publisher = {American Physical Society},
  doi = {10.1103/PhysRevLett.124.020503},
  url = {https://link.aps.org/doi/10.1103/PhysRevLett.124.020503}
}

Installation

FlowKet assumes Tensorflow is already part of the enviornment. We currently support Tensorflow 1.10-1.14, but plan to extend support to all >=1.10+ and 2.0.

The recommended way to intall FlowKet is via PyPI:

pip install flowket

Alternatively if you wish to work on extending our library, you can clone our project and instead run:

pip install -e /path/to/local/repo

Basic Tutorial

While we are working on writing a proper tutorial on using the framework, we suggest going through the example files.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].