/rewardpredictive

Primary LanguageJupyter NotebookMIT LicenseMIT

License: MIT Python 3.7 pytest

Reward-Predictive State Representations Generalize Across Task

This repository contains the implementations to reproduce the simulation results of Lehnert et al. 2020. Please view the individual jupyter notebook files for instructions on how to reproduce all results.

Datasets and Reproduction With Docker

This repository and all data generated by the implemented simulations can also be downloaded as a Docker container form Docker Hub. This Docker container also contains all software needed to run the notebooks and implemented experiments. Note that the container has a size of 12.9GB.

To use the container, first install Docker Desktop on your computer and then download the container:

docker pull lucasdocker/rewardpredictive

The container can be run with

docker run -it -p 8888:8888 lucasdocker/rewardpredictive:latest

Then point your browser to localhost:8888 to access the jupyter notebook server. The Docker container can also be used to reproduce each simulation by running

docker run -it lucasdocker/rewardpredictive:latest python -m main -e [ExperimentName]

The included simulation data can be extracted by running

docker cp [CONTAINER]:/workdir/rewardpredictive/data [DEST_PATH]

where [CONTAINER] is the container ID of the downloaded container and [DEST_PATH] is the path location where the data will be copied on the host.

Installation and Running Code

To run the jupyter notebooks and reproduce the simulations, first clone the repository, create a python 3.7 virtual environment, and install the required dependencies:

git clone https://github.com/lucaslehnert/rewardpredictive.git
cd rewardpredictive
pip install -r requirements.txt

The jupyter notebooks can be viewed by running

jupyter notebook

from the project's root directory (the directory this README file is stored in). All simulations can be reproduced by running the main script from the root directory:

python -m main -e [ExperimentName]