跳转到主要内容

MTEnv:多任务强化学习环境

项目描述

CircleCI PyPI - License PyPI - Python Version Code style: black Zulip Chat

MTEnv

多任务强化学习环境。

内容

  1. 简介

  2. 安装

  3. 使用

  4. 文档

  5. 为MTEnv做出贡献

  6. 社区

  7. 致谢

简介

MTEnv是一个用于与多任务强化学习环境接口的库。它有两个主要组件

  • 一个核心API/接口,它扩展了gym接口并为多任务RL提供了一等支持。

  • 一个实现API的环境集合

这两个组件一起应该为多任务RL环境提供一个标准接口,并使环境之间重用组件和工具变得更加容易。

您可以在此处了解更多关于MTEnv与单任务环境之间差异的信息。

使用MTEnv的出版物和提交列表(请创建拉取请求以添加缺失条目)

许可证

引用MTEnv

如果您在研究中使用了MTEnv,请使用以下BibTeX条目

@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}
}

安装

MTEnv有两个组件 - 核心API和实现API的环境。

核心API可以通过pip install mtenvpip install git+https://github.com/facebookresearch/mtenv.git@main#egg=mtenv安装。

实现API的环境列表可在此处找到。这些环境中的任何一个都可以通过以下命令安装:pip install git+https://github.com/facebookresearch/mtenv.git@main#egg="mtenv[env_name]"。例如,可以使用以下命令安装MetaWorld环境:pip install git+https://github.com/facebookresearch/mtenv.git@main#egg="mtenv[metaworld]"

可以使用以下命令一次性安装所有环境:pip install git+https://github.com/facebookresearch/mtenv.git@main#egg="mtenv[all]"。然而,请注意,某些环境可能有不兼容的依赖项。

MTEnv也可以通过源代码安装,首先克隆仓库(git clone git@github.com:facebookresearch/mtenv.git),然后进入目录cd mtenv,接着使用上述pip命令。例如,使用pip install mtenv安装核心API,使用pip install "mtenv[env_name]"安装特定的环境。

使用

MTEnv提供了一个与标准gym环境非常相似的接口。多任务环境(实现MTEnv接口)与单任务环境之间的一个主要区别在于它们返回的观察结果。

多任务观察

多任务环境返回一个字典作为观察结果。该字典有两个键:(i) env_obs,映射到环境的观察结果(即单任务环境返回的观察结果),(ii) task_obs,映射到环境中的特定任务信息。在最简单的情况下,task_obs可以是一个表示任务索引的整数。在其他情况下,task_obs可以提供更丰富的信息。

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}

文档

https://mtenv.readthedocs.io

为MTEnv做出贡献

有几种方式可以为MTEnv做出贡献。

  1. 在您的研究中使用MTEnv。

  2. 贡献一个新的环境。我们通过MTEnv支持许多环境,并期待添加更多环境。贡献者将被添加为库的作者。您可以在此了解更多关于添加环境的流程。

  3. 查看GitHub上的good-first-issues并为此问题做出贡献。

  4. 在此查看更多详细信息。

社区

在聊天或GitHub问题中提问

致谢

  • 项目文件pre-commit、mypy配置、towncrier配置、circleci等基于Hydra的相同文件。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分布

mtenv-1.0.tar.gz (150.3 kB 查看散列)

上传时间:

构建分布

mtenv-1.0-py3-none-any.whl (109.9 kB 查看散列)

上传时间: Python 3

由以下支持