Skip to content

FlyingGiraffe/dhn

Repository files navigation

Denoising Hamiltonian Network for Physical Reasoning

Created by Congyue Deng, Brandon Y. Feng, Cecilia Garraffo, Alan Garbarz, Robin Walters, William T. Freeman, Leonidas Guibas, and Kaiming He

Paper | Project


This repository provides a simple implementation of DHN to help you get started quickly. For the full code for all experiments in the paper, check out this repo.

Data Preparation

Download the data from Google Drive and upzip it to the folder data into the following format:

data/
 ├── single_pendulum/
 │     ├── train/
 │     └── test
 └── double_pendulum/
       ├── train/
       └── test

You can also generate the data yourself by running

bash scripts/data_gen_train.sh
bash scripts/data_gen_test.sh

Change the variable DATA_NAME to generate simulated data for different physical systems (single_pendulum or double_pendulum).

Experiments

Change the variable EXP_NAME in the scripts to run with different config files. All experimental results, including logs and checkpoints, will be under the directory results/${EXP_NAME}.

Forward Simulation

Fitting known trajectories
Step 1: Run train.sh.
Step 2: Run generate.sh.
The generated sequences will be in a subfolder named gen_sequence.

Completion on novel trajectories
Step 1: Run train.sh.
Step 2: Run extract_partial.sh.
Step 3: Run generate_partial.sh.
The generated sequences will be in a subfolder named extract/gen_sequence.

License

MIT License

About

Denoising Hamiltonian Network for Physical Reasoning

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors