/tensorflow-value-iteration-networks

TensorFlow implementation of the Value Iteration Networks (NIPS '16) paper

Primary LanguagePython

Value Iteration Networks in TensorFlow

Tamar, A., Wu, Y., Thomas, G., Levine, S., and Abbeel, P. Value Iteration Networks. Neural Information Processing Systems (NIPS) 2016

This repository contains an implementation of Value Iteration Networks in TensorFlow which won the Best Paper Award at NIPS 2016. This code is based on the original Theano implementation by the authors.

Value Iteration Network and Module

Training

  • Download the 16x16 and 28x28 GridWorld datasets from the author's repository. This repository contains the 8x8 GridWorld dataset for convenience and its small size.
# Runs the 8x8 Gridworld with default parameters
python3 train.py

If you want to monitor training progress change config.log to True and launch tensorboard --logdir /tmp/vintf/. The log directory is /tmp/vintf/ by default, but can be changed in config.logdir. The code currently runs the 8x8 GridWorld model by default.

The 8x8 GridWorld model converges in under 30 epochs with about ~98.5% accuracy. The paper lists that it should be around 99.6% and I was able to reproduce this with the Theano code. Results for 16x16 and 28x28 can be seen here

Dependencies

  • Python >= 3.6
  • TensorFlow >= 1.0
  • SciPy >= 0.18.1 (to load the data)

Datasets

  • The GridWorld dataset used is from the author's repository. It also contains Matlab scripts to generate the dataset. The code to process the dataset is from the original repository with minor modifications under this license
  • The model was also originally tested on three other domains and the author's original code will be released eventually
    • Mars Rover Navigation
    • Continuous control
    • WebNav

Resources