def test_remote_worker_env(self): config = pg.DEFAULT_CONFIG.copy() config["remote_worker_envs"] = True config["num_envs_per_worker"] = 4 # Simple string env definition (gym.make(...)). config["env"] = "CartPole-v0" trainer = pg.PGTrainer(config=config) print(trainer.train()) trainer.stop() # Using tune.register. config["env"] = "cartpole" trainer = pg.PGTrainer(config=config) print(trainer.train()) trainer.stop() # Using class directly. config["env"] = RandomEnv trainer = pg.PGTrainer(config=config) print(trainer.train()) trainer.stop() # Using class directly: Sub-class of gym.Env, # which implements its own API. config["env"] = NonVectorizedEnvToBeVectorizedIntoRemoteBaseEnv trainer = pg.PGTrainer(config=config) print(trainer.train()) trainer.stop()
def test_remote_worker_env_multi_agent(self): config = pg.DEFAULT_CONFIG.copy() config["remote_worker_envs"] = True config["num_envs_per_worker"] = 4 # Full classpath provided. config["env"] = "ray.rllib.examples.env.random_env.RandomMultiAgentEnv" trainer = pg.PGTrainer(config=config) print(trainer.train()) trainer.stop() # Using tune.register. config["env"] = "pistonball" trainer = pg.PGTrainer(config=config) print(trainer.train()) trainer.stop() # Using class directly. config["env"] = RandomMultiAgentEnv trainer = pg.PGTrainer(config=config) print(trainer.train()) trainer.stop()