RLLIB использовать пользовательские зарегистрированные среды - PullRequest
0 голосов
/ 25 октября 2019

Документы Rllib предоставляют некоторую информацию о том, как создать и обучить пользовательскую среду . Есть некоторая информация о регистрации этой среды, но я думаю, что она должна работать не так, как регистрация в спортзале .

Я тестирую это, работая со средой 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,Есть ли способ сделать это?

...