From bc4003464099dcbb986a69641590489c05fe1722 Mon Sep 17 00:00:00 2001 From: Guillaume Mollard <guillaume.mollard2@gmail.com> Date: Sun, 19 May 2019 15:42:28 +0200 Subject: [PATCH] removed the term 'grid search' --- RailEnvRLLibWrapper.py | 8 ++-- .../n_agents_experiment/config.gin | 14 +++++++ .../n_agents_grid_search/config.gin | 13 ------ grid_search_train.py => train_experiment.py | 40 ++++++++++--------- 4 files changed, 41 insertions(+), 34 deletions(-) create mode 100644 experiment_configs/n_agents_experiment/config.gin delete mode 100644 grid_search_configs/n_agents_grid_search/config.gin rename grid_search_train.py => train_experiment.py (81%) diff --git a/RailEnvRLLibWrapper.py b/RailEnvRLLibWrapper.py index f6697cc..007568e 100644 --- a/RailEnvRLLibWrapper.py +++ b/RailEnvRLLibWrapper.py @@ -2,7 +2,7 @@ from flatland.envs.rail_env import RailEnv from ray.rllib.env.multi_agent_env import MultiAgentEnv from flatland.core.env_observation_builder import TreeObsForRailEnv from flatland.envs.generators import random_rail_generator - +from ray.rllib.utils.seed import seed as set_seed class RailEnvRLLibWrapper(MultiAgentEnv): @@ -13,8 +13,10 @@ class RailEnvRLLibWrapper(MultiAgentEnv): # number_of_agents=1, # obs_builder_object=TreeObsForRailEnv(max_depth=2)): super(MultiAgentEnv, self).__init__() - - self.env = RailEnv(width=config["width"], height=config["height"], rail_generator=config["rail_generator"], + self.rail_generator = config["rail_generator"](nr_start_goal=config['number_of_agents'], min_dist=5, + seed=config['seed'] * (1+config.vector_index)) + set_seed(config['seed'] * (1+config.vector_index)) + self.env = RailEnv(width=config["width"], height=config["height"], rail_generator=self.rail_generator, number_of_agents=config["number_of_agents"]) def reset(self): diff --git a/experiment_configs/n_agents_experiment/config.gin b/experiment_configs/n_agents_experiment/config.gin new file mode 100644 index 0000000..31eedbe --- /dev/null +++ b/experiment_configs/n_agents_experiment/config.gin @@ -0,0 +1,14 @@ +run_experiment.name = "n_agents_results" +run_experiment.num_iterations = 1002 +run_experiment.save_every = 200 +run_experiment.hidden_sizes = [32, 32] + +run_experiment.map_width = 20 +run_experiment.map_height = 20 +run_experiment.n_agents = {"grid_search": [1]}#, 2, 5, 10]} +run_experiment.policy_folder_name = "ppo_policy_{config[n_agents]}_agents" + +run_experiment.horizon = 50 +run_experiment.seed = 123 + + diff --git a/grid_search_configs/n_agents_grid_search/config.gin b/grid_search_configs/n_agents_grid_search/config.gin deleted file mode 100644 index ab3d76e..0000000 --- a/grid_search_configs/n_agents_grid_search/config.gin +++ /dev/null @@ -1,13 +0,0 @@ -run_grid_search.name = "n_agents_results" -run_grid_search.num_iterations = 1002 -run_grid_search.save_every = 200 -run_grid_search.hidden_sizes = [32, 32] - -run_grid_search.map_width = 20 -run_grid_search.map_height = 20 -run_grid_search.n_agents = {"grid_search": [1, 2, 5, 10]} -run_grid_search.policy_folder_name = "ppo_policy_{config[n_agents]}_agents" - -run_grid_search.horizon = 50 - - diff --git a/grid_search_train.py b/train_experiment.py similarity index 81% rename from grid_search_train.py rename to train_experiment.py index b30cb40..a70258b 100644 --- a/grid_search_train.py +++ b/train_experiment.py @@ -24,15 +24,17 @@ import tempfile import gin from ray import tune - +from ray.rllib.utils.seed import seed as set_seed ModelCatalog.register_custom_preprocessor("my_prep", CustomPreprocessor) -ray.init(object_store_memory=150000000000) +ray.init() def train(config, reporter): print('Init Env') + set_seed(config['seed'], config['seed'], config['seed']) + transition_probability = [15, # empty cell - Case 0 5, # Case 1 - straight 5, # Case 2 - simple switch @@ -46,10 +48,11 @@ def train(config, reporter): 1] # Case 2b (10) - simple switch mirrored # Example configuration to generate a random rail - env_config = {"width":config['map_width'], - "height":config['map_height'], - "rail_generator":complex_rail_generator(nr_start_goal=config['n_agents'], min_dist=5, max_dist=99999, seed=0), - "number_of_agents":config['n_agents']} + env_config = {"width": config['map_width'], + "height": config['map_height'], + "rail_generator": complex_rail_generator, + "number_of_agents": config['n_agents'], + "seed": config['seed']} # Observation space and action space definitions obs_space = gym.spaces.Box(low=-float('inf'), high=float('inf'), shape=(105,)) @@ -73,11 +76,11 @@ def train(config, reporter): trainer_config["horizon"] = config['horizon'] trainer_config["num_workers"] = 0 - trainer_config["num_cpus_per_worker"] = 10 - trainer_config["num_gpus"] = 0.5 - trainer_config["num_gpus_per_worker"] = 0.5 - trainer_config["num_cpus_for_driver"] = 2 - trainer_config["num_envs_per_worker"] = 10 + trainer_config["num_cpus_per_worker"] = 1 + trainer_config["num_gpus"] = 0.0 + trainer_config["num_gpus_per_worker"] = 0 + trainer_config["num_cpus_for_driver"] = 1 + trainer_config["num_envs_per_worker"] = 1 trainer_config["env_config"] = env_config trainer_config["batch_mode"] = "complete_episodes" trainer_config['simple_optimizer'] = False @@ -108,8 +111,8 @@ def train(config, reporter): @gin.configurable -def run_grid_search(name, num_iterations, n_agents, hidden_sizes, save_every, - map_width, map_height, horizon, policy_folder_name, local_dir): +def run_experiment(name, num_iterations, n_agents, hidden_sizes, save_every, + map_width, map_height, horizon, policy_folder_name, local_dir, seed): tune.run( train, @@ -122,11 +125,12 @@ def run_grid_search(name, num_iterations, n_agents, hidden_sizes, save_every, "map_height": map_height, "local_dir": local_dir, "horizon": horizon, # Max number of time steps - 'policy_folder_name': policy_folder_name + 'policy_folder_name': policy_folder_name, + "seed": seed }, resources_per_trial={ - "cpu": 12, - "gpu": 0.5 + "cpu": 1, + "gpu": 0.0 }, local_dir=local_dir ) @@ -134,6 +138,6 @@ def run_grid_search(name, num_iterations, n_agents, hidden_sizes, save_every, if __name__ == '__main__': gin.external_configurable(tune.grid_search) - dir = '/mount/SDC/flatland/baselines/grid_search_configs/n_agents_grid_search' # To Modify + dir = '/home/guillaume/Desktop/distMAgent/baselines/experiment_configs/n_agents_experiment' # To Modify gin.parse_config_file(dir + '/config.gin') - run_grid_search(local_dir=dir) + run_experiment(local_dir=dir) -- GitLab