-
Notifications
You must be signed in to change notification settings - Fork 96
/
Copy pathMakefile
89 lines (70 loc) · 2.14 KB
/
Makefile
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
80
81
82
83
84
85
86
87
88
89
SHELL := /bin/bash
BINARY_DATA=moons circles adult_b mushrooms cancer diabetes
MULTI_DATA=blobs class5 iris adult steak gss digits
EXP_DIR=experiments
REGRESSION_DIR=$(EXP_DIR)/LR
BIN_DIR=$(REGRESSION_DIR)/bin
SOFT_DIR=$(REGRESSION_DIR)/softmax
OVR_DIR=$(REGRESSION_DIR)/ovr
ROUNDINGS=5 4 3 2
REPS=4
all: binary binary_results softmax softmax_results ovr ovr_results
clean: binary_clean softmax_clean ovr_clean
binary:
mkdir -p $(BIN_DIR) ; \
for data in $(BINARY_DATA) ; do \
number=1 ; while [[ $$number -le $(REPS) ]] ; do \
$(MAKE) DATA=$$data SEED=$$number $(BIN_DIR)/$$data.$$number.out ; \
((number = number + 1)) ; \
done \
done
%.out :
ifdef ROUNDING
python -m regression $(DATA) $(OPTIONS) --rounding $(ROUNDING) --seed $(SEED) >> $@
else
python -m regression $(DATA) $(OPTIONS) --seed $(SEED) >> $@
endif
softmax:
mkdir -p $(SOFT_DIR) ; \
for data in $(MULTI_DATA) ; do \
number=1 ; while [[ $$number -le $(REPS) ]] ; do \
$(MAKE) DATA=$$data SEED=$$number OPTIONS='--multinomial' $(SOFT_DIR)/$$data.$$number.out ; \
((number = number + 1)) ; \
done \
done
softmax_rounding:
for round in $(ROUNDINGS) ; do \
mkdir -p $(SOFT_DIR)_r$$round ; \
for data in $(MULTI_DATA) ; do \
number=1 ; while [[ $$number -le $(REPS) ]] ; do \
$(MAKE) DATA=$$data SEED=$$number OPTIONS='--multinomial' ROUNDING=$$round $(SOFT_DIR)_r$$round/$$data.$$number.out ; \
((number = number + 1)) ; \
done \
done \
done
ovr:
mkdir -p $(OVR_DIR) ; \
for data in $(MULTI_DATA) ; do \
number=1 ; while [[ $$number -le $(REPS) ]] ; do \
$(MAKE) DATA=$$data SEED=$$number $(OVR_DIR)/$$data.$$number.out ; \
((number = number + 1)) ; \
done \
done
results:
python -m aggregate_results $(DIR) $(DATA)
binary_results:
$(MAKE) DATA="$(BIN_DIR)/*.out" DIR=$(BIN_DIR) results
softmax_results:
$(MAKE) DATA="$(SOFT_DIR)/*.out" DIR=$(SOFT_DIR) results
ovr_results:
$(MAKE) DATA="$(OVR_DIR)/*.out" DIR=$(OVR_DIR) results
binary_clean:
rm -f $(BIN_DIR)/*.out
softmax_clean:
rm -f $(SOFT_DIR)/*.out
softmax_rounding_clean:
for round in $(ROUNDINGS) ; do \
rm -f $(SOFT_DIR)_r$$round/*.out ; \
done
ovr_clean:
rm -f $(OVR_DIR)/*.out