MTEnv: MultiTask Environments for Reinforcement Learning
Project description
MTEnv
MultiTask Environments for Reinforcement Learning.
Contents
Introduction
MTEnv is a library to interface with environments for multi-task reinforcement learning. It has two main components:
-
A core API/interface that extends the gym interface and adds first-class support for multi-task RL.
-
A collection of environments that implement the API.
Together, these two components should provide a standard interface for multi-task RL environments and make it easier to reuse components and tools across environments.
You can read more about the difference between MTEnv
and single-task environments here.
List of publications & submissions using MTEnv (please create a pull request to add the missing entries):
License
-
MTEnv uses MIT License.
Citing MTEnv
If you use MTEnv in your research, please use the following BibTeX entry:
@Misc{Sodhani2021MTEnv,
author = {Shagun Sodhani and Ludovic Denoyer and Pierre-Alexandre Kamienny and Olivier Delalleau},
title = {MTEnv - Environment interface for mulit-task reinforcement learning},
howpublished = {Github},
year = {2021},
url = {https://github.com/facebookresearch/mtenv}
}
Installation
MTEnv has two components - a core API and environments that implement the API.
The Core API can be installed via pip install mtenv
.
The list of environments, that implement the API, is available here. Any of these environments can be installed via pip install "mtenv[env_name]"
. For example, the MetaWorld
environment can be installed via pip install "mtenv[metaworld]"
.
All the environments can be installed at once using pip install "mtenv[all]"
. However, note that some environments may have incompatible dependencies.
MTEnv can also be installed from the source by first cloning the repo (git clone git@github.com:facebookresearch/mtenv.git
), cding into the directory cd mtenv
, and then using the pip commands as described above. For example, pip install mtenv
to install the core API, and pip install "mtenv[env_name]"
to install a particular environment.
Usage
MTEnv provides an interface very similar to the standard gym environments. One key difference between multi-task environments (that implement the MTEnv interface) and single-task environments is in terms of observation that they return.
MultiTask Observation
The multi-task environments return a dictionary as the observation. This dictionary has two keys: (i) env_obs
, which maps to the observation from the environment (i.e., the observation that a single task environments return), and (ii) task_obs
, which maps to the task-specific information from the environment. In the simplest case, task_obs
can be an integer denoting the task index. In other cases, task_obs
can provide richer information.
from mtenv import make
env = make("MT-MetaWorld-MT10-v0")
obs = env.reset()
print(obs)
# {'env_obs': array([-0.03265039, 0.51487777, 0.2368754 , -0.06968209, 0.6235982 ,
# 0.01492813, 0. , 0. , 0. , 0.03933976,
# 0.89743189, 0.01492813]), 'task_obs': 1}
action = env.action_space.sample()
print(action)
# array([-0.76422 , -0.15384133, 0.74575615, -0.11724994], dtype=float32)
obs, reward, done, info = env.step(action)
print(obs)
# {'env_obs': array([-0.02583682, 0.54065546, 0.22773503, -0.06968209, 0.6235982 ,
# 0.01494118, 0. , 0. , 0. , 0.03933976,
# 0.89743189, 0.01492813]), 'task_obs': 1}
Documentation
Contributing to MTEnv
There are several ways to contribute to MTEnv.
-
Use MTEnv in your research.
-
Contribute a new environment. We currently support three environment suites via MTEnv and are looking forward to adding more environments. Contributors will be added as authors of the library. You can learn more about the workflow of adding an environment here.
-
Check out the beginner-friendly issues on GitHub and contribute to fixing those issues.
-
Check out additional details here.
Community
Ask questions in the chat or github issues:
Acknowledgements
- Project file pre-commit, mypy config, towncrier config, circleci etc are based on same files from Hydra.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mtenv-0.9.tar.gz
.
File metadata
- Download URL: mtenv-0.9.tar.gz
- Upload date:
- Size: 66.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ec11c39c10fec44a85f0626be3c5f34840f2eb201b48ad40c8db89ddac64233 |
|
MD5 | 3f1340f5fd58cb57d514608e7d99426e |
|
BLAKE2b-256 | 0e39ad264897e9b1c8dd9fc86f9c2006afa4e27694f283f567b520b3bfac7b4e |
File details
Details for the file mtenv-0.9-py3-none-any.whl
.
File metadata
- Download URL: mtenv-0.9-py3-none-any.whl
- Upload date:
- Size: 110.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab229238c7ecf74fd25d2ebc397a172153a07df76d0e8372add0d4c1231c1857 |
|
MD5 | 510893993483198248911da3b20e96c0 |
|
BLAKE2b-256 | 64a59a8e7003bdfd4e0b7c0d62bea3ff9a5d4bb2fa8709201817da91fa6d5cef |