Giter Club home page Giter Club logo

nn_physical_concepts's Introduction

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.

Requires:

  • Python 2.7
  • numpy
  • matplotlib
  • tensorflow
  • tensorboard
  • tqdm
  • jupyter

Branches:

  • master: Implementation of beta-VAE [1] for reference. Includes an example in the /analysis folder 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:

  1. Clone the repository.
  2. Add the cloned directory nn_physical_concepts to your python path. See here for instructions for doing this in a virtual environment. Without a virtual environment, see here.
  3. Import from scinet import *. This includes the shortcuts nn to the model.py code and dl to the data_loader.py code.
  4. 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 tf_log directory.

Some documentation is available in the code. For further questions, please contact us directly.

[1] Higgins, I. et al. beta-VAE: "Learning Basic Visual Concepts with a Constrained Variational Framework", ICLR (2017).

nn_physical_concepts's People

Contributors

eth-nn-physics avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.