Документы 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,Есть ли способ сделать это?