-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathplot_metrics.py
More file actions
executable file
·106 lines (82 loc) · 3.7 KB
/
plot_metrics.py
File metadata and controls
executable file
·106 lines (82 loc) · 3.7 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
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import json
import statistics as stats
matplotlib.use('TkAgg')
matplotlib.rcParams['figure.figsize'] = (22, 10)
# This file can be used to load a written training record and plot as needed.
with open('training_record.json') as jp:
data = json.load(jp)
epochs = 15
plt.rc('text', usetex=True)
plt.rc('font', family='serif')
plt.ylim(50, 100)
plt.subplot(2,4,1)
plt.ylabel('Accuracy', size=8)
plt.xlabel('Epoch', size=8)
plt.title('Training accuracy', size=10)
plt.plot(range(epochs), data['training_accuracy'], "-m", linewidth=0.9)
plt.grid()
plt.subplot(2,4,2)
plt.ylabel('Loss', size=8)
plt.xlabel('Epoch', size=8)
plt.title('Training loss', size=10)
plt.plot(range(epochs), data['training_loss'], "-c",linewidth=0.9)
plt.grid()
plt.subplot(2,4,3)
plt.ylabel('Accuracy', size=8)
plt.xlabel('Epoch', size=8)
plt.title('Validation accuracy', size=10)
plt.plot(range(epochs), data['validation_accuracy'][::3], "-r", linewidth=0.9)
plt.grid()
plt.subplot(2,4,4)
plt.ylabel('Loss', size=8)
plt.xlabel('Epoch', size=8)
plt.title('Validation loss', size=10)
plt.plot(range(epochs), data['validation_loss'][::3], "-g", linewidth=0.9)
plt.grid()
plt.subplot(2,4,5)
plt.ylabel('\%', size=8)
plt.xlabel('Epoch', size=8)
plt.title('Validity (\%)', size=10)
plt.grid()
c1 = data['performance_metrics']['validity']['0.4']
c2 = data['performance_metrics']['validity']['0.5']
c3 = data['performance_metrics']['validity']['0.6']
mean = [stats.mean([c1[i], c2[i], c3[i]]) for i in range(len(c1))]
plt.plot(range(epochs), data['performance_metrics']['validity']['0.4'], "-r", linewidth=0.75, label='$C > 0.4$')
plt.plot(range(epochs), data['performance_metrics']['validity']['0.5'], "-g", linewidth=0.75, label='$C > 0.5$')
plt.plot(range(epochs), data['performance_metrics']['validity']['0.6'], "-b", linewidth=0.75, label='$C > 0.6$')
plt.plot(range(epochs), mean, "-.k", linewidth=0.75, label='Mean')
plt.legend(loc="upper right")
plt.subplot(2,4,6)
plt.ylabel('\%', size=8)
plt.xlabel('Epoch', size=8)
plt.title('Optimality (\%)', size=10)
plt.grid()
c1 = data['performance_metrics']['optimality']['0.4']
c2 = data['performance_metrics']['optimality']['0.5']
c3 = data['performance_metrics']['optimality']['0.6']
mean = [stats.mean([c1[i], c2[i], c3[i]]) for i in range(len(c1))]
plt.plot(range(epochs), data['performance_metrics']['optimality']['0.4'], "-r", linewidth=0.75, label='$C > 0.4$')
plt.plot(range(epochs), data['performance_metrics']['optimality']['0.5'], "-g", linewidth=0.75, label='$C > 0.5$')
plt.plot(range(epochs), data['performance_metrics']['optimality']['0.6'], "-b", linewidth=0.75, label='$C > 0.6$')
plt.plot(range(epochs), mean, "-.k", linewidth=0.75, label='Mean')
plt.legend(loc="upper right")
plt.subplot(2,4,7)
plt.ylabel('\%', size=8)
plt.xlabel('Epoch', size=8)
plt.title('Search space reduction (\%)', size=10)
plt.grid()
c1 = data['performance_metrics']['search_space']['0.4']
c2 = data['performance_metrics']['search_space']['0.5']
c3 = data['performance_metrics']['search_space']['0.6']
mean = [stats.mean([c1[i], c2[i], c3[i]]) for i in range(len(c1))]
plt.plot(range(epochs), data['performance_metrics']['search_space']['0.4'], "-r", linewidth=0.75, label='$C > 0.4$')
plt.plot(range(epochs), data['performance_metrics']['search_space']['0.5'], "-g", linewidth=0.75, label='$C > 0.5$')
plt.plot(range(epochs), data['performance_metrics']['search_space']['0.6'], "-b", linewidth=0.75, label='$C > 0.6$')
plt.plot(range(epochs), mean, "-.k", linewidth=0.75, label='Mean')
plt.legend(loc="upper right")
# plt.savefig('PATHGEN_NET/training_graphs.png')
plt.show()