rllib使用自定义注册环境

2024-05-13 22:33:48 发布

您现在位置:Python中文网/ 问答频道 /正文

Rllib文档提供了一些关于如何create and train a custom environment的信息。有一些关于注册该环境的信息,但我想它需要与gym registration不同的工作方式。你知道吗

我正在用SimpleCorridor环境测试这一点。如果我像这样将注册码添加到文件中:

from ray.tune.registry import register_env

class SimpleCorridor(gym.Env):
   ...


def env_creator(env_config):
    return SimpleCorridor(env_config)

register_env("corridor", env_creator)

然后我就可以使用字符串名称训练算法了没问题:

if __name__ == "__main__":
    ray.init()
    tune.run(
        "PPO",
        stop={
            "timesteps_total": 10000,
        },
        config={
            "env": "corridor", # <--- This works fine!
            "env_config": {
                "corridor_length": 5,
            },
        },
    )

但是

在定义环境的同一个文件中注册环境是没有意义的,因为您可以只使用类。OpenAI健身房注册很好,因为如果你安装了这个环境,那么你可以在任何地方使用它,只需编写

include gym_corridor

我不清楚是否有一种方法可以为rllib注册环境。有办法吗?你知道吗


Tags: 文件文档envregister信息config环境create