def train_4v4(): envs_config_paths = [ Path(JSONS_FOLDER, 'configs', '4v4', 'all_equal.json'), Path(JSONS_FOLDER, 'configs', '4v4', 'more_horizontally.json'), Path(JSONS_FOLDER, 'configs', '4v4', 'more_vertically.json') ] training_state = get_frap_training_4v4() training_state.junctions = [ "gneJ1", "gneJ2", "gneJ3", "gneJ4", "gneJ7", "gneJ8", "gneJ9", "gneJ10", "gneJ14", "gneJ15", "gneJ16", "gneJ17", "gneJ20", "gneJ21", "gneJ22", "gneJ23" ] evaluator = Evaluator.from_file( Path(JSONS_FOLDER, 'evaluators', '4v4_eq_vert_hori.json')) main_train( training_state, [ SumoEnv.from_config_file(env_config_path, 3000) for env_config_path in envs_config_paths ], evaluator, Path('saved', 'aaai-multi', 'frap', '4v4'), )
def train_aaai(): env_config_path = Path(JSONS_FOLDER, 'configs', 'aaai_random.json') evaluator = Evaluator.from_file( Path(JSONS_FOLDER, 'evaluators', 'example_test.json')) main_train( get_frap_training(), SumoEnv.from_config_file(env_config_path), evaluator, Path('saved', 'aaai-random', 'frap'), )
def train_2v2(): env_config_path = Path(JSONS_FOLDER, 'configs', '2v2', 'all_equal.json') training_state = get_frap_training_2v2() training_state.junctions = ['gneJ25', 'gneJ26', 'gneJ27', 'gneJ28'] evaluator = Evaluator.from_file( Path(JSONS_FOLDER, 'evaluators', '2v2_small_subset.json')) main_train( training_state, SumoEnv.from_config_file(env_config_path, 3000), evaluator, Path('saved', 'aaai-multi', 'frap'), )
def main(): # evaluator = Evaluator.from_file("jsons/evaluators/example_test.json") # evaluator = Evaluator.from_file("jsons/evaluators/osm_test.json") # evaluator = Evaluator.from_file("jsons/evaluators/2v2_small_subset.json") evaluator = Evaluator.from_file('jsons/evaluators/4v4_eq_vert_hori.json') # evaluator = Evaluator.from_file('jsons/evaluators/example_test.json') osm_phase_map = { 0: [ "gneE8_0", "gneE8_1", "166869096#1_0", "166869096#1_1", "166869096#1_2", "166869096#1_3", "gneE16_0", "gneE16_1" ], 1: ["gneE7_0", "gneE7_1", "gneE18_0", "gneE18_1"], 2: ["gneE8_0", "gneE8_1", "gneE8_2", "gneE8_3", "gneE16_0", "gneE16_1"], 3: [ "166869096#1_0", "166869096#1_1", "gneE1_0", "gneE1_1", "gneE18_0", "gneE18_1" ] } controller1 = VehicleNumberController(osm_phase_map) phase_map = get_phase_map() vehicle_number_controller_2x2 = [ VehicleNumberController(phase_map[tls_id]) for tls_id in phase_map.keys() ] phase_map_1v1 = get_phase_map_1v1() vehicle_number_controller_1x1 = [ VehicleNumberController(phase_map_1v1[tls_id]) for tls_id in phase_map_1v1.keys() ] pressure_controller_1x1 = [ VehicleNumberPressureController(tls_id, phase) for tls_id, phase in phase_map_1v1.items() ] timed_controller = TimedCyclicSwitchController(list(range(8)), [5] * 8) controller_rand = RandomSwitchController(list(range(8))) phase_map = get_phase_map() pressure_controller_2x2 = [ VehicleNumberPressureController(tls_id, phase) for tls_id, phase in phase_map.items() ] model_1v1_training_state = TrainingState.from_path( str( Path(PROJECT_ROOT, 'saved', 'aaai-random', 'frap', 'frap_2020-11-12.23-17-52-665056', 'states', 'ep_9_frap_2020-11-12.23-17-52-665056.tar'))) model_1v1 = model_1v1_training_state.model model_1v1_controller = ModelController(model_1v1.eval()) model_2v2_training_state = TrainingState.from_path( str( Path(PROJECT_ROOT, 'saved', 'aaai-multi', 'frap', 'frap_2020-12-13.12-43-58-417983', 'states', 'ep_181_frap_2020-12-13.12-43-58-417983.tar'))) model_2v2 = model_2v2_training_state.model model_2v2_controller = ModelController(model_2v2.eval()) # training_state = TrainingState.from_path( # Path('ep_181_frap_2020-12-13.12-43-58-417983.tar')) # model1 = training_state.model # model1 = model1.eval() # controller_mod = ModelController(model1) controllers_2cyc_2model = [ controller_rand, timed_controller, vehicle_number_controller_2x2, pressure_controller_2x2 ] controllers_1x1 = [ # controller_rand, # timed_controller, # vehicle_number_controller_1x1, # pressure_controller_1x1 model_1v1_controller ] phase_map_4v4 = get_phase_map_four_v_four() controllers_4v4_vehicle = [ VehicleNumberController(phase_map_4v4[tls_id]) for tls_id in phase_map_4v4.keys() ] controllers_4v4_pressure = [ VehicleNumberPressureController(tls_id, phase_map_4v4[tls_id]) for tls_id in phase_map_4v4.keys() ] controller_4v4_timed = TimedCyclicSwitchController(list(range(8)), [10] * 8) training_state = TrainingState.from_path( str( Path('saved', 'aaai-multi', 'frap', '4v4', 'frap_2020-12-13.16-24-11-166272', 'states', 'ep_246_frap_2020-12-13.16-24-11-166272.tar'))) model_4v4 = training_state.model model_4v4 = model_4v4.eval() model_4v4_controller = ModelController(model_4v4) # metrics = evaluator.evaluate_traffic_controllers( # [controller_rand, controllers_4v4_vehicle, controllers_4v4_pressure], render=False) metrics = evaluator.evaluate_traffic_controllers([ model_4v4_controller, controller_4v4_timed, controllers_4v4_vehicle, controller_rand ], render=True) for env_n in metrics[0].keys(): print(env_n) for m in metrics: print(m[env_n])