-
Notifications
You must be signed in to change notification settings - Fork 53
/
plot_results.py
62 lines (51 loc) · 1.79 KB
/
plot_results.py
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
import os
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
result_dir = 'results'
result_file1 = os.path.join(result_dir, 'history_smallcnn.txt')
# result_file2 = os.path.join(result_dir, 'history_extractor.txt')
result_file3 = os.path.join(result_dir, 'history_finetuning.txt')
def load_results(filename):
epoch_list = []
val_loss_list = []
val_acc_list = []
with open(filename) as fp:
fp.readline() # skip title
for line in fp:
line = line.rstrip()
cols = line.split('\t')
assert len(cols) == 5
epoch = int(cols[0])
loss = float(cols[1])
acc = float(cols[2])
val_loss = float(cols[3])
val_acc = float(cols[4])
epoch_list.append(epoch)
val_loss_list.append(val_loss)
val_acc_list.append(val_acc)
return epoch_list, val_loss_list, val_acc_list
epoch1, val_loss1, val_acc1 = load_results(result_file1)
# epoch2, val_loss2, val_acc2 = load_results(result_file2)
epoch3, val_loss3, val_acc3 = load_results(result_file3)
plt.figure()
plt.plot(epoch1, val_loss1, 'b-', marker='.', label='smallcnn')
# plt.plot(epoch2, val_loss2, 'r-', marker='.', label='extractor')
plt.plot(epoch3, val_loss3, 'g-', marker='.', label='finetuning')
plt.grid()
plt.legend()
plt.xlabel('epoch')
plt.ylabel('val_loss')
# plt.show()
plt.savefig(os.path.join(result_dir, 'val_loss.png'))
plt.figure()
plt.plot(epoch1, val_acc1, 'b-', marker='.', label='smallcnn')
# plt.plot(epoch2, val_acc2, 'r-', marker='.', label='extractor')
plt.plot(epoch3, val_acc3, 'g-', marker='.', label='finetuning')
plt.grid()
plt.legend(loc='lower right')
plt.xlabel('epoch')
plt.ylabel('val_acc')
plt.ylim((0, 1))
# plt.show()
plt.savefig(os.path.join(result_dir, 'val_acc.png'))