-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
129 lines (92 loc) · 4.72 KB
/
Makefile
File metadata and controls
129 lines (92 loc) · 4.72 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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
.PHONY: all clean setup validate reference_model \
quantize_params prep_model quantize_activations quantize_biases quantize_model_symm quantize_model_dyn_symm \
quantize_params_asymm prep_model_asymm quantize_activations_asymm quantize_biases_asymm quantize_model_asymm quantize_model_dyn_asymm \
quantize_params_log prep_model_log quantize_activations_log quantize_biases_log quantize_model_log \
all: setup \
quantize_params prep_model quantize_activations quantize_biases quantize_model_symm quantize_model_dyn_symm \
quantize_params_asymm prep_model_asymm quantize_activations_asymm quantize_biases_asymm quantize_model_asymm quantize_model_dyn_asymm \
quantize_params_log prep_model_log quantize_activations_log quantize_biases_log quantize_model_log
clean:
rm -f models/*.onnx
rm -f models/*.keras
rm -f params/*.json
rm -f activations/*.json
rm -f biases/*.json
## Create dependencies if missing
models/model.keras:
python3 drivers/model.py
params/unquantized_params.json:
python3 drivers/setup.py
params/quantized_params.json:
python3 python_implementation/quantize_parameters.py symmetric
params/quantized_params_asymm.json:
python3 python_implementation/quantize_parameters.py asymmetric
params/quantized_params_log.json:
python3 python_implementation/quantize_parameters.py logarithmic
activations/prep_activations.json:
python3 drivers/activations.py symmetric
activations/prep_activations_asymm.json:
python3 drivers/activations.py asymmetric
activations/prep_activations_log.json:
python3 drivers/activations.py logarithmic
activations/quantized_activations.json:
python3 python_implementation/quantize_activations.py symmetric
activations/quantized_activations_asymm.json:
python3 python_implementation/quantize_activations.py asymmetric
activations/quantized_activations_log.json:
python3 python_implementation/quantize_activations.py logarithmic
biases/quantized_biases.json:
python3 python_implementation/quantize_biases.py symmetric
biases/quantized_biases_asymm.json:
python3 python_implementation/quantize_biases.py asymmetric
biases/quantized_biases_log.json:
python3 python_implementation/quantize_biases.py logarithmic
## Functional commands
setup: models/model.keras
python3 drivers/setup.py
# For symmetric:
quantize_params: params/unquantized_params.json
python3 python_implementation/quantize_parameters.py symmetric
# For static symmetric:
prep_model: params/quantized_params.json
python3 python_implementation/quantize_model.py prep
quantize_activations: activations/prep_activations.json
python3 python_implementation/quantize_activations.py symmetric
quantize_biases: activations/prep_activations.json
python3 python_implementation/quantize_biases.py symmetric
quantize_model_symm: activations/quantized_activations.json biases/quantized_biases.json
python3 python_implementation/quantize_model.py symmetric
# For dynamic symmetric:
quantize_model_dyn_symm: params/quantized_params.json
python3 python_implementation/quantize_model.py dyn_symmetric
# For asymmetric:
quantize_params_asymm: params/unquantized_params.json
python3 python_implementation/quantize_parameters.py asymmetric
# For static asymmetric:
prep_model_asymm: params/quantized_params_asymm.json
python3 python_implementation/quantize_model.py prep_asymm
quantize_activations_asymm: activations/prep_activations_asymm.json
python3 python_implementation/quantize_activations.py asymmetric
quantize_biases_asymm: activations/prep_activations_asymm.json
python3 python_implementation/quantize_biases.py asymmetric
quantize_model_asymm: activations/quantized_activations_asymm.json biases/quantized_biases_asymm.json
python3 python_implementation/quantize_model.py asymmetric
# For dynamic asymmetric:
quantize_model_dyn_asymm: params/quantized_params_asymm.json
python3 python_implementation/quantize_model.py dyn_asymmetric
# For logarithmic:
quantize_params_log: params/unquantized_params.json
python3 python_implementation/quantize_parameters.py logarithmic
prep_model_log: params/quantized_params_log.json
python3 python_implementation/quantize_model.py prep_log
quantize_activations_log: activations/prep_activations_log.json
python3 python_implementation/quantize_activations.py logarithmic
quantize_biases_log: activations/prep_activations_log.json
python3 python_implementation/quantize_biases.py logarithmic
quantize_model_log: activations/quantized_activations_log.json biases/quantized_biases_log.json
python3 python_implementation/quantize_model.py logarithmic
# For evaluation:
validate: models/model.onnx models/quantized_model.onnx models/dynamic_quantized_model.onnx models/asymmetric_model.onnx models/dynamic_asymmetric_model.onnx
python3 drivers/validate.py
reference_model: models/onnx_model.onnx
python3 drivers/reference.py