2020-02-08 17:26:22 -08:00
2020-02-08 16:48:30 -08:00
2020-02-08 16:38:51 -08:00
2020-02-08 16:36:30 -08:00
2020-02-08 16:48:30 -08:00
2020-02-08 16:36:30 -08:00
2020-02-08 16:48:30 -08:00
2020-02-08 17:26:22 -08:00
2020-02-08 17:26:22 -08:00
2020-02-08 16:36:30 -08:00
2020-02-08 16:36:30 -08:00
2020-02-08 16:36:30 -08:00

CURL: Contrastive Unsupervised Representation Learning for Sample-Efficient Reinforcement Learning

Instructions

To train a CURL agent on the cartpole swingup task from image-based observations run bash script/run.sh from the root of this directory. The run.sh file contains the following command, which you can modify to try different environments / hyperparamters.

CUDA_VISIBLE_DEVICES=0 python train.py \
    --domain_name cartpole \
    --task_name swingup \
    --encoder_type pixel \
    --action_repeat 8 \
    --save_tb --pre_transform_image_size 100 --image_size 84 \
    --work_dir ./tmp \
    --agent curl_sac --frame_stack 3 \
    --seed -1 --critic_lr 1e-3 --actor_lr 1e-3 --eval_freq 10000 --batch_size 128 --num_train_steps 1000000 

This will store data related to the run in the specified working_dir. To enable model or video saving, use the --save_model or --save_video flags. For all available flags, inspect train.py. To visualize progress with tensorboard run:

tensorboard --logdir log --port 6006

and go to localhost:6006 in your browser. If you're running headlessly, try port forwarding with ssh.

The console output is also available in a form:

| train | E: 1 | S: 1000 | D: 0.8 s | R: 0.0000 | BR: 0.0000 | A_LOSS: 0.0000 | CR_LOSS: 0.0000 | CU_LOSS: 0.0000

a training entry decodes as:

train - training episode
E - total number of episodes 
S - total number of environment steps
D - duration in seconds to train 1 episode
R - episode reward
BR - average reward of sampled batch
A_LOSS - average loss of actor
CR_LOSS - average loss of critic
CU_LOSS - average loss of the CURL encoder

while an evaluation entry:

| eval | S: 0 | ER: 21.1676

which just tells the expected reward ER evaluating current policy after S steps. Note that ER is average evaluation performance over num_eval_episodes episodes (usually 10).

S
Description
CURL: Contrastive Unsupervised Representation Learning for Sample-Efficient Reinforcement Learning
Readme
114 KiB
Languages
Python 97.9%
Shell 2.1%