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.
-
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
- Built-in 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
- Built-in Hamiltonians
-
Variational Monte Carlo
- Stochastic Learning Methods for Ground-State Problems
- Gradient Descent
- Stochastic Reconfiguration Method
- Direct Solver
- Iterative Solver for Large Number of Parameters
- Stochastic Learning Methods for Ground-State Problems
-
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]
- Any Machine Satisfying Prototypes in
- Restricted Boltzmann Machines
-
Observables
- Custom Observables
- Any k-local Operator
- Custom Observables
-
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
- Local Metropolis Moves
-
Statistics
- Automatic Estimate of Correlation Times
-
Interface
- Python Library
- JSON output
Please visit our homepage for further information.