Skip to content

Latest commit

 

History

History
68 lines (45 loc) · 2.04 KB

README.md

File metadata and controls

68 lines (45 loc) · 2.04 KB

Goal-Conditioned Supervised Learning (GCSL)

This repository provides an implementation of Goal-Conditioned Supervised Learning (GCSL), as proposed in Learning to Reach Goals via Iterated Supervised Learning The manuscript is available on arXiv

If you use this codebase, please cite

Dibya Ghosh, Abhishek Gupta, Justin Fu, Ashwin Reddy, Coline Devin, Benjamin Eysenbach, Sergey Levine. Learning to Reach Goals via Iterated Supervised Learning

Bibtex source is provided at the bottom of the Readme.

Setup

Conda

conda env create -f environment/environment.yml

Docker

docker pull dibyaghosh/gcsl:0.1

Example script

python experiments/gcsl_example.py

If you have, and would like to use, a GPU, you will need to additionally install a GPU-compiled version of PyTorch. To do so, simply run

pip uninstall torch && pip install torch==1.1.0

Development Notes

The directory structure currently looks like this:

  • gcsl (Contains all code)

    • envs (Contains all environment files and wrappers)
    • algo (Contains all GCSL code)
      • gcsl.py (implements high-level algorithm logic, e.g. data collection, policy update, evaluate, save data)
      • buffer.py (The replay buffer used to relabel and sample (s,g,a,h) tuples
      • networks.py (Implements neural network policies.)
      • variants.py (Contains relevant hyperparameters for GCSL)
  • experiments (Contains all launcher files)

  • doodad (We require this old version of doodad)

  • dependencies (Contains other libraries like rlkit, rlutil, room_world, multiworld, etc.)

  • data (Not synced by github, but this will contain all experiment logs)

Please file an issue if you have trouble running this code.

Bibtex

@article{Ghosh2019LearningTR,
title={Learning To Reach Goals Without Reinforcement Learning},
author={Dibya Ghosh and Abhishek Gupta and Justin Fu and Ashwin Reddy and Coline Devin and Benjamin Eysenbach and Sergey Levine},
journal={ArXiv},
year={2019},
volume={abs/1912.06088}
}