-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlearningcurve.py
More file actions
109 lines (99 loc) · 4.45 KB
/
learningcurve.py
File metadata and controls
109 lines (99 loc) · 4.45 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
107
108
109
import matplotlib
import matplotlib.pyplot as plt
fig, ax = plt.subplots(3,2)
fig.suptitle('Learning Curves - Custom model and Transfer learning with Inception V3', size='large')
cols = ['{}'.format(col) for col in ["Custom Model","Transfer learning"]]
rows = ['{}'.format(row) for row in ['Loss', 'Mean squared error', 'Classification accuracy']]
for index in range(3):
trainingloss=[]
val_loss = []
epoch = []
with open("plotable1") as fin:
for ind,line in enumerate(fin):
#if ind<206:
#epoch.append(ind+1)
#print(line.split(":"))
if(index==0):
try:
#epoch.append(ind+1) #5,10 MSE 1,6 Loss 4,9 Cat acc
trainingloss.append(float(line.split(":")[1].split(" ")[1]))
val_loss.append(float(line.split(":")[6].split(" ")[1]))
epoch.append(ind+1)
except:
pass
elif(index==1):
try:
#epoch.append(ind+1) #5,10 MSE 1,6 Loss 4,9 Cat acc
trainingloss.append(float(line.split(":")[5].split(" ")[1]))
val_loss.append(float(line.split(":")[10].split(" ")[1]))
epoch.append(ind+1)
except:
pass
elif(index==2):
try:
#epoch.append(ind+1) #5,10 MSE 1,6 Loss 4,9 Cat acc
trainingloss.append(float(line.split(":")[4].split(" ")[1]))
val_loss.append(float(line.split(":")[9].split(" ")[1]))
epoch.append(ind+1)
except:
pass
print (len(epoch),len(trainingloss),len(val_loss))
if(index==0):
ax[index,0].plot(epoch, trainingloss, label='train_loss')
ax[index,0].plot(epoch,val_loss,label='val_loss')
elif(index==1):
ax[index,0].plot(epoch, trainingloss, label='train_error')
ax[index,0].plot(epoch,val_loss,label='val_error')
elif(index==2):
ax[index,0].plot(epoch, trainingloss, label='train_acc')
ax[index,0].plot(epoch,val_loss,label='val_acc')
ax[index,0].legend()
trainingloss=[]
val_loss = []
epoch = []
with open("plotable2") as fin:
for ind,line in enumerate(fin):
if ind<206:
#epoch.append(ind+1)
#print(line.split(":"))
if(index==0):
try:
#epoch.append(ind+1) #5,10 MSE 1,6 Loss 4,9 Cat acc
trainingloss.append(float(line.split(":")[1].split(" ")[1]))
val_loss.append(float(line.split(":")[6].split(" ")[1]))
epoch.append(ind+1)
except:
pass
elif(index==1):
try:
#epoch.append(ind+1) #5,10 MSE 1,6 Loss 4,9 Cat acc
trainingloss.append(float(line.split(":")[5].split(" ")[1]))
val_loss.append(float(line.split(":")[10].split(" ")[1]))
epoch.append(ind+1)
except:
pass
elif(index==2):
try:
#epoch.append(ind+1) #5,10 MSE 1,6 Loss 4,9 Cat acc
trainingloss.append(float(line.split(":")[4].split(" ")[1]))
val_loss.append(float(line.split(":")[9].split(" ")[1]))
epoch.append(ind+1)
except:
pass
if(index==0):
ax[index,1].plot(epoch, trainingloss, label='train_loss')
ax[index,1].plot(epoch,val_loss,label='val_loss')
elif(index==1):
ax[index,1].plot(epoch, trainingloss, label='train_error')
ax[index,1].plot(epoch,val_loss,label='val_error')
elif(index==2):
ax[index,1].plot(epoch, trainingloss, label='train_acc')
ax[index,1].plot(epoch,val_loss,label='val_acc')
ax[index,1].legend()
for axx, col in zip(ax[0], cols):
axx.set_title(col, size='large')
for axx, row in zip(ax[:,0], rows):
axx.set_ylabel(row, rotation=90)
fig.tight_layout()
fig.set_size_inches(10.5, 18.5)
fig.savefig("Learning_curve.jpg")