@@ 11-173 (lines=163) @@ | ||
8 | indent = " " |
|
9 | ||
10 | ||
11 | class PrintResults: |
|
12 | def __init__(self, opt_pros, verbosity): |
|
13 | self.opt_pros = opt_pros |
|
14 | self.verbosity = verbosity |
|
15 | ||
16 | def _print_times(self, eval_time, iter_time, n_iter): |
|
17 | opt_time = iter_time - eval_time |
|
18 | iterPerSec = n_iter / iter_time |
|
19 | ||
20 | print( |
|
21 | indent, |
|
22 | "Evaluation time :", |
|
23 | eval_time, |
|
24 | "sec", |
|
25 | indent, |
|
26 | "[{} %]".format(round(eval_time / iter_time * 100, 2)), |
|
27 | ) |
|
28 | print( |
|
29 | indent, |
|
30 | "Optimization time :", |
|
31 | opt_time, |
|
32 | "sec", |
|
33 | indent, |
|
34 | "[{} %]".format(round(opt_time / iter_time * 100, 2)), |
|
35 | ) |
|
36 | if iterPerSec >= 1: |
|
37 | print( |
|
38 | indent, |
|
39 | "Iteration time :", |
|
40 | iter_time, |
|
41 | "sec", |
|
42 | indent, |
|
43 | "[{} iter/sec]".format(round(iterPerSec, 2)), |
|
44 | ) |
|
45 | else: |
|
46 | secPerIter = iter_time / n_iter |
|
47 | print( |
|
48 | indent, |
|
49 | "Iteration time :", |
|
50 | iter_time, |
|
51 | "sec", |
|
52 | indent, |
|
53 | "[{} sec/iter]".format(round(secPerIter, 2)), |
|
54 | ) |
|
55 | print(" ") |
|
56 | ||
57 | def align_para_names(self, para_names): |
|
58 | str_lengths = [len(str_) for str_ in para_names] |
|
59 | max_length = max(str_lengths) |
|
60 | ||
61 | para_names_align = {} |
|
62 | for para_name, str_length in zip(para_names, str_lengths): |
|
63 | added_spaces = max_length - str_length |
|
64 | para_names_align[para_name] = " " * added_spaces |
|
65 | ||
66 | return para_names_align |
|
67 | ||
68 | def _print_results( |
|
69 | self, |
|
70 | experiment, |
|
71 | best_score, |
|
72 | best_para, |
|
73 | best_iter, |
|
74 | best_additional_results, |
|
75 | random_seed, |
|
76 | ): |
|
77 | print("\nResults: '{}'".format(experiment.__class__.__name__), " ") |
|
78 | if best_para is None: |
|
79 | print(indent, "Best score:", best_score, " ") |
|
80 | print(indent, "Best parameter set:", best_para, " ") |
|
81 | print(indent, "Best iteration:", best_iter, " ") |
|
82 | ||
83 | else: |
|
84 | print(indent, "Best score:", best_score, " ") |
|
85 | ||
86 | if best_additional_results: |
|
87 | print(indent, "Best additional results:") |
|
88 | add_results_names = list(best_additional_results.keys()) |
|
89 | add_results_names_align = self.align_para_names( |
|
90 | add_results_names |
|
91 | ) |
|
92 | ||
93 | for best_additional_result in best_additional_results.keys(): |
|
94 | added_spaces = add_results_names_align[ |
|
95 | best_additional_result |
|
96 | ] |
|
97 | print( |
|
98 | indent, |
|
99 | indent, |
|
100 | "'{}'".format(best_additional_result), |
|
101 | "{}:".format(added_spaces), |
|
102 | best_additional_results[best_additional_result], |
|
103 | " ", |
|
104 | ) |
|
105 | ||
106 | if best_para: |
|
107 | print(indent, "Best parameter set:") |
|
108 | para_names = list(best_para.keys()) |
|
109 | para_names_align = self.align_para_names(para_names) |
|
110 | ||
111 | for para_key in best_para.keys(): |
|
112 | added_spaces = para_names_align[para_key] |
|
113 | print( |
|
114 | indent, |
|
115 | indent, |
|
116 | "'{}'".format(para_key), |
|
117 | "{}:".format(added_spaces), |
|
118 | best_para[para_key], |
|
119 | " ", |
|
120 | ) |
|
121 | ||
122 | print(indent, "Best iteration:", best_iter, " ") |
|
123 | ||
124 | print(" ") |
|
125 | print(indent, "Random seed:", random_seed, " ") |
|
126 | print(" ") |
|
127 | ||
128 | def print_process(self, results, nth_process): |
|
129 | verbosity = self.verbosity |
|
130 | experiment = self.opt_pros[nth_process].experiment |
|
131 | search_space = self.opt_pros[nth_process].s_space.search_space |
|
132 | ||
133 | search_data = results["search_data"] |
|
134 | ||
135 | try: |
|
136 | best_sample = search_data.iloc[search_data["score"].idxmax()] |
|
137 | ||
138 | except TypeError: |
|
139 | logging.warning( |
|
140 | "Warning: Cannot index by location index with a non-integer key" |
|
141 | ) |
|
142 | ||
143 | else: |
|
144 | best_score = best_sample["score"] |
|
145 | best_values = best_sample[list(search_space.keys())] |
|
146 | best_para = dict(zip(list(search_space.keys()), best_values)) |
|
147 | best_additional_results_df = best_sample.drop( |
|
148 | ["score"] + list(search_space.keys()) |
|
149 | ) |
|
150 | best_additional_results = best_additional_results_df.to_dict() |
|
151 | ||
152 | best_iter = results["best_iter"] |
|
153 | eval_times = results["eval_times"] |
|
154 | iter_times = results["iter_times"] |
|
155 | random_seed = results["random_seed"] |
|
156 | ||
157 | n_iter = self.opt_pros[nth_process].n_iter |
|
158 | ||
159 | eval_time = np.array(eval_times).sum() |
|
160 | iter_time = np.array(iter_times).sum() |
|
161 | ||
162 | if "print_results" in verbosity: |
|
163 | self._print_results( |
|
164 | experiment, |
|
165 | best_score, |
|
166 | best_para, |
|
167 | best_iter, |
|
168 | best_additional_results, |
|
169 | random_seed, |
|
170 | ) |
|
171 | ||
172 | if "print_times" in verbosity: |
|
173 | self._print_times(eval_time, iter_time, n_iter) |
|
174 |
@@ 11-169 (lines=159) @@ | ||
8 | indent = " " |
|
9 | ||
10 | ||
11 | class PrintResults: |
|
12 | def __init__(self, opt_pros, verbosity): |
|
13 | self.opt_pros = opt_pros |
|
14 | self.verbosity = verbosity |
|
15 | ||
16 | def _print_times(self, eval_time, iter_time, n_iter): |
|
17 | opt_time = iter_time - eval_time |
|
18 | iterPerSec = n_iter / iter_time |
|
19 | ||
20 | print( |
|
21 | indent, |
|
22 | "Evaluation time :", |
|
23 | eval_time, |
|
24 | "sec", |
|
25 | indent, |
|
26 | "[{} %]".format(round(eval_time / iter_time * 100, 2)), |
|
27 | ) |
|
28 | print( |
|
29 | indent, |
|
30 | "Optimization time :", |
|
31 | opt_time, |
|
32 | "sec", |
|
33 | indent, |
|
34 | "[{} %]".format(round(opt_time / iter_time * 100, 2)), |
|
35 | ) |
|
36 | if iterPerSec >= 1: |
|
37 | print( |
|
38 | indent, |
|
39 | "Iteration time :", |
|
40 | iter_time, |
|
41 | "sec", |
|
42 | indent, |
|
43 | "[{} iter/sec]".format(round(iterPerSec, 2)), |
|
44 | ) |
|
45 | else: |
|
46 | secPerIter = iter_time / n_iter |
|
47 | print( |
|
48 | indent, |
|
49 | "Iteration time :", |
|
50 | iter_time, |
|
51 | "sec", |
|
52 | indent, |
|
53 | "[{} sec/iter]".format(round(secPerIter, 2)), |
|
54 | ) |
|
55 | print(" ") |
|
56 | ||
57 | def align_para_names(self, para_names): |
|
58 | str_lengths = [len(str_) for str_ in para_names] |
|
59 | max_length = max(str_lengths) |
|
60 | ||
61 | para_names_align = {} |
|
62 | for para_name, str_length in zip(para_names, str_lengths): |
|
63 | added_spaces = max_length - str_length |
|
64 | para_names_align[para_name] = " " * added_spaces |
|
65 | ||
66 | return para_names_align |
|
67 | ||
68 | def _print_results( |
|
69 | self, |
|
70 | objective_function, |
|
71 | best_score, |
|
72 | best_para, |
|
73 | best_iter, |
|
74 | best_additional_results, |
|
75 | random_seed, |
|
76 | ): |
|
77 | print("\nResults: '{}'".format(objective_function.__name__), " ") |
|
78 | if best_para is None: |
|
79 | print(indent, "Best score:", best_score, " ") |
|
80 | print(indent, "Best parameter set:", best_para, " ") |
|
81 | print(indent, "Best iteration:", best_iter, " ") |
|
82 | ||
83 | else: |
|
84 | print(indent, "Best score:", best_score, " ") |
|
85 | ||
86 | if best_additional_results: |
|
87 | print(indent, "Best additional results:") |
|
88 | add_results_names = list(best_additional_results.keys()) |
|
89 | add_results_names_align = self.align_para_names(add_results_names) |
|
90 | ||
91 | for best_additional_result in best_additional_results.keys(): |
|
92 | added_spaces = add_results_names_align[best_additional_result] |
|
93 | print( |
|
94 | indent, |
|
95 | indent, |
|
96 | "'{}'".format(best_additional_result), |
|
97 | "{}:".format(added_spaces), |
|
98 | best_additional_results[best_additional_result], |
|
99 | " ", |
|
100 | ) |
|
101 | ||
102 | if best_para: |
|
103 | print(indent, "Best parameter set:") |
|
104 | para_names = list(best_para.keys()) |
|
105 | para_names_align = self.align_para_names(para_names) |
|
106 | ||
107 | for para_key in best_para.keys(): |
|
108 | added_spaces = para_names_align[para_key] |
|
109 | print( |
|
110 | indent, |
|
111 | indent, |
|
112 | "'{}'".format(para_key), |
|
113 | "{}:".format(added_spaces), |
|
114 | best_para[para_key], |
|
115 | " ", |
|
116 | ) |
|
117 | ||
118 | print(indent, "Best iteration:", best_iter, " ") |
|
119 | ||
120 | print(" ") |
|
121 | print(indent, "Random seed:", random_seed, " ") |
|
122 | print(" ") |
|
123 | ||
124 | def print_process(self, results, nth_process): |
|
125 | verbosity = self.verbosity |
|
126 | objective_function = self.opt_pros[nth_process].objective_function |
|
127 | search_space = self.opt_pros[nth_process].s_space.search_space |
|
128 | ||
129 | search_data = results["search_data"] |
|
130 | ||
131 | try: |
|
132 | best_sample = search_data.iloc[search_data["score"].idxmax()] |
|
133 | ||
134 | except TypeError: |
|
135 | logging.warning( |
|
136 | "Warning: Cannot index by location index with a non-integer key" |
|
137 | ) |
|
138 | ||
139 | else: |
|
140 | best_score = best_sample["score"] |
|
141 | best_values = best_sample[list(search_space.keys())] |
|
142 | best_para = dict(zip(list(search_space.keys()), best_values)) |
|
143 | best_additional_results_df = best_sample.drop( |
|
144 | ["score"] + list(search_space.keys()) |
|
145 | ) |
|
146 | best_additional_results = best_additional_results_df.to_dict() |
|
147 | ||
148 | best_iter = results["best_iter"] |
|
149 | eval_times = results["eval_times"] |
|
150 | iter_times = results["iter_times"] |
|
151 | random_seed = results["random_seed"] |
|
152 | ||
153 | n_iter = self.opt_pros[nth_process].n_iter |
|
154 | ||
155 | eval_time = np.array(eval_times).sum() |
|
156 | iter_time = np.array(iter_times).sum() |
|
157 | ||
158 | if "print_results" in verbosity: |
|
159 | self._print_results( |
|
160 | objective_function, |
|
161 | best_score, |
|
162 | best_para, |
|
163 | best_iter, |
|
164 | best_additional_results, |
|
165 | random_seed, |
|
166 | ) |
|
167 | ||
168 | if "print_times" in verbosity: |
|
169 | self._print_times(eval_time, iter_time, n_iter) |
|
170 |