Skip to content
Machine learning algorithms for many-body quantum systems
Branch: master
Clone or download
Latest commit d3a6a36 Mar 19, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
CMakeModules Proposed (hacky) use of ExternalProject with pybind11 Nov 4, 2018
Docs fix python2 bug Feb 22, 2019
Examples Merge branch 'master' into fix_PypI Feb 22, 2019
External/ietl/ietl Remove redundant files Nov 4, 2018
NetKet fix python2 bug Feb 22, 2019
Test bug fix for adjacency test Feb 21, 2019
Tutorials Removing mpi4py from supervised.ipynb Mar 15, 2019
.gitignore Fix MPS machine integration and add its bindings Nov 10, 2018
CMakeLists.txt Revert accidental change to CMakeLists.txt Dec 19, 2018 Create May 21, 2018 Add more information on Atom plugin for clang-format Jul 9, 2018
LICENSE Add README to MANIFEST, change required numpy version Feb 22, 2019 Updating binder badge to point to a binder for the master branch of t… Mar 18, 2019
postBuild Adding postBuild file to run pip install after using conda to install… Feb 15, 2019
requirements.txt Add manifest and requirements to fix PipI shipping Feb 22, 2019

Release Build Status CodeFactor GitHub Issues License Binder


NetKet is an open-source project delivering cutting-edge methods for the study of many-body quantum systems with artificial neural networks and machine learning techniques. It is a Python library built on C++ primitives.

Major Features

  • Graphs

    • Built-in Graphs
      • Hypercube
      • General Lattice with arbitrary number of atoms per unit cell
    • Custom Graphs
      • Any Graph With Given Adjacency Matrix
      • Any Graph With Given Edges
    • Symmetries
      • Automorphisms: pre-computed in built-in graphs, available through iGraph for custom graphs
  • Quantum Operators

    • Built-in Hamiltonians
      • Transverse-field Ising
      • Heisenberg
      • Bose-Hubbard
    • Custom Operators
      • Any k-local Hamiltonian
      • General k-local Operator defined on Graphs
  • Variational Monte Carlo

    • Stochastic Learning Methods for Ground-State Problems
      • Gradient Descent
      • Stochastic Reconfiguration Method
        • Direct Solver
        • Iterative Solver for Large Number of Parameters
  • Exact Diagonalization

    • Full Solver
    • Lanczos Solver
    • Imaginary-Time Dynamics
  • Supervised Learning

    • Supervised overlap optimization from given data
  • Neural-Network Quantum State Tomography

    • Using arbitrary k-local measurement basis
  • Optimizers

    • Stochastic Gradient Descent
    • AdaMax, AdaDelta, AdaGrad, AMSGrad
    • RMSProp
    • Momentum
  • Machines

    • Restricted Boltzmann Machines
      • Standard
      • For Custom Local Hilbert Spaces
      • With Permutation Symmetry Using Graph Isomorphisms
    • Feed-Forward Networks
      • For Custom Local Hilbert Spaces
      • Fully connected layer
      • Convnet layer for arbitrary underlying graph
      • Any Layer Satisfying Prototypes in AbstractLayer [extending C++ code]
    • Jastrow States
      • Standard
      • With Permutation Symmetry Using Graph Isomorphisms
    • Matrix Product States
      • MPS
      • Periodic MPS
    • Custom Machines
      • Any Machine Satisfying Prototypes in AbstractMachine [extending C++ code]
  • Observables

    • Custom Observables
      • Any k-local Operator
  • Sampling

    • Local Metropolis Moves
      • Local Hilbert Space Sampling
    • Hamiltonian Moves
      • Automatic Moves with Hamiltonian Symmetry
    • Custom Sampling
      • Any k-local Stochastic Operator can be used to do Metropolis Sampling
    • Exact Sampler for small systems
  • Statistics

    • Automatic Estimate of Correlation Times
  • Interface

    • Python Library
    • JSON output

Installation and Usage

Please visit our homepage for further information.


Apache License 2.0

You can’t perform that action at this time.