Discovering physical concepts with neural networks
Code for: R. Iten, T. Metger, H.Wilming, L. del Rio, and R. Renner. "Discovering physical concepts with neural networks", arXiv:1807.10300 (2018).
This repository contains the trained Tensorflow models used in the paper as well as code to load, train and analyze them.
- Python 2.7
master: Implementation of beta-VAE  for reference. Includes an example in the
/analysisfolder that shows how to set up and train a network.
pendulum: SciNet finds correct physical parameters describing a damped pendulum.
angular_momentum: SciNet finds and exploits angular momentum conservation to make predictions.
qubit: SciNet recovers correct number of parameters describing quantum states.
copernicus: SciNet discovers heliocentric model of the solar system.
To use the code:
- Clone the repository.
- Add the cloned directory
nn_physical_conceptsto your python path. See here for instructions for doing this in a virtual environment. Without a virtual environment, see here.
from scinet import *. This includes the shortcuts
- Import additional files (e.g. data generation scripts) using
import scinet.my_data_generator as my_data_gen_name.
Generated data files are stored in the
data directory. Saved models are stored in the
tf_save directory. Tensorboard logs are stored in the
Some documentation is available in the code. For further questions, please contact us directly.
 Higgins, I. et al. beta-VAE: "Learning Basic Visual Concepts with a Constrained Variational Framework", ICLR (2017).