A collection of State Representation Learning (SRL) methods for Reinforcement Learning, written using PyTorch.
SRL Zoo Documentation: https://srl-zoo.readthedocs.io/
S-RL Toolbox Documentation: https://s-rl-toolbox.readthedocs.io/
S-RL Toolbox Repository: https://github.com/araffin/robotics-rl-srl
Available methods:
Related papers:
Documentation is available online: https://srl-zoo.readthedocs.io/
Please read the documentation for more details, we provide anaconda env files and docker images.
To learn a state representation, you need to enforce constrains on the representation using one or more losses. For example, to train an autoencoder, you need to use a reconstruction loss. Most losses are not exclusive, that means you can combine them.
All losses are defined in losses/losses.py
. The available losses are:
[Experimental]
All possible arguments can be display using python train.py --help
. You can limit the training set size (--training-set-size
argument), change the minibatch size (-bs
), number of epochs (--epochs
), ...
Although the data can be generated easily using the RL repo in simulation (cf Generating Data), we provide datasets with a real baxter:
You can download an example dataset here.
Train an inverse model:
python train.py --data-folder data/path/to/dataset --losses inverse
Train an autoencoder:
python train.py --data-folder data/path/to/dataset --losses autoencoder
Combining an autoencoder with an inverse model is as easy as:
python train.py --data-folder data/path/to/dataset --losses autoencoder inverse
You can as well specify the weight of each loss:
python train.py --data-folder data/path/to/dataset --losses autoencoder:1 inverse:10
Please read the documentation for more examples.
Download the test datasets kuka_gym_test and kuka_gym_dual_test and put it in data/
folder.
./run_tests.sh
RuntimeError: cuda runtime error (2) : out of memory at /b/wheel/pytorch-src/torch/lib/THC/generic/THCStorage.cu:66
SOLUTION 1: Decrease the batch size, e.g. 32-64 in GPUs with little memory.
SOLUTION 2 Use simple 2-layers neural network model python train.py --data-folder data/staticButtonSimplest --model-type mlp