fh = logging.FileHandler(file_name + '.log') fh.setLevel(logging.DEBUG) sh = logging.StreamHandler() sh.setLevel(logging.INFO) logger.addHandler(fh) logger.addHandler(sh) #Config File parameters = u.get_info_file(args.parameters) episodes = parameters['episodes'] parameters['log_path'] = args.log_dir action_interval = parameters['action_interval'] #start wandb u.wand_init("TLC - Results C2", f"new_dqn: {ntpath.basename(args.parameters)[:-5]}", "new_dqn") # create world world = World(args.config_file, thread_num=args.thread) # create agents agents = [] #parameters['buffer_size'] = parameters['buffer_size']*len(world.intersections) #parameters['batch_size'] = parameters['batch_size']*len(world.intersections) for i in world.intersections: action_space = gym.spaces.Discrete(len(i.phases)) agents.append( DQNAgent( action_space,
episodes_rewards += rewards[0] #Check if it's over by flag "Done" if all(dones) == True: print(i) break print(f"\n--SOTL Results--") print(f"Steps: {steps}") print(f"Episodes Rewards: {episodes_rewards/steps:.4f}") # for metric in env.metric: # print(f"{metric.name}: {metric.eval():.4f}") #start wandb u.wand_init( "TLC - Results C2", f"SOTL: {options['green_time']} {options['green_v']} {options['red_v']}", "SOTL") eval_dict = {} eval_dict["epsilon"] = 0 eval_dict["steps"] = steps eval_dict["mean_episode_reward"] = episodes_rewards / steps for metric in env.metric: eval_dict[metric.name] = metric.eval() print(f"{metric.name}: {metric.eval():.4f}") for e in range(200): eval_dict["episode"] = e u.wand_log(eval_dict)
fh = logging.FileHandler(file_name + '.log') fh.setLevel(logging.DEBUG) sh = logging.StreamHandler() sh.setLevel(logging.INFO) logger.addHandler(fh) logger.addHandler(sh) #Config File parameters = u.get_info_file(args.parameters) episodes = parameters['episodes'] parameters['log_path'] = args.log_dir action_interval = parameters['action_interval'] parameters['dataset_path'] = args.dataset #start wandb u.wand_init("TLC - Results C2", f"XQN : {ntpath.basename(args.parameters)[:-5]}", "XQN") # create world world = World(args.config_file, thread_num=args.thread) # create agents agents = [] for i in world.intersections: action_space = gym.spaces.Discrete(len(i.phases)) agents.append( XQNAgent( action_space, PhaseVehicleGenerator(world, i, ["phase_vehicles"], in_only=True, average=None,
sh = logging.StreamHandler() sh.setLevel(logging.INFO) logger.addHandler(fh) logger.addHandler(sh) #Get file with informations info_file = u.get_info_file(args.info_file) offset_phase_train = info_file['offset_phase_train'] offset_phase = info_file['offset_phase'] flag_default_reward = info_file['flag_default_reward'] flag_mean_reward = info_file['flag_mean_reward'] episodes = args.episodes if info_file['flag_arg_episode'] else info_file['episodes'] #start wandb u.wand_init("TLC - Results", f"ES_DQN: {ntpath.basename(args.info_file)[:-5]}",'ES_DQN') # create world world = World(args.config_file, thread_num=args.thread) # define tempo de amarelo yellow_phase_time = 0 # create agents agents = [] for i in world.intersections: yellow_phase_time = i.yellow_phase_time action_space = gym.spaces.Discrete(11) agents.append(DQNAgent( action_space, StateOfThreeGenerator(world, i, ["state_of_three"], in_only=True, average=None), LaneVehicleGenerator(world, i, ["lane_waiting_count"], in_only=True, average="all", negative=True),
parser.add_argument('--save_dir', type=str, default="model/dqn", help='directory in which model should be saved') parser.add_argument('--log_dir', type=str, default="log/dqn", help='directory in which logs should be saved') args = parser.parse_args() if not os.path.exists(args.log_dir): os.makedirs(args.log_dir) logger = logging.getLogger('main') logger.setLevel(logging.DEBUG) fh = logging.FileHandler(os.path.join(args.log_dir, datetime.now().strftime('%Y%m%d-%H%M%S') + ".log")) fh.setLevel(logging.DEBUG) sh = logging.StreamHandler() sh.setLevel(logging.INFO) logger.addHandler(fh) logger.addHandler(sh) u.wand_init("TLC - Results",f"dqn:", "dqn") # create world world = World(args.config_file, thread_num=args.thread) # create agents agents = [] for i in world.intersections: action_space = gym.spaces.Discrete(len(i.phases)) agents.append(DQNAgent( action_space, LaneVehicleGenerator(world, i, ["lane_count"], in_only=True, average=None), LaneVehicleGenerator(world, i, ["lane_waiting_count"], in_only=True, average="all", negative=True), i.id )) if args.load_model:
obs, rewards, dones, info = env.step(actions) steps += 1 episodes_rewards += rewards[0] #Check if it's over by flag "Done" if all(dones) == True: print(i) break print(f"\n--MaxPressure Results--") print(f"Steps: {steps}") print(f"Episodes Rewards: {episodes_rewards/steps:.4f}") # for metric in env.metric: # print(f"{metric.name}: {metric.eval():.4f}") #start wandb u.wand_init("TLC - Results C2", f"MaxPressure: {options['delta_t']}", "MaxPressure") eval_dict = {} eval_dict["epsilon"] = 0 eval_dict["steps"] = steps eval_dict["mean_episode_reward"] = episodes_rewards / steps for metric in env.metric: eval_dict[metric.name] = metric.eval() print(f"{metric.name}: {metric.eval():.4f}") for e in range(200): eval_dict["episode"] = e u.wand_log(eval_dict)
fh = logging.FileHandler(file_name + '.log') fh.setLevel(logging.DEBUG) sh = logging.StreamHandler() sh.setLevel(logging.INFO) logger.addHandler(fh) logger.addHandler(sh) #Config File parameters = u.get_info_file(args.parameters) episodes = parameters['episodes'] parameters['log_path'] = args.log_dir action_interval = parameters['action_interval'] parameters['dataset_path'] = args.dataset #start wandb u.wand_init("TLC - Results", f"xqn : {ntpath.basename(args.parameters)[:-5]}", "xqn") # create world world = World(args.config_file, thread_num=args.thread) # create agents agents = [] for i in world.intersections: action_space = gym.spaces.Discrete(len(i.phases)) agents.append( XQNAgent( action_space, LaneVehicleGenerator(world, i, ["lane_count"], in_only=True, average=None,
obs, rewards, dones, info = env.step(actions) steps += 1 episodes_rewards += rewards[0] #Check if it's over by flag "Done" if all(dones) == True: print(i) break print(f"\n--FixedTime Results--") print(f"Steps: {steps}") print(f"Episodes Rewards: {episodes_rewards/steps:.4f}") # for metric in env.metric: # print(f"{metric.name}: {metric.eval():.4f}") #start wandb u.wand_init("TLC - Results C2", f"FixedTime: {options['phase_time']}", "FixedTime") eval_dict = {} eval_dict["epsilon"] = 0 eval_dict["steps"] = steps eval_dict["mean_episode_reward"] = episodes_rewards / steps for metric in env.metric: eval_dict[metric.name] = metric.eval() print(f"{metric.name}: {metric.eval():.4f}") for e in range(200): eval_dict["episode"] = e u.wand_log(eval_dict)
obs, rewards, dones, info = env.step(actions) steps += 1 episodes_rewards += rewards[0] #Check if it's over by flag "Done" if all(dones) == True: print(i) break print(f"\n--MaxVehicle Results--") print(f"Steps: {steps}") print(f"Episodes Rewards: {episodes_rewards/steps:.4f}") # for metric in env.metric: # print(f"{metric.name}: {metric.eval():.4f}") #start wandb u.wand_init("TLC - Results C2", f"MaxVehicle: {options['delta_t']}", "MaxVehicle") eval_dict = {} eval_dict["epsilon"] = 0 eval_dict["steps"] = steps eval_dict["mean_episode_reward"] = episodes_rewards / steps for metric in env.metric: eval_dict[metric.name] = metric.eval() print(f"{metric.name}: {metric.eval():.4f}") for e in range(200): eval_dict["episode"] = e u.wand_log(eval_dict)