|
a |
|
b/Experimentations/Exp14-Label smoothing and noisy ground truth.ipynb |
|
|
1 |
{ |
|
|
2 |
"cells": [ |
|
|
3 |
{ |
|
|
4 |
"cell_type": "markdown", |
|
|
5 |
"metadata": {}, |
|
|
6 |
"source": [ |
|
|
7 |
"# 14. Experimenting with label smoothing and CEL to deal with noisy ground truth\n", |
|
|
8 |
"We tried to train a network with label smoothing, which is generally done when the ground truth is noisy or involves a lot of subjectivity. The practice of label smoothing is tried for classification problem but never for a segmentation problem. We tried it for segmentation problem. It didn't seem to work well and hence training was stopped mid-way as the dice-scores were no where close to acceptable levels. As a future work, we would like to engineer a way to segment images based on noisy ground truth" |
|
|
9 |
] |
|
|
10 |
}, |
|
|
11 |
{ |
|
|
12 |
"cell_type": "code", |
|
|
13 |
"execution_count": 1, |
|
|
14 |
"metadata": { |
|
|
15 |
"collapsed": true |
|
|
16 |
}, |
|
|
17 |
"outputs": [], |
|
|
18 |
"source": [ |
|
|
19 |
"import torch\n", |
|
|
20 |
"import torch.nn as nn\n", |
|
|
21 |
"from torch.autograd import Variable\n", |
|
|
22 |
"import torch.optim as optim\n", |
|
|
23 |
"import torchvision\n", |
|
|
24 |
"from torchvision import datasets, models\n", |
|
|
25 |
"from torchvision import transforms as T\n", |
|
|
26 |
"from torch.utils.data import DataLoader, Dataset\n", |
|
|
27 |
"import numpy as np\n", |
|
|
28 |
"import matplotlib.pyplot as plt\n", |
|
|
29 |
"import os\n", |
|
|
30 |
"import time\n", |
|
|
31 |
"import pandas as pd\n", |
|
|
32 |
"from skimage import io, transform\n", |
|
|
33 |
"import matplotlib.image as mpimg\n", |
|
|
34 |
"from PIL import Image\n", |
|
|
35 |
"from sklearn.metrics import roc_auc_score\n", |
|
|
36 |
"import torch.nn.functional as F\n", |
|
|
37 |
"import scipy\n", |
|
|
38 |
"import random\n", |
|
|
39 |
"import pickle\n", |
|
|
40 |
"import scipy.io as sio\n", |
|
|
41 |
"import itertools\n", |
|
|
42 |
"from scipy.ndimage.interpolation import shift\n", |
|
|
43 |
"import copy\n", |
|
|
44 |
"import warnings\n", |
|
|
45 |
"warnings.filterwarnings(\"ignore\")\n", |
|
|
46 |
"%matplotlib inline\n", |
|
|
47 |
"plt.ion()" |
|
|
48 |
] |
|
|
49 |
}, |
|
|
50 |
{ |
|
|
51 |
"cell_type": "markdown", |
|
|
52 |
"metadata": {}, |
|
|
53 |
"source": [ |
|
|
54 |
"# Import Dataloader Class and other utilities" |
|
|
55 |
] |
|
|
56 |
}, |
|
|
57 |
{ |
|
|
58 |
"cell_type": "code", |
|
|
59 |
"execution_count": 2, |
|
|
60 |
"metadata": { |
|
|
61 |
"collapsed": true |
|
|
62 |
}, |
|
|
63 |
"outputs": [], |
|
|
64 |
"source": [ |
|
|
65 |
"from dataloader_2d import *\n", |
|
|
66 |
"from dataloader_3d import *" |
|
|
67 |
] |
|
|
68 |
}, |
|
|
69 |
{ |
|
|
70 |
"cell_type": "markdown", |
|
|
71 |
"metadata": {}, |
|
|
72 |
"source": [ |
|
|
73 |
"# Build Data loader objects" |
|
|
74 |
] |
|
|
75 |
}, |
|
|
76 |
{ |
|
|
77 |
"cell_type": "code", |
|
|
78 |
"execution_count": 3, |
|
|
79 |
"metadata": { |
|
|
80 |
"collapsed": true |
|
|
81 |
}, |
|
|
82 |
"outputs": [], |
|
|
83 |
"source": [ |
|
|
84 |
"train_path = '/beegfs/ark576/new_knee_data/train'\n", |
|
|
85 |
"val_path = '/beegfs/ark576/new_knee_data/val'\n", |
|
|
86 |
"test_path = '/beegfs/ark576/new_knee_data/test'\n", |
|
|
87 |
"\n", |
|
|
88 |
"train_file_names = sorted(pickle.load(open(train_path + '/train_file_names.p','rb')))\n", |
|
|
89 |
"val_file_names = sorted(pickle.load(open(val_path + '/val_file_names.p','rb')))\n", |
|
|
90 |
"test_file_names = sorted(pickle.load(open(test_path + '/test_file_names.p','rb')))\n", |
|
|
91 |
"\n", |
|
|
92 |
"transformed_dataset = {'train': KneeMRIDataset(train_path,train_file_names, train_data= True, flipping=False, normalize= True),\n", |
|
|
93 |
" 'validate': KneeMRIDataset(val_path,val_file_names, normalize= True),\n", |
|
|
94 |
" 'test': KneeMRIDataset(test_path,test_file_names, normalize= True)\n", |
|
|
95 |
" }\n", |
|
|
96 |
"\n", |
|
|
97 |
"dataloader = {x: DataLoader(transformed_dataset[x], batch_size=5,\n", |
|
|
98 |
" shuffle=True, num_workers=0) for x in ['train', 'validate','test']}\n", |
|
|
99 |
"data_sizes ={x: len(transformed_dataset[x]) for x in ['train', 'validate','test']}" |
|
|
100 |
] |
|
|
101 |
}, |
|
|
102 |
{ |
|
|
103 |
"cell_type": "code", |
|
|
104 |
"execution_count": 4, |
|
|
105 |
"metadata": { |
|
|
106 |
"collapsed": true |
|
|
107 |
}, |
|
|
108 |
"outputs": [], |
|
|
109 |
"source": [ |
|
|
110 |
"im, seg_F, seg_P, seg_T,_ = next(iter(dataloader['train']))" |
|
|
111 |
] |
|
|
112 |
}, |
|
|
113 |
{ |
|
|
114 |
"cell_type": "markdown", |
|
|
115 |
"metadata": {}, |
|
|
116 |
"source": [ |
|
|
117 |
"# Find Max and min values of Images (all 7 contrasts), of Fractional Anisotropy maps and of Mean Diffusivity maps for image normalization" |
|
|
118 |
] |
|
|
119 |
}, |
|
|
120 |
{ |
|
|
121 |
"cell_type": "code", |
|
|
122 |
"execution_count": 5, |
|
|
123 |
"metadata": { |
|
|
124 |
"collapsed": true |
|
|
125 |
}, |
|
|
126 |
"outputs": [], |
|
|
127 |
"source": [ |
|
|
128 |
"min_fa = np.inf\n", |
|
|
129 |
"min_md = np.inf\n", |
|
|
130 |
"min_image = np.inf\n", |
|
|
131 |
"max_fa = 0\n", |
|
|
132 |
"max_md = 0\n", |
|
|
133 |
"max_image = 0\n", |
|
|
134 |
"for data in dataloader['train']:\n", |
|
|
135 |
" if min_fa > torch.min(data[0][:,7,:,:]):\n", |
|
|
136 |
" min_fa = torch.min(data[0][:,7,:,:])\n", |
|
|
137 |
" if min_md > torch.min(data[0][:,8,:,:]):\n", |
|
|
138 |
" min_md = torch.min(data[0][:,8:,:])\n", |
|
|
139 |
" if min_image > torch.min(data[0][:,:7,:,:]):\n", |
|
|
140 |
" min_image = torch.min(data[0][:,:7,:,:])\n", |
|
|
141 |
" if max_fa < torch.max(data[0][:,7,:,:]):\n", |
|
|
142 |
" max_fa = torch.max(data[0][:,7,:,:])\n", |
|
|
143 |
" if max_md < torch.max(data[0][:,8,:,:]):\n", |
|
|
144 |
" max_md = torch.max(data[0][:,8,:,:])\n", |
|
|
145 |
" if max_image < torch.max(data[0][:,:7,:,:]):\n", |
|
|
146 |
" max_image = torch.max(data[0][:,:7,:,:])\n", |
|
|
147 |
"norm_values = (max_image, min_image, max_fa, min_fa, max_md, min_md)" |
|
|
148 |
] |
|
|
149 |
}, |
|
|
150 |
{ |
|
|
151 |
"cell_type": "markdown", |
|
|
152 |
"metadata": {}, |
|
|
153 |
"source": [ |
|
|
154 |
"# Import Models" |
|
|
155 |
] |
|
|
156 |
}, |
|
|
157 |
{ |
|
|
158 |
"cell_type": "code", |
|
|
159 |
"execution_count": 6, |
|
|
160 |
"metadata": { |
|
|
161 |
"collapsed": true |
|
|
162 |
}, |
|
|
163 |
"outputs": [], |
|
|
164 |
"source": [ |
|
|
165 |
"from unet_3d import *\n", |
|
|
166 |
"from unet_basic_dilated import *\n", |
|
|
167 |
"from vnet import *\n", |
|
|
168 |
"from ensemble_model import *" |
|
|
169 |
] |
|
|
170 |
}, |
|
|
171 |
{ |
|
|
172 |
"cell_type": "code", |
|
|
173 |
"execution_count": 7, |
|
|
174 |
"metadata": { |
|
|
175 |
"collapsed": true |
|
|
176 |
}, |
|
|
177 |
"outputs": [], |
|
|
178 |
"source": [ |
|
|
179 |
"seg_sum = torch.zeros(3)\n", |
|
|
180 |
"for i, data in enumerate(dataloader['train']):\n", |
|
|
181 |
" input, segF, segP, segT,_ = data\n", |
|
|
182 |
" seg_sum[0] += torch.sum(segF)\n", |
|
|
183 |
" seg_sum[1] += torch.sum(segP)\n", |
|
|
184 |
" seg_sum[2] += torch.sum(segT)\n", |
|
|
185 |
"mean_s_sum = seg_sum/i" |
|
|
186 |
] |
|
|
187 |
}, |
|
|
188 |
{ |
|
|
189 |
"cell_type": "markdown", |
|
|
190 |
"metadata": {}, |
|
|
191 |
"source": [ |
|
|
192 |
"## Import Loss functions and all other utility functions like functions for saving models, for visualizing images, etc." |
|
|
193 |
] |
|
|
194 |
}, |
|
|
195 |
{ |
|
|
196 |
"cell_type": "code", |
|
|
197 |
"execution_count": 8, |
|
|
198 |
"metadata": { |
|
|
199 |
"collapsed": true |
|
|
200 |
}, |
|
|
201 |
"outputs": [], |
|
|
202 |
"source": [ |
|
|
203 |
"from utils import *" |
|
|
204 |
] |
|
|
205 |
}, |
|
|
206 |
{ |
|
|
207 |
"cell_type": "markdown", |
|
|
208 |
"metadata": {}, |
|
|
209 |
"source": [ |
|
|
210 |
"## Import all the Training and evaluate functions to evaluate the models" |
|
|
211 |
] |
|
|
212 |
}, |
|
|
213 |
{ |
|
|
214 |
"cell_type": "code", |
|
|
215 |
"execution_count": 10, |
|
|
216 |
"metadata": { |
|
|
217 |
"collapsed": true |
|
|
218 |
}, |
|
|
219 |
"outputs": [], |
|
|
220 |
"source": [ |
|
|
221 |
"from train_2d import *\n", |
|
|
222 |
"from train_3d import *\n", |
|
|
223 |
"from train_ensemble import *\n", |
|
|
224 |
"from evaluate_2d import *\n", |
|
|
225 |
"from evaluate_3d import *\n", |
|
|
226 |
"from evaluate_ensemble import *" |
|
|
227 |
] |
|
|
228 |
}, |
|
|
229 |
{ |
|
|
230 |
"cell_type": "markdown", |
|
|
231 |
"metadata": {}, |
|
|
232 |
"source": [ |
|
|
233 |
"# 14. Experimenting with label smoothing and CEL to deal with noisy ground truth\n", |
|
|
234 |
"We tried to train a network with label smoothing, which is generally done when the ground truth is noisy or involves a lot of subjectivity. The practice of label smoothing is tried for classification problem but never for a segmentation problem. We tried it for segmentation problem. It didn't seem to work well and hence training was stopped mid-way as the dice-scores were no where close to acceptable levels. As a future work, we would like to engineer a way to segment images based on noisy ground truth" |
|
|
235 |
] |
|
|
236 |
}, |
|
|
237 |
{ |
|
|
238 |
"cell_type": "code", |
|
|
239 |
"execution_count": 68, |
|
|
240 |
"metadata": { |
|
|
241 |
"collapsed": true |
|
|
242 |
}, |
|
|
243 |
"outputs": [], |
|
|
244 |
"source": [ |
|
|
245 |
"unet_exp_noisy = Unet_dilated_small(9,4,int_var=40,dilated=False).cuda()" |
|
|
246 |
] |
|
|
247 |
}, |
|
|
248 |
{ |
|
|
249 |
"cell_type": "code", |
|
|
250 |
"execution_count": 69, |
|
|
251 |
"metadata": {}, |
|
|
252 |
"outputs": [ |
|
|
253 |
{ |
|
|
254 |
"data": { |
|
|
255 |
"text/plain": [ |
|
|
256 |
"410524" |
|
|
257 |
] |
|
|
258 |
}, |
|
|
259 |
"execution_count": 69, |
|
|
260 |
"metadata": {}, |
|
|
261 |
"output_type": "execute_result" |
|
|
262 |
} |
|
|
263 |
], |
|
|
264 |
"source": [ |
|
|
265 |
"count_parameters(unet_exp_noisy)" |
|
|
266 |
] |
|
|
267 |
}, |
|
|
268 |
{ |
|
|
269 |
"cell_type": "code", |
|
|
270 |
"execution_count": 70, |
|
|
271 |
"metadata": { |
|
|
272 |
"collapsed": true |
|
|
273 |
}, |
|
|
274 |
"outputs": [], |
|
|
275 |
"source": [ |
|
|
276 |
"optimizer_unet_exp_noisy = optim.Adam(unet_exp_noisy.parameters(),lr = 1e-4)" |
|
|
277 |
] |
|
|
278 |
}, |
|
|
279 |
{ |
|
|
280 |
"cell_type": "code", |
|
|
281 |
"execution_count": 80, |
|
|
282 |
"metadata": { |
|
|
283 |
"scrolled": true |
|
|
284 |
}, |
|
|
285 |
"outputs": [ |
|
|
286 |
{ |
|
|
287 |
"name": "stdout", |
|
|
288 |
"output_type": "stream", |
|
|
289 |
"text": [ |
|
|
290 |
"Epoch: 0, Phase: train, epoch loss: 0.0069, Dice Score (class 0): 0.4548, Dice Score (class 1): 0.3627,Dice Score (class 2): 0.2732\n", |
|
|
291 |
"----------\n", |
|
|
292 |
"Epoch: 0, Phase: validate, epoch loss: 0.0107, Dice Score (class 0): 0.4652, Dice Score (class 1): 0.2242,Dice Score (class 2): 0.2691\n", |
|
|
293 |
"----------\n", |
|
|
294 |
"Epoch: 1, Phase: train, epoch loss: 0.0066, Dice Score (class 0): 0.4464, Dice Score (class 1): 0.3631,Dice Score (class 2): 0.2697\n", |
|
|
295 |
"----------\n", |
|
|
296 |
"Epoch: 1, Phase: validate, epoch loss: 0.0116, Dice Score (class 0): 0.4738, Dice Score (class 1): 0.1400,Dice Score (class 2): 0.2687\n", |
|
|
297 |
"----------\n", |
|
|
298 |
"Epoch: 2, Phase: train, epoch loss: 0.0063, Dice Score (class 0): 0.4417, Dice Score (class 1): 0.3004,Dice Score (class 2): 0.2691\n", |
|
|
299 |
"----------\n", |
|
|
300 |
"Epoch: 2, Phase: validate, epoch loss: 0.0083, Dice Score (class 0): 0.4532, Dice Score (class 1): 0.1267,Dice Score (class 2): 0.2386\n", |
|
|
301 |
"----------\n", |
|
|
302 |
"Epoch: 3, Phase: train, epoch loss: 0.0058, Dice Score (class 0): 0.4365, Dice Score (class 1): 0.3346,Dice Score (class 2): 0.2603\n", |
|
|
303 |
"----------\n", |
|
|
304 |
"Epoch: 3, Phase: validate, epoch loss: 0.0090, Dice Score (class 0): 0.4624, Dice Score (class 1): 0.1272,Dice Score (class 2): 0.2762\n", |
|
|
305 |
"----------\n", |
|
|
306 |
"Epoch: 4, Phase: train, epoch loss: 0.0058, Dice Score (class 0): 0.4264, Dice Score (class 1): 0.2908,Dice Score (class 2): 0.2789\n", |
|
|
307 |
"----------\n", |
|
|
308 |
"Epoch: 4, Phase: validate, epoch loss: 0.0106, Dice Score (class 0): 0.4784, Dice Score (class 1): 0.0917,Dice Score (class 2): 0.2196\n", |
|
|
309 |
"----------\n", |
|
|
310 |
"Epoch: 5, Phase: train, epoch loss: 0.0053, Dice Score (class 0): 0.4341, Dice Score (class 1): 0.3044,Dice Score (class 2): 0.2540\n", |
|
|
311 |
"----------\n", |
|
|
312 |
"Epoch: 5, Phase: validate, epoch loss: 0.0076, Dice Score (class 0): 0.4828, Dice Score (class 1): 0.1812,Dice Score (class 2): 0.2497\n", |
|
|
313 |
"----------\n", |
|
|
314 |
"Epoch: 6, Phase: train, epoch loss: 0.0052, Dice Score (class 0): 0.4285, Dice Score (class 1): 0.2792,Dice Score (class 2): 0.2567\n", |
|
|
315 |
"----------\n", |
|
|
316 |
"Epoch: 6, Phase: validate, epoch loss: 0.0081, Dice Score (class 0): 0.4304, Dice Score (class 1): 0.0803,Dice Score (class 2): 0.2250\n", |
|
|
317 |
"----------\n", |
|
|
318 |
"Epoch: 7, Phase: train, epoch loss: 0.0049, Dice Score (class 0): 0.4271, Dice Score (class 1): 0.3015,Dice Score (class 2): 0.2550\n", |
|
|
319 |
"----------\n", |
|
|
320 |
"Epoch: 7, Phase: validate, epoch loss: 0.0094, Dice Score (class 0): 0.4339, Dice Score (class 1): 0.1199,Dice Score (class 2): 0.2402\n", |
|
|
321 |
"----------\n", |
|
|
322 |
"Epoch: 8, Phase: train, epoch loss: 0.0046, Dice Score (class 0): 0.4336, Dice Score (class 1): 0.3101,Dice Score (class 2): 0.2492\n", |
|
|
323 |
"----------\n", |
|
|
324 |
"Epoch: 8, Phase: validate, epoch loss: 0.0076, Dice Score (class 0): 0.4146, Dice Score (class 1): 0.0966,Dice Score (class 2): 0.2273\n", |
|
|
325 |
"----------\n", |
|
|
326 |
"Epoch: 9, Phase: train, epoch loss: 0.0047, Dice Score (class 0): 0.4042, Dice Score (class 1): 0.3042,Dice Score (class 2): 0.2402\n", |
|
|
327 |
"----------\n", |
|
|
328 |
"Epoch: 9, Phase: validate, epoch loss: 0.0085, Dice Score (class 0): 0.4546, Dice Score (class 1): 0.0937,Dice Score (class 2): 0.2365\n", |
|
|
329 |
"----------\n", |
|
|
330 |
"Epoch: 10, Phase: train, epoch loss: 0.0048, Dice Score (class 0): 0.4017, Dice Score (class 1): 0.2660,Dice Score (class 2): 0.2579\n", |
|
|
331 |
"----------\n", |
|
|
332 |
"Epoch: 10, Phase: validate, epoch loss: 0.0093, Dice Score (class 0): 0.3297, Dice Score (class 1): 0.1008,Dice Score (class 2): 0.3376\n", |
|
|
333 |
"----------\n", |
|
|
334 |
"Epoch: 11, Phase: train, epoch loss: 0.0052, Dice Score (class 0): 0.3732, Dice Score (class 1): 0.2240,Dice Score (class 2): 0.2164\n", |
|
|
335 |
"----------\n", |
|
|
336 |
"Epoch: 11, Phase: validate, epoch loss: 0.0080, Dice Score (class 0): 0.3507, Dice Score (class 1): 0.1192,Dice Score (class 2): 0.1992\n", |
|
|
337 |
"----------\n", |
|
|
338 |
"Epoch: 12, Phase: train, epoch loss: 0.0044, Dice Score (class 0): 0.4045, Dice Score (class 1): 0.2663,Dice Score (class 2): 0.2398\n", |
|
|
339 |
"----------\n", |
|
|
340 |
"Epoch: 12, Phase: validate, epoch loss: 0.0054, Dice Score (class 0): 0.3737, Dice Score (class 1): 0.1181,Dice Score (class 2): 0.2016\n", |
|
|
341 |
"----------\n", |
|
|
342 |
"Epoch: 13, Phase: train, epoch loss: 0.0039, Dice Score (class 0): 0.4121, Dice Score (class 1): 0.2953,Dice Score (class 2): 0.2487\n", |
|
|
343 |
"----------\n", |
|
|
344 |
"Epoch: 13, Phase: validate, epoch loss: 0.0062, Dice Score (class 0): 0.4482, Dice Score (class 1): 0.1157,Dice Score (class 2): 0.2612\n", |
|
|
345 |
"----------\n", |
|
|
346 |
"Epoch: 14, Phase: train, epoch loss: 0.0037, Dice Score (class 0): 0.4235, Dice Score (class 1): 0.3123,Dice Score (class 2): 0.2620\n", |
|
|
347 |
"----------\n", |
|
|
348 |
"Epoch: 14, Phase: validate, epoch loss: 0.0067, Dice Score (class 0): 0.4270, Dice Score (class 1): 0.0954,Dice Score (class 2): 0.2708\n", |
|
|
349 |
"----------\n", |
|
|
350 |
"Epoch: 15, Phase: train, epoch loss: 0.0036, Dice Score (class 0): 0.4144, Dice Score (class 1): 0.2824,Dice Score (class 2): 0.2676\n", |
|
|
351 |
"----------\n", |
|
|
352 |
"Epoch: 15, Phase: validate, epoch loss: 0.0076, Dice Score (class 0): 0.4503, Dice Score (class 1): 0.1200,Dice Score (class 2): 0.2609\n", |
|
|
353 |
"----------\n", |
|
|
354 |
"Epoch: 16, Phase: train, epoch loss: 0.0034, Dice Score (class 0): 0.4183, Dice Score (class 1): 0.2898,Dice Score (class 2): 0.2592\n", |
|
|
355 |
"----------\n", |
|
|
356 |
"Epoch: 16, Phase: validate, epoch loss: 0.0061, Dice Score (class 0): 0.4537, Dice Score (class 1): 0.1223,Dice Score (class 2): 0.3014\n", |
|
|
357 |
"----------\n", |
|
|
358 |
"Epoch: 17, Phase: train, epoch loss: 0.0035, Dice Score (class 0): 0.4004, Dice Score (class 1): 0.2839,Dice Score (class 2): 0.2320\n", |
|
|
359 |
"----------\n", |
|
|
360 |
"Epoch: 17, Phase: validate, epoch loss: 0.0089, Dice Score (class 0): 0.4409, Dice Score (class 1): 0.1723,Dice Score (class 2): 0.3229\n", |
|
|
361 |
"----------\n", |
|
|
362 |
"Epoch: 18, Phase: train, epoch loss: 0.0034, Dice Score (class 0): 0.4095, Dice Score (class 1): 0.2638,Dice Score (class 2): 0.2377\n", |
|
|
363 |
"----------\n", |
|
|
364 |
"Epoch: 18, Phase: validate, epoch loss: 0.0124, Dice Score (class 0): 0.4778, Dice Score (class 1): 0.0729,Dice Score (class 2): 0.2672\n", |
|
|
365 |
"----------\n", |
|
|
366 |
"Epoch: 19, Phase: train, epoch loss: 0.0032, Dice Score (class 0): 0.4091, Dice Score (class 1): 0.3173,Dice Score (class 2): 0.2508\n", |
|
|
367 |
"----------\n", |
|
|
368 |
"Epoch: 19, Phase: validate, epoch loss: 0.0087, Dice Score (class 0): 0.4247, Dice Score (class 1): 0.2357,Dice Score (class 2): 0.3106\n", |
|
|
369 |
"----------\n", |
|
|
370 |
"Epoch: 20, Phase: train, epoch loss: 0.0030, Dice Score (class 0): 0.4090, Dice Score (class 1): 0.3206,Dice Score (class 2): 0.2621\n", |
|
|
371 |
"----------\n", |
|
|
372 |
"Epoch: 20, Phase: validate, epoch loss: 0.0053, Dice Score (class 0): 0.4091, Dice Score (class 1): 0.1603,Dice Score (class 2): 0.2504\n", |
|
|
373 |
"----------\n", |
|
|
374 |
"Epoch: 21, Phase: train, epoch loss: 0.0039, Dice Score (class 0): 0.3843, Dice Score (class 1): 0.2829,Dice Score (class 2): 0.2470\n", |
|
|
375 |
"----------\n", |
|
|
376 |
"Epoch: 21, Phase: validate, epoch loss: 0.0112, Dice Score (class 0): 0.3247, Dice Score (class 1): 0.0295,Dice Score (class 2): 0.2692\n", |
|
|
377 |
"----------\n", |
|
|
378 |
"Epoch: 22, Phase: train, epoch loss: 0.0036, Dice Score (class 0): 0.3750, Dice Score (class 1): 0.1967,Dice Score (class 2): 0.2209\n", |
|
|
379 |
"----------\n", |
|
|
380 |
"Epoch: 22, Phase: validate, epoch loss: 0.0075, Dice Score (class 0): 0.4240, Dice Score (class 1): 0.1111,Dice Score (class 2): 0.3162\n", |
|
|
381 |
"----------\n", |
|
|
382 |
"Epoch: 23, Phase: train, epoch loss: 0.0030, Dice Score (class 0): 0.3883, Dice Score (class 1): 0.2905,Dice Score (class 2): 0.2495\n", |
|
|
383 |
"----------\n", |
|
|
384 |
"Epoch: 23, Phase: validate, epoch loss: 0.0079, Dice Score (class 0): 0.4247, Dice Score (class 1): 0.1192,Dice Score (class 2): 0.2906\n", |
|
|
385 |
"----------\n", |
|
|
386 |
"Epoch: 24, Phase: train, epoch loss: 0.0028, Dice Score (class 0): 0.4021, Dice Score (class 1): 0.3212,Dice Score (class 2): 0.2533\n", |
|
|
387 |
"----------\n", |
|
|
388 |
"Epoch: 24, Phase: validate, epoch loss: 0.0067, Dice Score (class 0): 0.4512, Dice Score (class 1): 0.2062,Dice Score (class 2): 0.3409\n", |
|
|
389 |
"----------\n", |
|
|
390 |
"Epoch: 25, Phase: train, epoch loss: 0.0025, Dice Score (class 0): 0.4044, Dice Score (class 1): 0.3422,Dice Score (class 2): 0.2634\n", |
|
|
391 |
"----------\n", |
|
|
392 |
"Epoch: 25, Phase: validate, epoch loss: 0.0094, Dice Score (class 0): 0.4467, Dice Score (class 1): 0.3159,Dice Score (class 2): 0.3170\n", |
|
|
393 |
"----------\n", |
|
|
394 |
"Epoch: 26, Phase: train, epoch loss: 0.0028, Dice Score (class 0): 0.4007, Dice Score (class 1): 0.3061,Dice Score (class 2): 0.2244\n", |
|
|
395 |
"----------\n", |
|
|
396 |
"Epoch: 26, Phase: validate, epoch loss: 0.0062, Dice Score (class 0): 0.4598, Dice Score (class 1): 0.0884,Dice Score (class 2): 0.1960\n", |
|
|
397 |
"----------\n", |
|
|
398 |
"Epoch: 27, Phase: train, epoch loss: 0.0028, Dice Score (class 0): 0.3824, Dice Score (class 1): 0.2838,Dice Score (class 2): 0.2146\n", |
|
|
399 |
"----------\n", |
|
|
400 |
"Epoch: 27, Phase: validate, epoch loss: 0.0100, Dice Score (class 0): 0.4430, Dice Score (class 1): 0.1496,Dice Score (class 2): 0.2968\n", |
|
|
401 |
"----------\n", |
|
|
402 |
"Epoch: 28, Phase: train, epoch loss: 0.0025, Dice Score (class 0): 0.3903, Dice Score (class 1): 0.3193,Dice Score (class 2): 0.2287\n", |
|
|
403 |
"----------\n" |
|
|
404 |
] |
|
|
405 |
}, |
|
|
406 |
{ |
|
|
407 |
"name": "stdout", |
|
|
408 |
"output_type": "stream", |
|
|
409 |
"text": [ |
|
|
410 |
"Epoch: 28, Phase: validate, epoch loss: 0.0089, Dice Score (class 0): 0.3152, Dice Score (class 1): 0.1829,Dice Score (class 2): 0.2807\n", |
|
|
411 |
"----------\n", |
|
|
412 |
"Epoch: 29, Phase: train, epoch loss: 0.0028, Dice Score (class 0): 0.3628, Dice Score (class 1): 0.2731,Dice Score (class 2): 0.2147\n", |
|
|
413 |
"----------\n", |
|
|
414 |
"Epoch: 29, Phase: validate, epoch loss: 0.0089, Dice Score (class 0): 0.4576, Dice Score (class 1): 0.1791,Dice Score (class 2): 0.2617\n", |
|
|
415 |
"----------\n", |
|
|
416 |
"Epoch: 30, Phase: train, epoch loss: 0.0025, Dice Score (class 0): 0.3856, Dice Score (class 1): 0.3332,Dice Score (class 2): 0.2106\n", |
|
|
417 |
"----------\n", |
|
|
418 |
"Epoch: 30, Phase: validate, epoch loss: 0.0088, Dice Score (class 0): 0.4605, Dice Score (class 1): 0.2360,Dice Score (class 2): 0.2981\n", |
|
|
419 |
"----------\n", |
|
|
420 |
"Epoch: 31, Phase: train, epoch loss: 0.0022, Dice Score (class 0): 0.4015, Dice Score (class 1): 0.3838,Dice Score (class 2): 0.2237\n", |
|
|
421 |
"----------\n", |
|
|
422 |
"Epoch: 31, Phase: validate, epoch loss: 0.0103, Dice Score (class 0): 0.4688, Dice Score (class 1): 0.4179,Dice Score (class 2): 0.3486\n", |
|
|
423 |
"----------\n", |
|
|
424 |
"Epoch: 32, Phase: train, epoch loss: 0.0022, Dice Score (class 0): 0.3904, Dice Score (class 1): 0.3807,Dice Score (class 2): 0.2404\n", |
|
|
425 |
"----------\n", |
|
|
426 |
"Epoch: 32, Phase: validate, epoch loss: 0.0085, Dice Score (class 0): 0.4480, Dice Score (class 1): 0.3601,Dice Score (class 2): 0.2842\n", |
|
|
427 |
"----------\n" |
|
|
428 |
] |
|
|
429 |
}, |
|
|
430 |
{ |
|
|
431 |
"ename": "KeyboardInterrupt", |
|
|
432 |
"evalue": "", |
|
|
433 |
"output_type": "error", |
|
|
434 |
"traceback": [ |
|
|
435 |
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", |
|
|
436 |
"\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", |
|
|
437 |
"\u001b[0;32m<ipython-input-80-d560073d377c>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mdataloader\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdata_sizes\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m5\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'new_data_unet_exp_noisy_1'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mnum_epochs\u001b[0m\u001b[0;34m=\u001b[0m \u001b[0;36m50\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mverbose\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m dice_loss = dice_loss_3,noisy_labels = True)\n\u001b[0m", |
|
|
438 |
"\u001b[0;32m<ipython-input-24-c237342f9bb3>\u001b[0m in \u001b[0;36mtrain_model\u001b[0;34m(model, optimizer, dataloader, data_sizes, batch_size, name, num_epochs, verbose, dice_loss, noisy_labels)\u001b[0m\n\u001b[1;32m 24\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrain\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 25\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 26\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mdataloader\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mphase\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 27\u001b[0m \u001b[0moptimizer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mzero_grad\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 28\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msegF\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msegP\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msegT\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0m_\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
|
|
439 |
"\u001b[0;32m/share/apps/pytorch/0.2.0_3/python3.6/lib/python3.6/site-packages/torch/utils/data/dataloader.py\u001b[0m in \u001b[0;36m__next__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 177\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnum_workers\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# same-process loading\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 178\u001b[0m \u001b[0mindices\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msample_iter\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# may raise StopIteration\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 179\u001b[0;31m \u001b[0mbatch\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcollate_fn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataset\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mindices\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 180\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpin_memory\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 181\u001b[0m \u001b[0mbatch\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpin_memory_batch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbatch\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
|
|
440 |
"\u001b[0;32m/share/apps/pytorch/0.2.0_3/python3.6/lib/python3.6/site-packages/torch/utils/data/dataloader.py\u001b[0m in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 177\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnum_workers\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# same-process loading\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 178\u001b[0m \u001b[0mindices\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msample_iter\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# may raise StopIteration\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 179\u001b[0;31m \u001b[0mbatch\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcollate_fn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdataset\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mindices\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 180\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpin_memory\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 181\u001b[0m \u001b[0mbatch\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpin_memory_batch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbatch\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
|
|
441 |
"\u001b[0;32m<ipython-input-3-676504d23560>\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, idx)\u001b[0m\n\u001b[1;32m 47\u001b[0m \u001b[0mfa\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfliplr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfa\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 48\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrotation\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 49\u001b[0;31m \u001b[0msegment_T\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtransform\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrotate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msegment_T\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mangle\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 50\u001b[0m \u001b[0msegment_F\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtransform\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrotate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msegment_F\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mangle\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 51\u001b[0m \u001b[0msegment_P\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtransform\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrotate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msegment_P\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mangle\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
|
|
442 |
"\u001b[0;32m~/pyenv/py3.6.3/lib/python3.6/site-packages/skimage/transform/_warps.py\u001b[0m in \u001b[0;36mrotate\u001b[0;34m(image, angle, resize, center, order, mode, cval, clip, preserve_range)\u001b[0m\n\u001b[1;32m 298\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 299\u001b[0m return warp(image, tform, output_shape=output_shape, order=order,\n\u001b[0;32m--> 300\u001b[0;31m mode=mode, cval=cval, clip=clip, preserve_range=preserve_range)\n\u001b[0m\u001b[1;32m 301\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 302\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", |
|
|
443 |
"\u001b[0;32m~/pyenv/py3.6.3/lib/python3.6/site-packages/skimage/transform/_warps.py\u001b[0m in \u001b[0;36mwarp\u001b[0;34m(image, inverse_map, map_args, output_shape, order, mode, cval, clip, preserve_range)\u001b[0m\n\u001b[1;32m 767\u001b[0m warped = _warp_fast(image, matrix,\n\u001b[1;32m 768\u001b[0m \u001b[0moutput_shape\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0moutput_shape\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 769\u001b[0;31m order=order, mode=mode, cval=cval)\n\u001b[0m\u001b[1;32m 770\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mimage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndim\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 771\u001b[0m \u001b[0mdims\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
|
|
444 |
"\u001b[0;32mskimage/transform/_warps_cy.pyx\u001b[0m in \u001b[0;36mskimage.transform._warps_cy._warp_fast\u001b[0;34m()\u001b[0m\n", |
|
|
445 |
"\u001b[0;32m/share/apps/python3/3.6.3/intel/lib/python3.6/site-packages/numpy-1.13.3-py3.6-linux-x86_64.egg/numpy/core/numeric.py\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 461\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 462\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 463\u001b[0;31m \u001b[0;32mdef\u001b[0m \u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 464\u001b[0m \"\"\"Convert the input to an array.\n\u001b[1;32m 465\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", |
|
|
446 |
"\u001b[0;31mKeyboardInterrupt\u001b[0m: " |
|
|
447 |
] |
|
|
448 |
} |
|
|
449 |
], |
|
|
450 |
"source": [ |
|
|
451 |
"unet_exp_noisy, loss_hist_unet_exp, dc_hist_0_unet_exp, \\\n", |
|
|
452 |
"dc_hist_1_unet_exp, dc_hist_2_unet_exp = train_model(unet_exp_noisy, optimizer_unet_exp_noisy,\n", |
|
|
453 |
" dataloader,data_sizes,5,'new_data_unet_exp_noisy_1',\n", |
|
|
454 |
" num_epochs= 50, verbose = True, \n", |
|
|
455 |
" dice_loss = dice_loss_3,noisy_labels = True)" |
|
|
456 |
] |
|
|
457 |
}, |
|
|
458 |
{ |
|
|
459 |
"cell_type": "code", |
|
|
460 |
"execution_count": null, |
|
|
461 |
"metadata": { |
|
|
462 |
"collapsed": true |
|
|
463 |
}, |
|
|
464 |
"outputs": [], |
|
|
465 |
"source": [ |
|
|
466 |
"# torch.save(model_gen_dilated_l4_n2_new_data_dp,'new_data_dilated_net_l4_n2_nd_dp_1')\n", |
|
|
467 |
"pickle.dump(loss_hist_unet_exp, open('loss_hist_new_data_unet_exp_noisy_1','wb'))\n", |
|
|
468 |
"pickle.dump(dc_hist_0_unet_exp, open('dc_hist_0_new_data_unet_exp_noisy_1','wb'))\n", |
|
|
469 |
"pickle.dump(dc_hist_1_unet_exp, open('dc_hist_1_new_data_unet_exp_noisy_1','wb'))\n", |
|
|
470 |
"pickle.dump(dc_hist_2_unet_exp, open('dc_hist_2_new_data_unet_exp_noisy_1','wb'))" |
|
|
471 |
] |
|
|
472 |
}, |
|
|
473 |
{ |
|
|
474 |
"cell_type": "code", |
|
|
475 |
"execution_count": null, |
|
|
476 |
"metadata": { |
|
|
477 |
"collapsed": true, |
|
|
478 |
"scrolled": true |
|
|
479 |
}, |
|
|
480 |
"outputs": [], |
|
|
481 |
"source": [ |
|
|
482 |
"plot_hist(loss_hist_unet_exp,'Loss')" |
|
|
483 |
] |
|
|
484 |
}, |
|
|
485 |
{ |
|
|
486 |
"cell_type": "code", |
|
|
487 |
"execution_count": null, |
|
|
488 |
"metadata": { |
|
|
489 |
"collapsed": true, |
|
|
490 |
"scrolled": true |
|
|
491 |
}, |
|
|
492 |
"outputs": [], |
|
|
493 |
"source": [ |
|
|
494 |
"evaluate(unet_exp_noisy, dataloader, data_sizes, 5, 'validate', dice_loss=dice_loss_3, noisy_labels = True)" |
|
|
495 |
] |
|
|
496 |
} |
|
|
497 |
], |
|
|
498 |
"metadata": { |
|
|
499 |
"kernelspec": { |
|
|
500 |
"display_name": "Python 3", |
|
|
501 |
"language": "python", |
|
|
502 |
"name": "python3" |
|
|
503 |
}, |
|
|
504 |
"language_info": { |
|
|
505 |
"codemirror_mode": { |
|
|
506 |
"name": "ipython", |
|
|
507 |
"version": 3 |
|
|
508 |
}, |
|
|
509 |
"file_extension": ".py", |
|
|
510 |
"mimetype": "text/x-python", |
|
|
511 |
"name": "python", |
|
|
512 |
"nbconvert_exporter": "python", |
|
|
513 |
"pygments_lexer": "ipython3", |
|
|
514 |
"version": "3.6.3" |
|
|
515 |
} |
|
|
516 |
}, |
|
|
517 |
"nbformat": 4, |
|
|
518 |
"nbformat_minor": 2 |
|
|
519 |
} |