Newer
Older
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"from PIL import Image\n",
"import numpy as np\n",
"import pandas as pd\n",
"import tensorflow as tf\n",
"from tensorflow import keras"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"img_gen = keras.preprocessing.image.ImageDataGenerator(rescale=1./255., dtype=float)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Found 1936 images belonging to 3 classes.\n"
]
}
],
"source": [
"train_dataset = keras.preprocessing.image.DirectoryIterator(directory='../datos/train/', image_data_generator=img_gen, \n",
" target_size=(1024,1024), batch_size=44, color_mode=\"grayscale\")"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Found 969 images belonging to 3 classes.\n"
]
}
],
"source": [
"test_dataset = keras.preprocessing.image.DirectoryIterator(directory='../datos/test/', image_data_generator=img_gen, \n",
" target_size=(1024,1024), batch_size=19, color_mode=\"grayscale\", shuffle = False)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"from keras import layers\n",
"from keras import models\n",
"from keras import optimizers\n",
"#Visualización\n",
"import matplotlib.pyplot as plt\n",
"from sklearn.metrics import confusion_matrix, classification_report "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"model = models.Sequential()\n",
"model.add(layers.Conv2D(8, (3,3), activation=\"relu\", input_shape=(1024, 1024, 1)))\n",
"model.add(layers.MaxPooling2D((3, 3)))\n",
"model.add(layers.Conv2D(16, (3,3), activation=\"relu\"))\n",
"model.add(layers.MaxPooling2D((2,2)))\n",
"model.add(layers.Conv2D(32, (3,3), activation=\"relu\"))\n",
"model.add(layers.MaxPooling2D((2,2)))\n",
"model.add(layers.Flatten())\n",
"model.add(layers.Dense(32, activation=\"relu\"))\n",
"model.add(layers.Dense(3, activation =\"softmax\"))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Model: \"sequential\"\n",
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"conv2d (Conv2D) (None, 1022, 1022, 8) 80 \n",
"_________________________________________________________________\n",
"max_pooling2d (MaxPooling2D) (None, 340, 340, 8) 0 \n",
"_________________________________________________________________\n",
"conv2d_1 (Conv2D) (None, 338, 338, 16) 1168 \n",
"_________________________________________________________________\n",
"max_pooling2d_1 (MaxPooling2 (None, 169, 169, 16) 0 \n",
"_________________________________________________________________\n",
"conv2d_2 (Conv2D) (None, 167, 167, 32) 4640 \n",
"_________________________________________________________________\n",
"max_pooling2d_2 (MaxPooling2 (None, 83, 83, 32) 0 \n",
"_________________________________________________________________\n",
"flatten (Flatten) (None, 220448) 0 \n",
"_________________________________________________________________\n",
"dense (Dense) (None, 32) 7054368 \n",
"_________________________________________________________________\n",
"dense_1 (Dense) (None, 3) 99 \n",
"=================================================================\n",
"Total params: 7,060,355\n",
"Trainable params: 7,060,355\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n"
]
}
],
"source": [
"model.summary()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A pesar de tener más capas y ser un modelo mas complejo tiene muchos menos parametros porque casi todos estan en la ultima capa densa, con mas convoluciones esta recibe menos entradas."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"model.compile(loss=\"categorical_crossentropy\", optimizer=optimizers.RMSprop(lr=1e-4), metrics=['acc'])"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/100\n",
"44/44 [==============================] - 1578s 36s/step - loss: 0.8359 - acc: 0.5671 - val_loss: 0.7194 - val_acc: 0.5707\n",
"Epoch 2/100\n",
"44/44 [==============================] - 1546s 35s/step - loss: 0.5388 - acc: 0.7696 - val_loss: 0.4204 - val_acc: 0.8648\n",
"Epoch 3/100\n",
"44/44 [==============================] - 1654s 38s/step - loss: 0.4113 - acc: 0.8549 - val_loss: 0.3778 - val_acc: 0.8731\n",
"Epoch 4/100\n",
"44/44 [==============================] - 1681s 38s/step - loss: 0.3174 - acc: 0.8905 - val_loss: 0.2906 - val_acc: 0.8916\n",
"Epoch 5/100\n",
"44/44 [==============================] - 1628s 37s/step - loss: 0.2872 - acc: 0.8946 - val_loss: 0.2855 - val_acc: 0.8906\n",
"Epoch 6/100\n",
"44/44 [==============================] - 1630s 37s/step - loss: 0.2459 - acc: 0.9112 - val_loss: 0.2395 - val_acc: 0.9154\n",
"Epoch 7/100\n",
"44/44 [==============================] - 1590s 36s/step - loss: 0.2160 - acc: 0.9236 - val_loss: 0.3059 - val_acc: 0.8916\n",
"Epoch 8/100\n",
"44/44 [==============================] - 1571s 36s/step - loss: 0.1897 - acc: 0.9329 - val_loss: 0.2081 - val_acc: 0.9195\n",
"Epoch 9/100\n",
"44/44 [==============================] - 1514s 34s/step - loss: 0.1705 - acc: 0.9390 - val_loss: 0.1741 - val_acc: 0.9288\n",
"Epoch 10/100\n",
"44/44 [==============================] - 1496s 34s/step - loss: 0.1465 - acc: 0.9525 - val_loss: 0.1772 - val_acc: 0.9298\n",
"Epoch 11/100\n",
"44/44 [==============================] - 1570s 36s/step - loss: 0.1420 - acc: 0.9473 - val_loss: 0.1563 - val_acc: 0.9370\n",
"Epoch 12/100\n",
"44/44 [==============================] - 1608s 37s/step - loss: 0.1241 - acc: 0.9582 - val_loss: 0.1641 - val_acc: 0.9360\n",
"Epoch 13/100\n",
"44/44 [==============================] - 1508s 34s/step - loss: 0.1137 - acc: 0.9587 - val_loss: 0.1762 - val_acc: 0.9350\n",
"Epoch 14/100\n",
"44/44 [==============================] - 1552s 35s/step - loss: 0.1123 - acc: 0.9607 - val_loss: 0.1590 - val_acc: 0.9370\n",
"Epoch 15/100\n",
"44/44 [==============================] - 1576s 36s/step - loss: 0.1069 - acc: 0.9618 - val_loss: 0.1456 - val_acc: 0.9432\n",
"Epoch 16/100\n",
"44/44 [==============================] - 1594s 36s/step - loss: 0.0920 - acc: 0.9721 - val_loss: 0.1501 - val_acc: 0.9432\n",
"Epoch 17/100\n",
"44/44 [==============================] - 1566s 36s/step - loss: 0.0832 - acc: 0.9700 - val_loss: 0.1766 - val_acc: 0.9319\n",
"Epoch 18/100\n",
"44/44 [==============================] - 1540s 35s/step - loss: 0.0872 - acc: 0.9721 - val_loss: 0.1361 - val_acc: 0.9505\n",
"Epoch 19/100\n",
"44/44 [==============================] - 1495s 34s/step - loss: 0.0686 - acc: 0.9809 - val_loss: 0.2378 - val_acc: 0.9112\n",
"Epoch 20/100\n",
"44/44 [==============================] - 1499s 34s/step - loss: 0.0666 - acc: 0.9788 - val_loss: 0.1841 - val_acc: 0.9278\n",
"Epoch 21/100\n",
"44/44 [==============================] - 1513s 34s/step - loss: 0.0605 - acc: 0.9799 - val_loss: 0.1988 - val_acc: 0.9278\n",
"Epoch 22/100\n",
"44/44 [==============================] - 1519s 35s/step - loss: 0.0710 - acc: 0.9752 - val_loss: 0.1369 - val_acc: 0.9515\n",
"Epoch 23/100\n",
"44/44 [==============================] - 1551s 35s/step - loss: 0.0562 - acc: 0.9824 - val_loss: 0.1648 - val_acc: 0.9360\n",
"Epoch 24/100\n",
"44/44 [==============================] - 1556s 35s/step - loss: 0.0465 - acc: 0.9855 - val_loss: 0.1600 - val_acc: 0.9381\n",
"Epoch 25/100\n",
"44/44 [==============================] - 1575s 36s/step - loss: 0.0517 - acc: 0.9850 - val_loss: 0.1305 - val_acc: 0.9515\n",
"Epoch 26/100\n",
"44/44 [==============================] - 1840s 42s/step - loss: 0.0396 - acc: 0.9871 - val_loss: 0.1418 - val_acc: 0.9474\n",
"Epoch 27/100\n",
"44/44 [==============================] - 1595s 36s/step - loss: 0.0381 - acc: 0.9876 - val_loss: 0.1579 - val_acc: 0.9432\n",
"Epoch 28/100\n",
"44/44 [==============================] - 1584s 36s/step - loss: 0.0385 - acc: 0.9892 - val_loss: 0.1222 - val_acc: 0.9567\n",
"Epoch 29/100\n",
"44/44 [==============================] - 3710s 84s/step - loss: 0.0275 - acc: 0.9933 - val_loss: 0.1335 - val_acc: 0.9525\n",
"Epoch 30/100\n",
"44/44 [==============================] - 4552s 103s/step - loss: 0.0338 - acc: 0.9923 - val_loss: 0.1374 - val_acc: 0.9505\n",
"Epoch 31/100\n",
"44/44 [==============================] - 1765s 40s/step - loss: 0.0263 - acc: 0.9928 - val_loss: 0.1425 - val_acc: 0.9484\n",
"Epoch 32/100\n",
"44/44 [==============================] - 1484s 34s/step - loss: 0.0315 - acc: 0.9897 - val_loss: 0.1293 - val_acc: 0.9546\n",
"Epoch 33/100\n",
"44/44 [==============================] - 1275s 29s/step - loss: 0.0156 - acc: 0.9985 - val_loss: 0.1432 - val_acc: 0.9546\n",
"Epoch 34/100\n",
"44/44 [==============================] - 1320s 30s/step - loss: 0.0312 - acc: 0.9917 - val_loss: 0.1423 - val_acc: 0.9525\n",
"Epoch 35/100\n",
"44/44 [==============================] - 1273s 29s/step - loss: 0.0221 - acc: 0.9943 - val_loss: 0.2296 - val_acc: 0.9381\n",
"Epoch 36/100\n",
"44/44 [==============================] - 1311s 30s/step - loss: 0.0158 - acc: 0.9959 - val_loss: 0.1433 - val_acc: 0.9587\n",
"Epoch 37/100\n",
"44/44 [==============================] - 1282s 29s/step - loss: 0.0148 - acc: 0.9974 - val_loss: 0.1444 - val_acc: 0.9546\n",
"Epoch 38/100\n",
"44/44 [==============================] - 1234s 28s/step - loss: 0.0160 - acc: 0.9954 - val_loss: 0.1547 - val_acc: 0.9443\n",
"Epoch 39/100\n",
"44/44 [==============================] - 1234s 28s/step - loss: 0.0105 - acc: 0.9985 - val_loss: 0.1420 - val_acc: 0.9567\n",
"Epoch 40/100\n",
"44/44 [==============================] - 1238s 28s/step - loss: 0.0147 - acc: 0.9964 - val_loss: 0.1460 - val_acc: 0.9587\n",
"Epoch 41/100\n",
"44/44 [==============================] - 1229s 28s/step - loss: 0.0112 - acc: 0.9969 - val_loss: 0.1462 - val_acc: 0.9587\n",
"Epoch 42/100\n",
"44/44 [==============================] - 1243s 28s/step - loss: 0.0135 - acc: 0.9948 - val_loss: 0.1521 - val_acc: 0.9546\n",
"Epoch 43/100\n",
"44/44 [==============================] - 1302s 30s/step - loss: 0.0120 - acc: 0.9964 - val_loss: 0.1554 - val_acc: 0.9484\n",
"Epoch 44/100\n",
"44/44 [==============================] - 1266s 29s/step - loss: 0.0141 - acc: 0.9964 - val_loss: 0.3919 - val_acc: 0.8906\n",
"Epoch 45/100\n",
"44/44 [==============================] - 1256s 29s/step - loss: 0.0068 - acc: 0.9979 - val_loss: 0.1534 - val_acc: 0.9515\n",
"Epoch 46/100\n",
"44/44 [==============================] - 1273s 29s/step - loss: 0.0083 - acc: 0.9985 - val_loss: 0.1530 - val_acc: 0.9567\n",
"Epoch 47/100\n",
"44/44 [==============================] - 1277s 29s/step - loss: 0.0069 - acc: 0.9985 - val_loss: 0.1623 - val_acc: 0.9546\n",
"Epoch 48/100\n",
"44/44 [==============================] - 1241s 28s/step - loss: 0.0069 - acc: 0.9969 - val_loss: 0.1574 - val_acc: 0.9546\n",
"Epoch 49/100\n",
"44/44 [==============================] - 1277s 29s/step - loss: 0.0081 - acc: 0.9979 - val_loss: 0.1596 - val_acc: 0.9556\n",
"Epoch 50/100\n",
"44/44 [==============================] - 1263s 29s/step - loss: 0.0062 - acc: 0.9985 - val_loss: 0.1649 - val_acc: 0.9536\n",
"Epoch 51/100\n",
"44/44 [==============================] - 1333s 30s/step - loss: 0.0068 - acc: 0.9979 - val_loss: 0.1652 - val_acc: 0.9525\n",
"Epoch 52/100\n",
"44/44 [==============================] - 1245s 28s/step - loss: 0.0114 - acc: 0.9943 - val_loss: 0.1614 - val_acc: 0.9536\n",
"Epoch 53/100\n",
"44/44 [==============================] - 1238s 28s/step - loss: 0.0103 - acc: 0.9969 - val_loss: 0.1706 - val_acc: 0.9577\n",
"Epoch 54/100\n",
"44/44 [==============================] - 1287s 29s/step - loss: 0.0012 - acc: 1.0000 - val_loss: 0.1752 - val_acc: 0.9536\n",
"Epoch 55/100\n",
"44/44 [==============================] - 1406s 32s/step - loss: 0.0127 - acc: 0.9954 - val_loss: 0.1654 - val_acc: 0.9536\n",
"Epoch 56/100\n",
"44/44 [==============================] - 1645s 37s/step - loss: 0.0126 - acc: 0.9959 - val_loss: 0.1658 - val_acc: 0.9546\n",
"Epoch 57/100\n",
"44/44 [==============================] - 1509s 34s/step - loss: 9.8136e-04 - acc: 1.0000 - val_loss: 0.1771 - val_acc: 0.9567\n",
"Epoch 58/100\n",
"44/44 [==============================] - 1526s 35s/step - loss: 0.0040 - acc: 0.9990 - val_loss: 0.1929 - val_acc: 0.9556\n",
"Epoch 59/100\n",
"44/44 [==============================] - 1517s 34s/step - loss: 0.0051 - acc: 0.9985 - val_loss: 0.1724 - val_acc: 0.9556\n",
"Epoch 60/100\n",
"44/44 [==============================] - 1536s 35s/step - loss: 0.0081 - acc: 0.9964 - val_loss: 0.1783 - val_acc: 0.9567\n",
"Epoch 61/100\n",
"44/44 [==============================] - 1608s 37s/step - loss: 8.1214e-04 - acc: 1.0000 - val_loss: 0.1855 - val_acc: 0.9577\n",
"Epoch 62/100\n",
"44/44 [==============================] - 1611s 37s/step - loss: 0.0087 - acc: 0.9964 - val_loss: 0.1753 - val_acc: 0.9556\n",
"Epoch 63/100\n",
"44/44 [==============================] - 1533s 35s/step - loss: 0.0108 - acc: 0.9959 - val_loss: 0.2110 - val_acc: 0.9587\n",
"Epoch 64/100\n",
"44/44 [==============================] - 1484s 34s/step - loss: 7.6498e-04 - acc: 1.0000 - val_loss: 0.1803 - val_acc: 0.9556\n",
"Epoch 65/100\n",
"44/44 [==============================] - 1375s 31s/step - loss: 0.0068 - acc: 0.9969 - val_loss: 0.1868 - val_acc: 0.9546\n",
"Epoch 66/100\n",
"44/44 [==============================] - 1268s 29s/step - loss: 5.5987e-04 - acc: 1.0000 - val_loss: 0.1831 - val_acc: 0.9505\n",
"Epoch 67/100\n",
"44/44 [==============================] - 1289s 29s/step - loss: 0.0026 - acc: 0.9985 - val_loss: 0.1834 - val_acc: 0.9536\n",
"Epoch 68/100\n",
"44/44 [==============================] - 1254s 29s/step - loss: 0.0059 - acc: 0.9969 - val_loss: 0.1835 - val_acc: 0.9546\n",
"Epoch 69/100\n",
"44/44 [==============================] - 1268s 29s/step - loss: 3.2132e-04 - acc: 1.0000 - val_loss: 0.1947 - val_acc: 0.9525\n",
"Epoch 70/100\n",
"44/44 [==============================] - 1268s 29s/step - loss: 0.0117 - acc: 0.9938 - val_loss: 0.1873 - val_acc: 0.9577\n",
"Epoch 71/100\n",
"44/44 [==============================] - 1279s 29s/step - loss: 3.8250e-04 - acc: 1.0000 - val_loss: 0.1869 - val_acc: 0.9546\n",
"Epoch 72/100\n",
"44/44 [==============================] - 1279s 29s/step - loss: 0.0088 - acc: 0.9964 - val_loss: 0.1905 - val_acc: 0.9546\n",
"Epoch 73/100\n",
"44/44 [==============================] - 1276s 29s/step - loss: 2.6760e-04 - acc: 1.0000 - val_loss: 0.1893 - val_acc: 0.9546\n",
"Epoch 74/100\n",
"44/44 [==============================] - 1264s 29s/step - loss: 0.0066 - acc: 0.9979 - val_loss: 0.1902 - val_acc: 0.9556\n",
"Epoch 75/100\n",
"44/44 [==============================] - 1256s 29s/step - loss: 2.5718e-04 - acc: 1.0000 - val_loss: 0.1967 - val_acc: 0.9546\n",
"Epoch 76/100\n",
"44/44 [==============================] - 1255s 29s/step - loss: 0.0074 - acc: 0.9969 - val_loss: 0.1973 - val_acc: 0.9567\n",
"Epoch 77/100\n",
"44/44 [==============================] - 1245s 28s/step - loss: 1.9712e-04 - acc: 1.0000 - val_loss: 0.1984 - val_acc: 0.9505\n",
"Epoch 78/100\n",
"44/44 [==============================] - 1271s 29s/step - loss: 0.0110 - acc: 0.9964 - val_loss: 0.1947 - val_acc: 0.9546\n",
"Epoch 79/100\n",
"44/44 [==============================] - 1258s 29s/step - loss: 1.7022e-04 - acc: 1.0000 - val_loss: 0.2149 - val_acc: 0.9484\n",
"Epoch 80/100\n",
"44/44 [==============================] - 1266s 29s/step - loss: 0.0078 - acc: 0.9969 - val_loss: 0.2011 - val_acc: 0.9598\n",
"Epoch 81/100\n",
"44/44 [==============================] - 1260s 29s/step - loss: 2.0915e-04 - acc: 1.0000 - val_loss: 0.2015 - val_acc: 0.9525\n",
"Epoch 82/100\n",
"44/44 [==============================] - 1255s 29s/step - loss: 0.0045 - acc: 0.9990 - val_loss: 0.2054 - val_acc: 0.9494\n",
"Epoch 83/100\n",
"44/44 [==============================] - 1262s 29s/step - loss: 1.8893e-04 - acc: 1.0000 - val_loss: 0.2171 - val_acc: 0.9536\n",
"Epoch 84/100\n",
"44/44 [==============================] - 1274s 29s/step - loss: 0.0032 - acc: 0.9985 - val_loss: 0.2029 - val_acc: 0.9536\n",
"Epoch 85/100\n",
"44/44 [==============================] - 1248s 28s/step - loss: 1.8447e-04 - acc: 1.0000 - val_loss: 0.2043 - val_acc: 0.9567\n",
"Epoch 86/100\n",
"44/44 [==============================] - 1266s 29s/step - loss: 0.0044 - acc: 0.9974 - val_loss: 0.2042 - val_acc: 0.9505\n",
"Epoch 87/100\n",
"44/44 [==============================] - 1260s 29s/step - loss: 9.8108e-05 - acc: 1.0000 - val_loss: 0.2164 - val_acc: 0.9546\n",
"Epoch 88/100\n",
"44/44 [==============================] - 1284s 29s/step - loss: 0.0204 - acc: 0.9974 - val_loss: 0.2355 - val_acc: 0.9525\n",
"Epoch 89/100\n",
"44/44 [==============================] - 1391s 32s/step - loss: 1.0564e-04 - acc: 1.0000 - val_loss: 0.2147 - val_acc: 0.9556\n",
"Epoch 90/100\n",
"44/44 [==============================] - 1517s 34s/step - loss: 0.0055 - acc: 0.9979 - val_loss: 0.7794 - val_acc: 0.8638\n",
"Epoch 91/100\n",
"44/44 [==============================] - 1540s 35s/step - loss: 0.0037 - acc: 0.9985 - val_loss: 0.2179 - val_acc: 0.9515\n",
"Epoch 92/100\n",
"44/44 [==============================] - 1441s 33s/step - loss: 7.3269e-05 - acc: 1.0000 - val_loss: 0.2152 - val_acc: 0.9525\n",
"Epoch 93/100\n",
"44/44 [==============================] - 1316s 30s/step - loss: 0.0067 - acc: 0.9964 - val_loss: 0.2167 - val_acc: 0.9525\n",
"Epoch 94/100\n",
"44/44 [==============================] - 1429s 32s/step - loss: 1.2625e-04 - acc: 1.0000 - val_loss: 0.2126 - val_acc: 0.9546\n",
"Epoch 95/100\n",
"44/44 [==============================] - 1386s 31s/step - loss: 0.0048 - acc: 0.9979 - val_loss: 0.2197 - val_acc: 0.9546\n",
"Epoch 96/100\n",
"44/44 [==============================] - 1423s 32s/step - loss: 1.0178e-04 - acc: 1.0000 - val_loss: 0.2187 - val_acc: 0.9525\n",
"Epoch 97/100\n",
"44/44 [==============================] - 1320s 30s/step - loss: 0.0072 - acc: 0.9974 - val_loss: 0.2511 - val_acc: 0.9577\n",
"Epoch 98/100\n",
"44/44 [==============================] - 1301s 30s/step - loss: 1.1591e-04 - acc: 1.0000 - val_loss: 0.2219 - val_acc: 0.9525\n",
"Epoch 99/100\n",
"44/44 [==============================] - 1271s 29s/step - loss: 1.3746e-04 - acc: 1.0000 - val_loss: 0.9930 - val_acc: 0.8442\n",
"Epoch 100/100\n",
"44/44 [==============================] - 1275s 29s/step - loss: 0.0103 - acc: 0.9964 - val_loss: 0.2230 - val_acc: 0.9536\n"
]
}
],
"source": [
"history = model.fit(\n",
" train_dataset,\n",
" epochs = 100,\n",
" verbose = 1,\n",
" validation_data=test_dataset)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEUCAYAAADDdzb+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABdz0lEQVR4nO2deVyUVfv/37Mw7COLuIsiggoo7uKKmkVq6qNZWZmZPmlR5pKmWT9bLLVNv2qWmlqWldljWZlamiWu5VKumQriGoqADOus9+8PmJFhGBiWYT3v18sXzrnPfZ9zzXLd5/6c61xHJkmShEAgEAjqFPKq7oBAIBAIKh/h/AUCgaAOIpy/QCAQ1EGE8xcIBII6iHD+AoFAUAcRzl8gEAjqIML513J+//132rRpw++//16m8wcOHMicOXMquFfVjzlz5jBw4MBKb/ebb76hTZs2XL16tUx9ccbnU1SfKouqbLuuoazqDtRV2rRp41C9hQsXMmrUKCf3RlDXyMrKYt26dXTv3p0ePXpUdXcEVYBw/lXE22+/bfV606ZNHD9+nDfffNOqvHPnzuVqp1u3bpw4cQIXF5cynb9jxw5kMlm5+iAoHfPnz8fZay+zs7N5//33efbZZ22c/4gRIxg6dCgqlcqpfRBULcL5VxEjRoywen3w4EFOnDhhU16YnJwc3N3dHW5HLpfj6upapj4CwgFUAWW9UVcUCoUChUJRpX0QOB+h+Vdj5syZQ/v27bl27RqxsbF06dKFSZMmAXD27FnmzJnDoEGDaN++PVFRUcyYMYN///3X6hpFaf7m6966dYtp06bRuXNnunXrxv/7f/8PrVZrdX5hTdl8va1bt/Lxxx8zcOBA2rdvz0MPPcSZM2dsbNi1axfDhg2jffv2xMTEsHnzZpYvX+6Q7OWojWad+MiRIyxevJg+ffrQoUMHJkyYwJUrV2yuu3nzZmJiYmjfvj3Dhw9n9+7dJfYF4PXXXycyMpKsrKwSjx05coSpU6cyYMAAIiIi6NOnD/PmzUOj0ZTYTlGav06n45133qF379507NiR8ePHEx8fb3Pu7du3eeuttxg2bBidOnWiU6dOPPbYYxw9etRS5+rVq/Tp0weA999/nzZt2tCmTRvL52xPd//ll1944IEHiIyMpFu3bjzzzDM2fTB/tomJicybN48ePXrQqVMnnnvuOdLS0kq03R6OtJ2VlcVbb71l+U726tWLcePGWX33L126xNSpU+nTpw/t27cnOjqa5557jhs3bpS5bzUVMfKv5kiSxIQJE2jfvj2zZs2yjMgOHDhAQkICw4cPp1GjRly6dImNGzdy8uRJfvjhB9zc3By6bps2bZg1axYnTpxg06ZN+Pr6MmPGjBL7tW7dOgwGA2PHjsVgMLB27VqeeeYZfv75Z8vINS4ujilTphAUFMS0adPIzc1l8eLFBAQEOGR7aW1csGABbm5uTJo0ibS0NNatW8esWbPYuHGjpc63337L3Llzad++PTNnziQlJYUXXniBxo0bl9ifIUOG8Pnnn/PLL78wfPhwS7nRaOSnn34iOjoaT09PALZv3056ejqjR48mICCAs2fP8vXXX3Pu3Dmr/jjKK6+8wjfffENMTAw9evTg1KlTTJgwweZmfeXKFX766SdiYmIIDAwkIyODr7/+mvHjx7N582ZCQ0Px8/Nj3rx5vP7669x9993cfffdAAQGBtptf+vWrcycOZO2bdsybdo0MjIy2LBhAw8//DCbN2+mefPmVvVnzJhBgwYNeO6557h06RIbNmzAxcWF9957r9S2O9r2q6++yvbt23n00Udp3bo1Go2G48eP8/fff9OjRw/0ej0TJ04kNzeXRx55hICAAJKTk9m3bx9JSUk0bNiw1H2r0UiCasHs2bOliIgIm7LQ0FBpwYIFNvWzs7Ntyg4fPiyFhoZK3333naXs0KFDUmhoqHTo0CGb6y5evNjq/Kefflrq0aOHVdmAAQOk2bNn21zv7rvvlnJzcy3lO3fulEJDQ6Vff/3VUjZs2DCpV69ekkajsZTFx8dLYWFhUmhoqL23otQ2bt68WQoNDZUeffRRyWg0Wso//vhjKTQ0VDp37pwkSZKk1+ulXr16SUOGDLHq+969e6XQ0FBpwIABxfbHZDJJ/fv3lyZPnmxVvn//fik0NFTasWNHsX3fsmWLFBoaKh05csSm71euXLGUzZ4926ovZ8+elUJDQ6UXX3zR6nrvvfeeFBoaavX5aLVayWAwWNVLS0uToqKipJdeeslSdvPmTSk0NFRatmyZTT8L90mn00m9e/eWYmJipKysLEu906dPS23btpWef/55S9myZcuk0NBQqzJJkqQ33nhDateundV3oSjK03bXrl2l1157ze61//77byk0NFTavn17sX2o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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"acc = history.history['acc']\n",
"val_acc = history.history['val_acc']\n",
"loss = history.history['loss']\n",
"val_loss = history.history['val_loss']\n",
"\n",
"epochs = range(1, len(acc) + 1)\n",
"\n",
"plt.plot(epochs, acc, 'bo', label = 'Training acc')\n",
"plt.plot(epochs, val_acc, 'b', label = 'Validation acc')\n",
"plt.title('Training and validation accuracy')\n",
"plt.legend()\n",
"plt.figure()\n",
"plt.plot(epochs, loss, 'bo', label = 'Training loss')\n",
"plt.plot(epochs, val_loss, 'b', label = 'Validation loss')\n",
"plt.title('Training and validation loss')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 432x288 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.savefig('modeloGrey7M.png')"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'COVID-19': 0, 'NORMAL': 1, 'Viral Pneumonia': 2}"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_dataset.class_indices"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Confusion Matrix\n",
"[[ 66 4 3]\n",
" [ 0 429 18]\n",
" [ 0 20 429]]\n",
"Clasification report\n",
" precision recall f1-score support\n",
"\n",
" COVID-19 1.00 0.90 0.95 73\n",
" NORMAL 0.95 0.96 0.95 447\n",
"Viral pneumonia 0.95 0.96 0.95 449\n",
"\n",
" accuracy 0.95 969\n",
" macro avg 0.97 0.94 0.95 969\n",
" weighted avg 0.95 0.95 0.95 969\n",
"\n"
]
}
],
"source": [
"Y_pred = model.predict(test_dataset)\n",
"y_pred = np.argmax(Y_pred,axis=1)\n",
"target_names = ['COVID-19','NORMAL', 'Viral pneumonia']\n",
"print('Confusion Matrix')\n",
"c=confusion_matrix(test_dataset.classes, y_pred)\n",
"print(c)\n",
"print('Clasification report')\n",
"print(classification_report(test_dataset.classes, y_pred, target_names=target_names))"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"95.3560371517028"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.mean(y_pred==test_dataset.classes)*100"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import seaborn as sn\n",
"snn_cm = confusion_matrix(test_dataset.classes, y_pred)\n",
"\n",
"# Visualizamos la matriz de confusión\n",
"snn_df_cm = pd.DataFrame(snn_cm, range(3), range(3)) \n",
"plt.figure(figsize = (6,4)) \n",
"sn.set(font_scale=1.4) #for label size \n",
"sn.heatmap(snn_df_cm, annot=True, annot_kws={\"size\": 16}, cmap=\"Blues\") # font size \n",
"plt.save_fig('modeloGrey7MconfusionMatrix.png')\n",
"plt.show() "
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"model.save('modeloGrey7M.h5')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}