# python summarize.py mnist-search.txt # val_accuracy depth width activation regularization_function regularization_penalty dropout optimizer learning_rate batch_size tuner/epochs tuner/initial_epoch tuner/bracket tuner/round # 0.9850000143051147 3 512 swish l1_l2 1e-05 0.2 adam 0.01 512 32 11 2 2 # ... import re import sys hyperparameters = {} metric_name = None data = [] for line in open(sys.argv[1], 'r'): line = line.strip('\r\n') match = re.match(r'^(\S+)\s+\|(\S+)\s+\|(\S+)$', line) if match: hyperparameters[match.group(3)] = match.group(1) else: match = re.match(r'^(val_\S+): (\S+)$', line) if match: if metric_name is None: metric_name = match.group(1) data.append((match.group(2), hyperparameters)) hyperparameters = {} output = [] for k in data[-1][1].keys(): output.append(k) print(metric_name, '\t'.join(output), sep = '\t') for metric_value,dictionary in sorted(data, key = lambda x: x[0], reverse = True): output = [] for k in data[-1][1].keys(): if k in dictionary: output.append(dictionary[k]) else: output.append('') print(metric_value, '\t'.join(output), sep = '\t')