我刚开始接触Ray RLlib,并且在使用我们团队制作的自定义模拟器时遇到了问题。我们试图将一个基于Python的自定义模拟器集成到Ray RLlib中,以进行单代理DQN训练。然而,我不确定如何将模拟器作为环境集成到RLlib中。
根据下面的Ray文档中的图片,似乎我有两种不同的选择:
- 标准环境:根据Carla模拟器示例,似乎我可以简单地使用
gym.Env
类API来包装我的自定义模拟器,并使用ray.tune.registry.register_env
函数注册为环境。 - 外部环境:然而,下面的图片和RLlib文档让我更加困惑,因为它建议可以独立运行在RLlib控制之外的外部模拟器应通过
ExternalEnv
类来使用。
回答:
如果你的环境确实可以结构化为适合Gym风格(初始化、重置、步骤函数),你可以使用第一种方法。
外部环境主要用于不符合这种风格的RL环境,例如基于Web浏览器(测试自动化等)的应用程序或任何持续的金融应用等。