Skip to content
Snippets Groups Projects
Commit 279e7397 authored by Tizian Wenzel's avatar Tizian Wenzel
Browse files

Analysis of timings added.

parent 1f81118b
Branches
No related tags found
No related merge requests found
......@@ -30,10 +30,12 @@ path_for_results = os.path.abspath(os.path.join(os.path.dirname(__file__), 'resu
dic_singular_vals = {}
dic_accuracy_deep = {}
dic_accuracy_beststd = {}
dic_timings = {}
for name_dataset in list_datasets:
dic_singular_vals[name_dataset] = {}
dic_accuracy_deep[name_dataset] = {}
dic_accuracy_beststd[name_dataset] = {}
dic_timings[name_dataset] = {'list_timings_1L': [], 'list_timings_2L': []}
## Read all file, perform computations, save results
......@@ -57,10 +59,13 @@ for idx_file, file in enumerate(os.listdir(path_for_results)):
dic_singular_vals[name_dataset][idx_rerun] = ratio
# Compute and store accuracies
# Compute and store accuracies as well as timings
dic_accuracy_deep[name_dataset][idx_rerun] = results['array_test_rmse_deep']
dic_accuracy_beststd[name_dataset][idx_rerun] = np.min(results['array_test_rmse_cv'], axis=0)
dic_timings[name_dataset]['list_timings_1L'].append(np.array(results['list_timings_1L']))
dic_timings[name_dataset]['list_timings_2L'].append(np.array(results['list_timings_2L']))
## Calculate ranking where 2L performs best to worst: Use the average mean of improvement for this
array_ratio = np.zeros(len(list_datasets))
......@@ -78,10 +83,28 @@ indices_sorted = np.argsort(array_ratio)
## Print the calculated ratio: This shows, when 2L is superior
print('List indicating when two-layered kernel optimization is beneficial:')
for idx_sorted in indices_sorted:
print('{:20}'.format(list_datasets[idx_sorted]), np.round(array_ratio[idx_sorted], 5))
## Print timing numbers
for idx_dataset, name_dataset in enumerate(list_datasets):
array_timings_1L = np.stack(dic_timings[name_dataset]['list_timings_1L'])
array_timings_2L = np.stack(dic_timings[name_dataset]['list_timings_2L'])
t_mean_1L = np.mean(array_timings_1L)
t_std_1L = np.std(array_timings_1L)
t_mean_2L = np.mean(array_timings_2L, axis=0)
t_std_2L = np.std(array_timings_2L, axis=0)
print('1L runtime: {:6.2f} +- {:5.2f}s. '.format(t_mean_1L, t_std_1L)
+ '2L optim: {:6.2f} +- {:5.2f}. '.format(t_mean_2L[0, 0], t_std_2L[0, 0])
+ '2L greedy: {:6.2f} +- {:5.2f}. '.format(t_mean_2L[0, 1], t_std_2L[0, 1])
+ '(' + name_dataset + ')')
## Visualization of the ratio of singular values compared to sum of all singular values
matplotlib.use('TKAgg')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment