将 Ray RLlib 与自定义模拟器结合使用

Using Ray RLlib with custom simulator

我是 Ray RLlib 的新手,在使用我的团队制作的自定义模拟器时遇到了问题。 我们正在尝试将基于 Python 的自定义模拟器集成到 Ray RLlib 中,以进行单代理 DQN 训练。但是,我不确定如何将模拟器作为环境集成到 RLlib 中。

根据 Ray 文档中的下图,我似乎有两个不同的选择:

  1. 标准环境:根据Carla simulator example,看来我可以简单地使用gym.Env class API 包装我的自定义模拟器并使用 ray.tune.registry.register_env 函数注册为环境。
  2. 外部环境:但是,下面的图片和 RLlib 文档让我更加困惑,因为它表明可以 运行 独立于 RLlib 控制之外的外部模拟器应该通过 ExternalEnv class.
  3. 使用

如果有人能建议我应该做什么,将不胜感激!谢谢!

如果您的环境确实可以结构化以适应 Gym 风格(初始化、重置、步骤功能),您可以使用第一个。

外部环境主要用于不适合这种风格的 RL 环境,例如基于 Web 浏览器(测试自动化等)的应用程序或任何持续财务应用程序等

既然您写道您使用基于自定义 Python 的模拟器,我想说您可以使用 PolicyClient 和 PolicyServerInput API。在您的模拟器 (env) 端实施 PolicyClient 并向 PolicyClient 提供来自模拟器的数据(观察、奖励等)。这是我认为可能对你有帮助的。