File size: 49,068 Bytes
df3e474
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "8870f399",
   "metadata": {},
   "outputs": [],
   "source": [
    "from keras.models import load_model\n",
    "from tensorflow.keras.utils import load_img\n",
    "from keras.preprocessing.image import ImageDataGenerator\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "9a2915f5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Leemos el modelo guardado\n",
    "model = load_model('../../model/classification/image_classification_CNN.h5')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "501c48e4",
   "metadata": {},
   "outputs": [],
   "source": [
    "test_data_dir = '../../dataset/classification/PCB_Dataset_Split/test'\n",
    "size = (360, 363)\n",
    "batch_size = 16"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "ec6d2697",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Leemos una imagen del conjunto de test \n",
    "image = load_img('../../dataset/classification/PCB_Dataset_Split/val/neutrophil/BNE_191041.jpg', target_size = size)\n",
    "img = np.array(image)\n",
    "img = img / 255.0\n",
    "img = img.reshape(1, 360, 363, 3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "2c0b3968",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1/1 [==============================] - 0s 26ms/step\n"
     ]
    }
   ],
   "source": [
    "# Predecimos la clase a la que pertenece\n",
    "label = model.predict(img)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "fa8f3dfc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "neutrophil\n"
     ]
    }
   ],
   "source": [
    "# Mapeamos la predicción con el nombre de la salida\n",
    "label_names = ['basophil', 'eosinophil', 'erythroblast', 'ig', 'lymphocyte', 'monocyte', 'neutrophil', 'platelet']\n",
    "print(label_names[np.argmax(label)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "d0c66ac3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[6.6474173e-04, 4.9071365e-05, 1.1076842e-03, 2.6778722e-02,\n",
       "        5.4529850e-05, 3.3029503e-06, 9.7134173e-01, 3.2414894e-07]],\n",
       "      dtype=float32)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "label"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "adb21285",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 1716 images belonging to 8 classes.\n"
     ]
    }
   ],
   "source": [
    "test_datagen = ImageDataGenerator(rescale = 1. / 255)\n",
    "test_generator = test_datagen.flow_from_directory(test_data_dir,\n",
    "                                                  target_size = size,\n",
    "                                                  batch_size = batch_size,\n",
    "                                                  shuffle = False,\n",
    "                                                  class_mode = 'categorical')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "62499652",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\shiru\\AppData\\Local\\Temp\\ipykernel_8692\\558093203.py:1: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.\n",
      "  test_score = model.evaluate_generator(test_generator, batch_size)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[INFO] accuracy: 98.44%\n",
      "[INFO] Loss:  0.1844080686569214\n"
     ]
    }
   ],
   "source": [
    "test_score = model.evaluate_generator(test_generator, batch_size)\n",
    "\n",
    "print(\"[INFO] accuracy: {:.2f}%\".format(test_score[1] * 100))\n",
    "print(\"[INFO] Loss: \",test_score[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "3be33f81",
   "metadata": {},
   "outputs": [],
   "source": [
    "#Plot the confusion matrix. Set Normalize = True/False\n",
    "\n",
    "def plot_confusion_matrix(cm, classes, normalize=True, title='Confusion matrix', cmap=plt.cm.Blues):\n",
    "    \"\"\"\n",
    "    This function prints and plots the confusion matrix.\n",
    "    Normalization can be applied by setting `normalize=True`.\n",
    "    \"\"\"\n",
    "    plt.figure(figsize=(10,10))\n",
    "    plt.imshow(cm, interpolation='nearest', cmap=cmap)\n",
    "    plt.title(title)\n",
    "    plt.colorbar()\n",
    "    tick_marks = np.arange(len(classes))\n",
    "    plt.xticks(tick_marks, classes, rotation=45)\n",
    "    plt.yticks(tick_marks, classes)\n",
    "    \n",
    "    if normalize:\n",
    "        cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n",
    "        cm = np.around(cm, decimals=2)\n",
    "        cm[np.isnan(cm)] = 0.0\n",
    "        print(\"Normalized confusion matrix\")\n",
    "    else:\n",
    "        print('Confusion matrix, without normalization')\n",
    "    \n",
    "    thresh = cm.max() / 2.\n",
    "    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n",
    "        plt.text(j, i, cm[i, j],\n",
    "                 horizontalalignment=\"center\",\n",
    "                 color=\"white\" if cm[i, j] > thresh else \"black\")\n",
    "    plt.tight_layout()\n",
    "    plt.ylabel('True label')\n",
    "    plt.xlabel('Predicted label')#Print the Target names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "dfba2244",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "108/108 [==============================] - 10s 93ms/step\n",
      "Confusion Matrix\n",
      "Confusion matrix, without normalization\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x720 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Print the Target names\n",
    "from sklearn.metrics import classification_report, confusion_matrix\n",
    "import itertools \n",
    "\n",
    "#shuffle=False\n",
    "\n",
    "target_names = []\n",
    "for key in test_generator.class_indices:\n",
    "    target_names.append(key)\n",
    "\n",
    "# print(target_names)#Confution Matrix\n",
    "Y_pred = model.predict(test_generator)\n",
    "y_pred = np.argmax(Y_pred, axis=1)\n",
    "print('Confusion Matrix')\n",
    "\n",
    "cm = confusion_matrix(test_generator.classes, y_pred)\n",
    "plot_confusion_matrix(cm, target_names, title='Confusion Matrix', normalize=False)\n",
    "\n",
    "#Print Classification Report\n",
    "#print('Classification Report')\n",
    "#print(classification_report(test_generator.classes, y_pred, target_names=target_names))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e49a4c65",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}