Switch to unified view

a b/Region/visualize_regiontrain.py
1
#!/usr/bin/env python3
2
# -*- coding: utf-8 -*-
3
"""
4
Created on Fri Nov  9 14:43:07 2018
5
6
@author: Josefine
7
"""
8
9
import numpy as np
10
import sys
11
import os
12
sys.path.append(os.path.join('.', '..')) 
13
import matplotlib.pyplot as plt
14
import matplotlib
15
import matplotlib.pylab as pylab
16
%matplotlib inline
17
#
18
a = np.load('Results/region_performance.npz')
19
dice2 = a['dice']
20
acc = a['acc']
21
spec = a['spec']
22
sens = a['sens']
23
rates = a['rates']
24
25
#params = {'legend.fontsize': 'x-large',
26
#          'figure.figsize': (15, 5),
27
#         'axes.labelsize': 'x-large',
28
#         'axes.titlesize':'x-large',
29
#         'xtick.labelsize':'x-large',
30
#         'ytick.labelsize':'x-large'}
31
#pylab.rcParams.update(params)
32
33
def epoch_average(a,size):
34
    new_a = []
35
    i = 0
36
    while i < len(a):
37
        val = np.mean(a[i:i+size])
38
        new_a.append(val)
39
        i+=size
40
    return new_a
41
42
dim = 128
43
44
# Load validation curves
45
n_test = int(2*dim)
46
acc_cor = epoch_average(np.load('Results/train_hist/region/valid_acc_cor.npy'),n_test)
47
loss_cor = epoch_average(np.load('Results/train_hist/region/valid_loss_cor.npy'),n_test)
48
acc_sag = epoch_average(np.load('Results/train_hist/region/valid_acc_sag.npy'),n_test)
49
loss_sag = epoch_average(np.load('Results/train_hist/region/valid_loss_sag.npy'),n_test)
50
acc_axial = epoch_average(np.load('Results/train_hist/region/valid_acc_axial.npy'),n_test)
51
loss_axial = epoch_average(np.load('Results/train_hist/region/valid_loss_axial.npy'),n_test)
52
53
acc_axial_nodrop = epoch_average(np.load('Results/train_hist/region_nodrop/valid_acc_axial.npy'),n_test)
54
loss_axial_nodrop = epoch_average(np.load('Results/train_hist/region_nodrop/valid_loss_axial.npy'),n_test)
55
acc_sag_nodrop = epoch_average(np.load('Results/train_hist/region_nodrop/valid_acc_sag.npy'),n_test)
56
loss_sag_nodrop = epoch_average(np.load('Results/train_hist/region_nodrop/valid_loss_sag.npy'),n_test)
57
acc_cor_nodrop = epoch_average(np.load('Results/train_hist/region_nodrop/valid_acc_cor.npy'),n_test)
58
loss_cor_nodrop = epoch_average(np.load('Results/train_hist/region_nodrop/valid_loss_cor.npy'),n_test)
59
60
acc_cor_noaug = epoch_average(np.load('Results/train_hist/region_noaug/valid_acc_cor.npy'),n_test)
61
loss_cor_noaug = epoch_average(np.load('Results/train_hist/region_noaug/valid_loss_cor.npy'),n_test)
62
acc_sag_noaug = epoch_average(np.load('Results/train_hist/region_noaug/valid_acc_sag.npy'),n_test)
63
loss_sag_noaug = epoch_average(np.load('Results/train_hist/region_noaug/valid_loss_sag.npy'),n_test)
64
acc_axial_noaug = epoch_average(np.load('Results/train_hist/region_noaug/valid_acc_axial.npy'),n_test)
65
loss_axial_noaug = epoch_average(np.load('Results/train_hist/region_noaug/valid_loss_axial.npy'),n_test)
66
67
acc_axial_nothing = epoch_average(np.load('Results/train_hist/region_nothing/valid_acc_axial.npy'),n_test)
68
loss_axial_nothing = epoch_average(np.load('Results/train_hist/region_nothing/valid_loss_axial.npy'),n_test)
69
acc_sag_nothing = epoch_average(np.load('Results/train_hist/region_nothing/valid_acc_sag.npy'),n_test)
70
loss_sag_nothing = epoch_average(np.load('Results/train_hist/region_nothing/valid_loss_sag.npy'),n_test)
71
acc_cor_nothing = epoch_average(np.load('Results/train_hist/region_nothing/valid_acc_cor.npy'),n_test)
72
loss_cor_nothing = epoch_average(np.load('Results/train_hist/region_nothing/valid_loss_cor.npy'),n_test)
73
74
plt.rcParams.update({'font.size': 13})
75
76
plt.figure(figsize=(8*4, 8*3))
77
plt.subplot(3,4,3)
78
matplotlib.ticker.MultipleLocator(0.01)
79
plt.plot(acc_cor, label = 'Both')
80
plt.plot(acc_cor_noaug, label = 'Only drop out')
81
plt.plot(acc_cor_nodrop, label = 'Only augmentation')
82
plt.plot(acc_cor_nothing, label = 'Nothing')
83
plt.legend(loc='lower right')
84
plt.xlabel('Epochs')
85
plt.ylabel('Accuracy')
86
axes = plt.gca()
87
axes.set_ylim([0.95,1])
88
plt.title('Validation accuracy coronal network')
89
plt.subplot(3,4,4)
90
plt.title('Validation loss coronal network')
91
plt.plot(loss_cor, label = 'Both')
92
plt.plot(loss_cor_noaug, label = 'Only drop out')
93
plt.plot(loss_cor_nodrop, label = 'Only augmentation')
94
plt.plot(loss_cor_nothing, label = 'Nothing')
95
plt.legend(loc='upper right')
96
axes = plt.gca()
97
axes.set_ylim([0.02,0.19])
98
plt.xlabel('Epochs')
99
plt.ylabel('Loss')
100
101
plt.subplot(3,4,7)
102
plt.plot(acc_sag, label = 'Both')
103
plt.plot(acc_sag_noaug, label = 'Only drop out')
104
plt.plot(acc_sag_nodrop, label = 'Only augmentation')
105
plt.plot(acc_sag_nothing, label = 'Nothing')
106
axes = plt.gca()
107
plt.xlabel('Epochs')
108
plt.ylabel('Accuracy')
109
axes.set_ylim([0.95,1])
110
plt.legend(loc='lower right')
111
plt.title('Validation accuracy sagittal network')
112
plt.subplot(3,4,8)
113
plt.title('Validation loss sigittal network')
114
plt.plot(loss_sag, label = 'Both')
115
plt.plot(loss_sag_noaug, label = 'Only drop out')
116
plt.plot(loss_sag_nodrop, label = 'Only augmentation')
117
plt.plot(loss_sag_nothing, label = 'Nothing')
118
plt.legend(loc='upper right')
119
plt.xlabel('Epochs')
120
plt.ylabel('Loss')
121
axes = plt.gca()
122
axes.set_ylim([0.02,0.19])
123
124
plt.subplot(3,4,11)
125
plt.plot(acc_axial, label = 'Both')
126
plt.plot(acc_axial_noaug, label = 'Only drop out')
127
plt.plot(acc_axial_nodrop, label = 'Only augmentation')
128
plt.plot(acc_axial_nothing, label = 'Nothing')
129
axes = plt.gca()
130
plt.xlabel('Epochs')
131
plt.ylabel('Accuracy')
132
axes.set_ylim([0.95,1])
133
plt.title('Validation accuracy axial network')
134
plt.legend(loc='lower right')
135
plt.subplot(3,4,12)
136
plt.plot(loss_axial, label = 'Both')
137
plt.plot(loss_axial_noaug, label = 'Only drop out')
138
plt.plot(loss_axial_nodrop, label = 'Only augmentation')
139
plt.plot(loss_axial_nothing, label = 'Nothing')
140
plt.title('Validation loss axial network')
141
plt.xlabel('Epochs')
142
plt.ylabel('Loss')
143
plt.legend(loc='upper right')
144
axes = plt.gca()
145
axes.set_ylim([0.02,0.19])
146
147
148
#% Load training curves
149
n_test = int(13*6*dim)
150
acc_cor = epoch_average(np.load('Results/train_hist/region/train_acc_cor.npy'),n_test)
151
loss_cor = epoch_average(np.load('Results/train_hist/region/train_loss_cor.npy'),n_test)
152
acc_sag = epoch_average(np.load('Results/train_hist/region/train_acc_sag.npy'),n_test)
153
loss_sag = epoch_average(np.load('Results/train_hist/region/train_loss_sag.npy'),n_test)
154
acc_axial = epoch_average(np.load('Results/train_hist/region/train_acc_axial.npy'),n_test)
155
loss_axial = epoch_average(np.load('Results/train_hist/region/train_loss_axial.npy'),n_test)
156
157
n_test = int(13*6*dim)
158
acc_axial_nodrop = epoch_average(np.load('Results/train_hist/region_nodrop/train_acc_axial.npy'),n_test)
159
loss_axial_nodrop = epoch_average(np.load('Results/train_hist/region_nodrop/train_loss_axial.npy'),n_test)
160
acc_sag_nodrop = epoch_average(np.load('Results/train_hist/region_nodrop/train_acc_sag.npy'),n_test)
161
loss_sag_nodrop = epoch_average(np.load('Results/train_hist/region_nodrop/train_loss_sag.npy'),n_test)
162
acc_cor_nodrop = epoch_average(np.load('Results/train_hist/region_nodrop/train_acc_cor.npy'),n_test)
163
loss_cor_nodrop = epoch_average(np.load('Results/train_hist/region_nodrop/train_loss_cor.npy'),n_test)
164
165
n_test = int(13*dim)
166
acc_cor_noaug = epoch_average(np.load('Results/train_hist/region_noaug/train_acc_cor.npy'),n_test)
167
loss_cor_noaug = epoch_average(np.load('Results/train_hist/region_noaug/train_loss_cor.npy'),n_test)
168
acc_sag_noaug = epoch_average(np.load('Results/train_hist/region_noaug/train_acc_sag.npy'),n_test)
169
loss_sag_noaug = epoch_average(np.load('Results/train_hist/region_noaug/train_loss_sag.npy'),n_test)
170
acc_axial_noaug = epoch_average(np.load('Results/train_hist/region_noaug/train_acc_axial.npy'),n_test)
171
loss_axial_noaug = epoch_average(np.load('Results/train_hist/region_noaug/train_loss_axial.npy'),n_test)
172
173
acc_axial_nothing = epoch_average(np.load('Results/train_hist/region_nothing/train_acc_axial.npy'),n_test)
174
loss_axial_nothing = epoch_average(np.load('Results/train_hist/region_nothing/train_loss_axial.npy'),n_test)
175
acc_sag_nothing = epoch_average(np.load('Results/train_hist/region_nothing/train_acc_sag.npy'),n_test)
176
loss_sag_nothing = epoch_average(np.load('Results/train_hist/region_nothing/train_loss_sag.npy'),n_test)
177
acc_cor_nothing = epoch_average(np.load('Results/train_hist/region_nothing/train_acc_cor.npy'),n_test)
178
loss_cor_nothing = epoch_average(np.load('Results/train_hist/region_nothing/train_loss_cor.npy'),n_test)
179
180
plt.subplot(3,4,1)
181
plt.plot(acc_cor, label = 'Both')
182
plt.plot(acc_cor_noaug, label = 'Only drop out')
183
plt.plot(acc_cor_nodrop, label = 'Only augmentation')
184
plt.plot(acc_cor_nothing, label = 'Nothing')
185
axes = plt.gca()
186
axes.set_ylim([0.95,1])
187
plt.legend(loc='lower right')
188
plt.xlabel('Epochs')
189
plt.ylabel('Accuracy')
190
plt.title('Train accuracy coronal network')
191
plt.subplot(3,4,2)
192
plt.title('Train loss coronal network')
193
plt.plot(loss_cor, label = 'Both')
194
plt.plot(loss_cor_noaug, label = 'Only drop out')
195
plt.plot(loss_cor_nodrop, label = 'Only augmentation')
196
plt.plot(loss_cor_nothing, label = 'Nothing')
197
plt.legend(loc='upper right')
198
plt.xlabel('Epochs')
199
plt.ylabel('Loss')
200
axes = plt.gca()
201
axes.set_ylim([0,0.05])
202
203
plt.subplot(3,4,5)
204
plt.plot(acc_sag, label = 'Both')
205
plt.plot(acc_sag_noaug, label = 'Only drop out')
206
plt.plot(acc_sag_nodrop, label = 'Only augmentation')
207
plt.plot(acc_sag_nothing, label = 'Nothing')
208
plt.legend(loc='lower right')
209
axes = plt.gca()
210
axes.set_ylim([0.95,1])
211
plt.xlabel('Epochs')
212
plt.ylabel('Accuracy')
213
plt.title('Train accuracy sagittal network')
214
plt.subplot(3,4,6)
215
plt.title('Train loss sigittal network')
216
plt.plot(loss_sag, label = 'Both')
217
plt.plot(loss_sag_noaug, label = 'Only drop out')
218
plt.plot(loss_sag_nodrop, label = 'Only augmentation')
219
plt.plot(loss_sag_nothing, label = 'Nothing')
220
plt.legend(loc='upper right')
221
plt.xlabel('Epochs')
222
plt.ylabel('Loss')
223
axes = plt.gca()
224
axes.set_ylim([0,0.05])
225
226
plt.subplot(3,4,9)
227
plt.plot(acc_axial, label = 'Both')
228
plt.plot(acc_axial_noaug, label = 'Only drop out')
229
plt.plot(acc_axial_nodrop, label = 'Only augmentation')
230
plt.plot(acc_axial_nothing, label = 'Nothing')
231
plt.legend(loc='lower right')
232
axes = plt.gca()
233
axes.set_ylim([0.95,1])
234
plt.xlabel('Epochs')
235
plt.ylabel('Accuracy')
236
plt.title('Train accuracy axial network')
237
plt.subplot(3,4,10)
238
plt.plot(loss_axial, label = 'Both')
239
plt.plot(loss_axial_noaug, label = 'Only drop out')
240
plt.plot(loss_axial_nodrop, label = 'Only augmentation')
241
plt.plot(loss_axial_nothing, label = 'Nothing')
242
plt.title('Train loss axial network')
243
plt.legend(loc='upper right')
244
plt.xlabel('Epochs')
245
plt.ylabel('Loss')
246
axes = plt.gca()
247
axes.set_ylim([0,0.05])
248