В качестве учебного упражнения, чтобы выяснить, как использовать пользовательскую среду Gym с rllib, я решил привести простейший пример тренировки против Gym Go. Так что есть способ зарегистрировать спортзал с помощью rllib , но я хожу по кругу.
Это насколько я получил:
#!/usr/bin/env python
import ray
import gym
from ray import tune
from ray.rllib.agents.ppo import PPOTrainer
from ray.tune.registry import register_env
ray.init()
def env_creator(env_name):
from custom_gym.envs.gym_go import gym_go as env #THIS DOESNT WORK
return env
env = env_creator('go-v0')
tune.register_env('goEnv', lambda: config, env(config))
tune.run(PPOTrainer, config={"env": "goEnv", "num_workers":18})
$ python3 raytest2.py
Traceback (most recent call last):
File "raytest2.py", line 17, in <module>
env = env_creator('go-v0')
File "raytest2.py", line 13, in env_creator
from custom_gym.envs.gym_go import gym_go as env
ModuleNotFoundError: No module named 'custom_gym'
Любая обратная связь будет принята с благодарностью!
ОБНОВЛЕНИЕ: Похоже, это улучшение, но есть и другие проблемы, над которыми нужно разобраться
import ray
from ray import tune
from ray.rllib.agents.ppo import PPOTrainer
from ray.tune.registry import register_env
ray.init()
def create_my_env():
import gym
return gym.make('gym_go:go-v0', size=7, reward_method='real')
env_creator = lambda config: create_my_env()
tune.register_env('go-v0', env_creator)
tune.run(PPOTrainer, config={"env": "go-v0", "num_workers":18})