Skip to content

Multitask-dojo is a reinforcement learning environment for research on multi-task RL, generalization, and transfer learning.

Notifications You must be signed in to change notification settings

schmidtdominik/multitask-dojo

Repository files navigation

multitask-dojo

multitask-dojo is a reinforcement learning environment for research on multi-task RL, generalization, and transfer learning. It essentially combines all games from Atari (via gym), gym-retro, procgen, and meta-arcade into a single multi-task environment. Additionally, it provides several convenience features:

  • Vectorization: environment instances run in parallel on multiple cores. There are also additional features to mitigate the overhead from environment resets and task switching.
  • Observation and action space normalization: all games are normalized to the same observation space (resolution and color depth). Actions are mapped from a joint (15-dimensional discrete) action space to game specific action spaces.
  • Task scheduling: tasks can be selected by different schedulers (round-robin, minimal episodes, minimal frames, ..). PLR will be added to this repo in the near future.
  • Logging: the library takes care of logging and exports episode statistics (returns, length,..), performance statistics, action distributions. These stats can also directly be logged to wandb.
  • Task sets: for transfer learning/generalization research a list of clusters of similar tasks (e.g. platformer games, space invader-like games,..) is provided (split into train/test).

Installation

Installing the dependencies for dojo is slightly more involved since gym-retro doesn't include the necessary games and meta-arcade is not published on pypi. First install these requirements:

gym[atari] gym-retro procgen numpy wandb autorom imageio rich frozendict opencv-python scipy

Next run AutoROM to install the Atari ROMS in gym. Then follow the instructions here to install ROMS for gym-retro. Finally, set up meta-arcade according to their instructions here.

To verify that multitask-dojo was installed correctly, run run_random_policy.py. This will roll out a random policy in all games with the given number of worker processes.

About

Multitask-dojo is a reinforcement learning environment for research on multi-task RL, generalization, and transfer learning.

Topics

Resources

Stars

Watchers

Forks

Languages