-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathrun.py
More file actions
80 lines (59 loc) · 2.59 KB
/
run.py
File metadata and controls
80 lines (59 loc) · 2.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
from tqdm import tqdm
import os
from experiment_utils import make_new_experiment_dir
from experiment_utils import run_experiment_warcraft
fixed_parameters = {}
fixed_parameters['experiment_name'] = "Warcraft"
fixed_parameters['k'] = 12
fixed_parameters['h'] = int((fixed_parameters['k']**2)/2)
fixed_parameters['lambd_O1'] = 20
fixed_parameters['lambd_O2'] = 20
fixed_parameters['seconds_per_solve'] = 10
fixed_parameters['epochs'] = 500
fixed_parameters['early_stopping'] = 10
fixed_parameters['lr_O1'] = 1e-3
fixed_parameters['lr_O2'] = 3e-4
fixed_parameters['batch_size'] = 256
lrates = [1.5e-3,3e-4,3e-3,7e-4]
warmstarts = [507]
ablation_strategies = ['finetune']
data_acquisition_strategies = ['learnt']
prediction_model_training_strategies = ['pfl', 'dfl']
experiments = []
for opo_rate in lrates:
for seed in warmstarts:
for ablation in ablation_strategies:
for da in data_acquisition_strategies:
for pmt in prediction_model_training_strategies:
if ablation == 'pretrained' and da == 'fixed':
continue
else:
experiments.append([ablation, da, pmt, seed, opo_rate])
fixed_parameters['k'] = 12
fixed_parameters['h'] = int((fixed_parameters['k']**2)/4)
i = 0
total = len(experiments)
for ablation, da, pmt, seed, opo_rate in tqdm(experiments, leave = False, desc= "experiment level"):
i += 1
fixed_parameters['ablation'] = ablation
fixed_parameters['O1_strategy'] = da
# fixed_parameters['imputation_method'] = im
fixed_parameters['PO2_strategy'] = pmt
fixed_parameters['seed'] = seed
fixed_parameters['lr_O1'] = opo_rate
# Create experiment directory
print(f"Experiment: {i}/{total},",
f"ablation : {fixed_parameters['ablation']},",
f"O1_strategy : {fixed_parameters['O1_strategy']},",
# f"imputation_method : {fixed_parameters['imputation_method']},",
f"PO2_strategy : {fixed_parameters['PO2_strategy']}.",
f"Seed : {fixed_parameters['seed']}.",
)
fixed_parameters['experiment_path'] = make_new_experiment_dir(fixed_parameters = fixed_parameters)
if os.path.exists(f"{fixed_parameters['experiment_path']}/results.pkl"):
fixed_parameters.pop('experiment_path') # Needs to be cleared each time
continue
run_experiment_warcraft(fixed_parameters = fixed_parameters,
folder_path="./data/warcraft_shortest_path_oneskin/",
verbose = True)
fixed_parameters.pop('experiment_path') # Needs to be cleared each time