This repository contains two main components.
-
adacurv/torch
: this module contains PyTorch code for the adaptive NGD methods we study along with utilities for Fisher-vector products, CG optimization, Lanczos iteration, and line search. -
experiments
: this subdirectory contains the code used to run the experiments in the paper.mnist
andsvhn
: code used for the supervised training experiments.mjrl
: code adapted from an existing MuJoCo RL library, MJRL, to accommodate PyBullet and our new optimizers.
These experiments all contain a
run.py
file which was used to launch our experiments. See below for a quick-start script.
- Clone this package
git clone https://github.com/tpbarron/adacurv.git
. - Add the path to this folder to your python path
export PYTHONPATH=$PYTHONPATH:/path/to/adacurv/
. - Install python dependencies
pip install -r requirements.txt
.
The majority of the dependencies can be installed using the requirements file.
The code has been run using python3.[5,6]
and has not been tested with python2
.
For a faster start we include a quick_start.py
file in each of the mnist
and mjrl
experiment directories that runs a single sample experiment.
Once this has finished the data can be plotted with the plot_quick_start.py
script.