def run_random_search(verbose, num_diff_experiments, num_repeat_experiment, allow_duplicates=False, df_path=None, overwrite=True, data_to_collect=POSSIBLE_DATA, MVP_key='waitingTime', save_model=True): grid = load_constants('constants/constants-grid.json') if not allow_duplicates: _, num_choices = get_num_grid_choices(grid) num_diff_experiments = min(num_choices, num_diff_experiments) # Make grid choice generator grid_choice_gen = grid_choices_random(grid, num_diff_experiments) for diff_experiment, constants in enumerate(grid_choice_gen): data_collector_obj = DataCollector( data_to_collect, MVP_key, constants, 'test' if constants['agent']['agent_type'] == 'rule' else 'eval', df_path, overwrite if diff_experiment == 0 else False, verbose) for same_experiment in range(num_repeat_experiment): print(' --- Running experiment {}.{} / {}.{} --- '.format( diff_experiment + 1, same_experiment + 1, num_diff_experiments, num_repeat_experiment)) if save_model: data_collector_obj.set_save_model_path( 'models/saved_models/random_{}-{}.pt'.format( diff_experiment + 1, same_experiment + 1)) run_experiment(diff_experiment + 1, same_experiment + 1, constants, data_collector_obj)
def run_normal(verbose, num_experiments=1, df_path=None, overwrite=True, data_to_collect=POSSIBLE_DATA, MVP_key='waitingTime', save_model=True, load_model_file=None): # if loading, then dont save if load_model_file: save_model = False if not df_path: df_path = 'run-data.xlsx' # def. path # Load constants constants = load_constants('constants/constants.json') data_collector_obj = DataCollector( data_to_collect, MVP_key, constants, 'test' if constants['agent']['agent_type'] == 'rule' or load_model_file else 'eval', df_path, overwrite, verbose) loaded_model = None if load_model_file: loaded_model = torch.load('models/saved_models/' + load_model_file) for exp in range(num_experiments): print(' --- Running experiment {} / {} --- '.format( exp + 1, num_experiments)) if save_model: data_collector_obj.set_save_model_path( 'models/saved_models/normal_{}.pt'.format(exp + 1)) run_experiment(exp + 1, None, constants, data_collector_obj, loaded_model=loaded_model)