rodsveiga / rbm_flows_ising

Code for "Restricted Boltzmann Machine Flows and The Critical Temperature of Ising models"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Restricted Boltzmann Machine Flows and The Critical Temperature of Ising models

Description

Code for Restricted Boltzmann Machine Flows and The Critical Temperature of Ising models.

Paper link: arXiv:2006.10176

Prerequisites

Typically, Anaconda distribution for Python >= 3.6 is enough. If you choose to use tensorboardX visualization during Restricted Boltzmann Machine (RBM) training, it is necessary to install it with pip install tensorboardX.

Usage

The main discussion and the flows are presented in the notebooks:

  • main_discussion_L010.ipynb.
  • main_discussion_L100.ipynb.

Further analysis about learned weight matrices:

  • weight_analysis_L010.ipynb.
  • weight_analysis_L036.ipynb.
  • weight_analysis_L048.ipynb.
  • weight_analysis_L100.ipynb.
  • weight_analysis_comparing_L.ipynb.

Folders with data and saved trained models:

  • data: Monte Carlo (MC) samples for the Ising model in a square lattice.
  • NN_trained_models: trained neural network (NN) thermometers.
  • RBM_trained_models: trained RBMs.
  • RBM_flows: RBM flows.
  • runs: tensorboardX files if you choose tensorboard=True on rbm.py.
  • figures: saved plots.
  • weight_analysis: singular value and eigenvalue decompositions.

The classes for the MC sampling, the NN thermometer and the RBM are presented in the folder modules:

  • mc_ising2d.py
  • mc_ising2d_MF.py
  • net.py
  • rbm.py (for GPU computation: use_cuda=True)

NN and RBM training in the folders:

  • training_NN_thermometer
  • training_RBM

License

See LICENSE.

References

About

Code for "Restricted Boltzmann Machine Flows and The Critical Temperature of Ising models"

License:MIT License


Languages

Language:Jupyter Notebook 99.9%Language:Python 0.1%