├── .gitignore
├── README.md
├── Skin Cancer - EDA.ipynb
├── Skin Cancer Prediction Baseline.ipynb
├── Skin Cancer Prediction DenseNet121.ipynb
├── Skin Cancer Prediction EfficientNetB4.ipynb
├── Skin Cancer Prediction GradCam Visualization.ipynb
├── Skin Cancer Prediction InceptionResNetV2.ipynb
├── Skin Cancer Prediction ResNet50.ipynb
├── Skin Cancer Prediction VGG16.ipynb
└── docs
├── model_architecture.png
└── results.png
/.gitignore:
--------------------------------------------------------------------------------
1 | .ipynb_checkpoints
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Skin Cancer Classification using Transfer Learning
4 |
5 |
6 |
7 | [](https://doi.org/10.1007/978-3-031-22405-8_27)
11 | 
12 |
17 |
18 |
19 |
20 | ### 📌 Introduction
21 |
22 | According to the Skin Cancer Foundation statistics, skin cancer is known to be the most common cancer in the United States and worldwide. By the age of seventy years, about twenty percent of Americans will have developed skin cancer due to exposure to radiation. Of all the types of skin cancers, melanoma is particularly deadly and responsible for most skin cancer deaths. Therefore, early detection is the key to survival. An automatic skin lesion diagnosis system can assist dermatologists since its challenging to differentiate between the different classes of skin lesions. In this paper, we propose a transfer learning based deep learning system using deep convolutional neural networks that leverage residual connections to perform the mentioned task with high accuracy. The HAM10000 dataset was utilized for training and testing the model and comparing its performance with other pre-trained models. This kind of automated classification system can be integrated into a computeraided diagnosis (CAD) system pipeline to assist in the early detection of skin cancer.
23 |
24 |
25 |
26 |
27 | ### 🗃️ Dataset
28 |
29 | A public dataset from the International Skin Imaging Collaboration (ISCI) archive was obtained for this work known as HAM10000. It is quite a large dataset that consists of 10015 samples of multi-source dermatoscopic images of common pigmented skin lesions.
30 |
31 | Get the data [here](https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/DBW86T)
32 |
33 |
34 |
35 | ## Modified Inception-ResNetV2 Model Architecture
36 |
37 |
38 | We modified the Inception-ResNetV2 architecture, which belongs to the inception family but improved with the help of residual connections instead of the conventional filter concatenation stage. It combines the two architectures of Inception and Residual networks to obtain more solid performance but at the same time keeping the computational costs relatively low. It consists of a stem block, three sets of residual inception block modules with [5,10,5] blocks of Inception-ResNetA, Inception-RetNetB, Inception-RetNetC modules, respectively, and subsequently pooling layer after each set of Inception-ResNet modules, all of which are connected sequentially. With a total of 164 layers, this deep convolutional network is capable of learning rich feature representation for broad categories of image data
39 |
40 |
41 |
42 |
43 | ## Conclusion
44 |
45 |
46 | In this paper, we have taken up the task of multi-class classification of skin lesions from dermatoscopic images in the HAM10000 dataset using deep convolutional neural networks, alleviating the need for complex feature engineering. We leveraged transfer learning by using pre-trained models and modified the Inception-ResNetV2 architecture to the required problem. The model achieved an accuracy of 90.08% with an F1-score of 89%, outperforming the rest.
47 |
48 |
49 |
50 |
51 | ### 📝 Citation
52 | If you found this code helpful please consider citing,
53 | ```
54 | Kollipara, V.N.H., Kollipara, V.N.D.P. (2022). Residual Learning Based Approach for Multi-class Classification of Skin Lesion Using Deep Convolutional Neural Network. In: Guru, D.S., Y. H., S.K., K., B., Agrawal, R.K., Ichino, M. (eds) Cognition and Recognition. ICCR 2021. Communications in Computer and Information Science, vol 1697. Springer, Cham. https://doi.org/10.1007/978-3-031-22405-8_27
55 | ```
56 |
57 | ### ⚖️ License
58 | Copyright © 2023 Hemanth Kollipara, Pavithra Kollipara
59 |
--------------------------------------------------------------------------------
/Skin Cancer Prediction Baseline.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "id": "6fa5a720",
6 | "metadata": {},
7 | "source": [
8 | "## Skin Cancer Classification baseline model"
9 | ]
10 | },
11 | {
12 | "cell_type": "code",
13 | "execution_count": 1,
14 | "id": "fdf93ec8",
15 | "metadata": {},
16 | "outputs": [],
17 | "source": [
18 | "import os\n",
19 | "import shutil\n",
20 | "import numpy as np\n",
21 | "import pandas as pd\n",
22 | "import matplotlib.pyplot as plt\n",
23 | "import seaborn as sns\n",
24 | "import cv2\n",
25 | "import sklearn"
26 | ]
27 | },
28 | {
29 | "cell_type": "markdown",
30 | "id": "79ab8ac8",
31 | "metadata": {},
32 | "source": [
33 | "### Loading Dataset"
34 | ]
35 | },
36 | {
37 | "cell_type": "code",
38 | "execution_count": 2,
39 | "id": "34c3ceb8",
40 | "metadata": {},
41 | "outputs": [
42 | {
43 | "name": "stdout",
44 | "output_type": "stream",
45 | "text": [
46 | "['BKL', 'NV', 'AKIEC', 'MEL', 'DF', 'BCC', 'VASC']\n"
47 | ]
48 | }
49 | ],
50 | "source": [
51 | "os.mkdir(\"HAM_Dataset\")\n",
52 | "base = \"HAM_Dataset\"\n",
53 | "\n",
54 | "os.mkdir(os.path.join(base, \"MEL\"))\n",
55 | "os.mkdir(os.path.join(base, \"NV\"))\n",
56 | "os.mkdir(os.path.join(base, \"BCC\"))\n",
57 | "os.mkdir(os.path.join(base, \"AKIEC\"))\n",
58 | "os.mkdir(os.path.join(base, \"BKL\"))\n",
59 | "os.mkdir(os.path.join(base, \"DF\"))\n",
60 | "os.mkdir(os.path.join(base, \"VASC\"))\n",
61 | "\n",
62 | "print(os.listdir(base))"
63 | ]
64 | },
65 | {
66 | "cell_type": "code",
67 | "execution_count": null,
68 | "id": "e754affa",
69 | "metadata": {},
70 | "outputs": [],
71 | "source": [
72 | "for image in os.listdir('ISIC2018_Task3_Training_Input'):\n",
73 | " if \"jpg\" not in image:\n",
74 | " os.remove('ISIC2018_Task3_Training_Input/'+image)\n",
75 | "\n",
76 | "for image in os.listdir('ISIC2018_Task3_Training_Input'):\n",
77 | " if \"jpg\" not in image:\n",
78 | " print(image)"
79 | ]
80 | },
81 | {
82 | "cell_type": "code",
83 | "execution_count": null,
84 | "id": "b71a7814",
85 | "metadata": {},
86 | "outputs": [],
87 | "source": [
88 | "mapping = {0:\"MEL\", 1:\"NV\", 2:\"BCC\", 3:\"AKIEC\", 4:\"BKL\", 5:\"DF\", 6:\"VASC\"}\n",
89 | "\n",
90 | "df_labels = pd.read_csv(\"../input/isictruth/ISIC2018GroundTruth.csv\")\n",
91 | "for i in range(len(df_labels)):\n",
92 | " labels = df_labels.iloc[i,1:]\n",
93 | " df_labels.loc[i,\"label\"] = mapping[list(labels).index(1)]\n",
94 | "\n",
95 | "#df_labels[\"label\"]=df_labels[\"label\"].astype(int)\n",
96 | "df_labels.set_index('image', inplace=True)"
97 | ]
98 | },
99 | {
100 | "cell_type": "code",
101 | "execution_count": 5,
102 | "id": "083c0229",
103 | "metadata": {},
104 | "outputs": [
105 | {
106 | "name": "stdout",
107 | "output_type": "stream",
108 | "text": [
109 | "NV 6705\n",
110 | "MEL 1113\n",
111 | "BKL 1099\n",
112 | "BCC 514\n",
113 | "AKIEC 327\n",
114 | "VASC 142\n",
115 | "DF 115\n",
116 | "Name: label, dtype: int64\n"
117 | ]
118 | }
119 | ],
120 | "source": [
121 | "df_labels['label'].value_counts()"
122 | ]
123 | },
124 | {
125 | "cell_type": "markdown",
126 | "id": "fe973dfb",
127 | "metadata": {},
128 | "source": [
129 | "### Computing class weights"
130 | ]
131 | },
132 | {
133 | "cell_type": "code",
134 | "execution_count": 10,
135 | "id": "da687f41",
136 | "metadata": {},
137 | "outputs": [
138 | {
139 | "name": "stdout",
140 | "output_type": "stream",
141 | "text": [
142 | "{0: 4.375273044997815,\n",
143 | " 1: 2.78349082823791,\n",
144 | " 2: 1.301832835044846,\n",
145 | " 3: 12.440993788819876,\n",
146 | " 4: 1.2854575792581184,\n",
147 | " 5: 0.21338020666879728,\n",
148 | " 6: 10.075452716297788}\n"
149 | ]
150 | }
151 | ],
152 | "source": [
153 | "from sklearn.utils import class_weight\n",
154 | "\n",
155 | "class_weights = class_weight.compute_class_weight('balanced',\n",
156 | " classes=['AKIEC', 'BCC', 'BKL', 'DF', 'MEL', 'NV', 'VASC'],\n",
157 | " y=df_labels[\"label\"])\n",
158 | "class_wt_dict=dict(enumerate(class_weights))\n",
159 | "class_wt_dict"
160 | ]
161 | },
162 | {
163 | "cell_type": "code",
164 | "execution_count": 18,
165 | "id": "e6dc59ec",
166 | "metadata": {},
167 | "outputs": [
168 | {
169 | "name": "stdout",
170 | "output_type": "stream",
171 | "text": [
172 | "\n",
173 | "100%|██████████| 10015/10015 [00:06<00:00, 1625.40it/s]\n",
174 | "\n"
175 | ]
176 | }
177 | ],
178 | "source": [
179 | "from tqdm import tqdm\n",
180 | "\n",
181 | "images = os.listdir('ISIC2018_Task3_Training_Input')\n",
182 | "\n",
183 | "for image in tqdm(images):\n",
184 | " fname=image[:-4]\n",
185 | " label=df_labels.loc[fname, \"label\"]\n",
186 | " src = os.path.join('ISIC2018_Task3_Training_Input', image)\n",
187 | " dst = os.path.join('HAM_Dataset', label, image)\n",
188 | " shutil.copyfile(src, dst)"
189 | ]
190 | },
191 | {
192 | "cell_type": "markdown",
193 | "id": "7db46759",
194 | "metadata": {},
195 | "source": [
196 | "### Data Augmentation"
197 | ]
198 | },
199 | {
200 | "cell_type": "code",
201 | "execution_count": 11,
202 | "id": "fc89f32c",
203 | "metadata": {},
204 | "outputs": [
205 | {
206 | "name": "stdout",
207 | "output_type": "stream",
208 | "text": [
209 | "Found 8516 images belonging to 7 classes.\n",
210 | " Found 1499 images belonging to 7 classes.\n",
211 | " {'AKIEC': 0, 'BCC': 1, 'BKL': 2, 'DF': 3, 'MEL': 4, 'NV': 5, 'VASC': 6}\n"
212 | ]
213 | }
214 | ],
215 | "source": [
216 | "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
217 | "from tensorflow.keras.applications.resnet_v2 import preprocess_input as base_preprocess\n",
218 | "\n",
219 | "image_gen = ImageDataGenerator(rotation_range=30,\n",
220 | " width_shift_range=0.1,\n",
221 | " height_shift_range=0.1,\n",
222 | " shear_range=0.1,\n",
223 | " zoom_range=0.2,\n",
224 | " horizontal_flip=True,\n",
225 | " fill_mode='nearest',\n",
226 | " rescale=1/255,\n",
227 | " validation_split=0.15)\n",
228 | "\n",
229 | "data_dir = 'HAM_Dataset'\n",
230 | "batch_size = 128\n",
231 | "target_size = (224,224)\n",
232 | "train_image_gen = image_gen.flow_from_directory(data_dir, \n",
233 | " target_size=target_size,\n",
234 | " color_mode='rgb',\n",
235 | " batch_size=batch_size,\n",
236 | " class_mode='categorical',\n",
237 | " subset=\"training\")\n",
238 | "\n",
239 | "test_image_gen = image_gen.flow_from_directory(data_dir, \n",
240 | " target_size=target_size, \n",
241 | " color_mode='rgb',\n",
242 | " batch_size=batch_size,\n",
243 | " class_mode='categorical',\n",
244 | " shuffle=False,\n",
245 | " subset=\"validation\")\n",
246 | "\n",
247 | "print(test_image_gen.class_indices)"
248 | ]
249 | },
250 | {
251 | "cell_type": "markdown",
252 | "id": "b9d19125",
253 | "metadata": {},
254 | "source": [
255 | "### Baseline CNN Model"
256 | ]
257 | },
258 | {
259 | "cell_type": "code",
260 | "execution_count": 14,
261 | "id": "eb4948e5",
262 | "metadata": {},
263 | "outputs": [
264 | {
265 | "name": "stdout",
266 | "output_type": "stream",
267 | "text": [
268 | "\n",
269 | "Model: \"sequential_3\"\n",
270 | "_________________________________________________________________\n",
271 | "Layer (type) Output Shape Param # \n",
272 | "=================================================================\n",
273 | "conv2d_12 (Conv2D) (None, 222, 222, 64) 1792 \n",
274 | "_________________________________________________________________\n",
275 | "max_pooling2d_12 (MaxPooling (None, 111, 111, 64) 0 \n",
276 | "_________________________________________________________________\n",
277 | "conv2d_13 (Conv2D) (None, 109, 109, 64) 36928 \n",
278 | "_________________________________________________________________\n",
279 | "max_pooling2d_13 (MaxPooling (None, 54, 54, 64) 0 \n",
280 | "_________________________________________________________________\n",
281 | "conv2d_14 (Conv2D) (None, 52, 52, 128) 73856 \n",
282 | "_________________________________________________________________\n",
283 | "max_pooling2d_14 (MaxPooling (None, 26, 26, 128) 0 \n",
284 | "_________________________________________________________________\n",
285 | "conv2d_15 (Conv2D) (None, 24, 24, 256) 295168 \n",
286 | "_________________________________________________________________\n",
287 | "max_pooling2d_15 (MaxPooling (None, 12, 12, 256) 0 \n",
288 | "_________________________________________________________________\n",
289 | "flatten_3 (Flatten) (None, 36864) 0 \n",
290 | "_________________________________________________________________\n",
291 | "dense_6 (Dense) (None, 128) 4718720 \n",
292 | "_________________________________________________________________\n",
293 | "dropout_3 (Dropout) (None, 128) 0 \n",
294 | "_________________________________________________________________\n",
295 | "dense_7 (Dense) (None, 7) 903 \n",
296 | "=================================================================\n",
297 | "Total params: 5,127,367\n",
298 | "Trainable params: 5,127,367\n",
299 | "Non-trainable params: 0\n",
300 | "_________________________________________________________________\n",
301 | "add Codeadd Markdown\n",
302 | "\n"
303 | ]
304 | }
305 | ],
306 | "source": [
307 | "from tensorflow.keras.models import Sequential\n",
308 | "from tensorflow.keras.layers import Dense, Conv2D, MaxPool2D, Flatten, Dropout\n",
309 | "\n",
310 | "model = Sequential()\n",
311 | "\n",
312 | "model.add( Conv2D(filters=64, kernel_size=(3,3), input_shape=(224,224,3), activation=\"relu\") )\n",
313 | "model.add( MaxPool2D(pool_size=(2,2)) )\n",
314 | "\n",
315 | "model.add( Conv2D(filters=64, kernel_size=(3,3), activation=\"relu\") )\n",
316 | "model.add( MaxPool2D(pool_size=(2,2)) )\n",
317 | "\n",
318 | "model.add( Conv2D(filters=128, kernel_size=(3,3), activation=\"relu\") )\n",
319 | "model.add( MaxPool2D(pool_size=(2,2)) )\n",
320 | "\n",
321 | "model.add( Conv2D(filters=256, kernel_size=(3,3), activation=\"relu\") )\n",
322 | "model.add( MaxPool2D(pool_size=(2,2)) )\n",
323 | "\n",
324 | "model.add(Flatten())\n",
325 | "model.add(Dense(128, activation=\"relu\"))\n",
326 | "model.add(Dropout(0.5))\n",
327 | "\n",
328 | "model.add(Dense(7, activation=\"softmax\"))\n",
329 | "\n",
330 | "model.compile(loss=\"categorical_crossentropy\", optimizer=\"adam\", metrics=[\"accuracy\"])\n",
331 | "model.summary()"
332 | ]
333 | },
334 | {
335 | "cell_type": "markdown",
336 | "id": "c62414f2",
337 | "metadata": {},
338 | "source": [
339 | "### Training and Validation"
340 | ]
341 | },
342 | {
343 | "cell_type": "code",
344 | "execution_count": null,
345 | "id": "6b387e8b",
346 | "metadata": {},
347 | "outputs": [],
348 | "source": [
349 | "from tensorflow.keras.callbacks import ReduceLROnPlateau\n",
350 | "from tensorflow.keras.callbacks import EarlyStopping\n",
351 | "from tensorflow.keras.callbacks import ModelCheckpoint\n",
352 | "\n",
353 | "lr_reduce = ReduceLROnPlateau(monitor='val_accuracy', factor=0.5, patience=1,mode='max', min_lr=0.00001,verbose=1)\n",
354 | "early_stop = EarlyStopping(monitor=\"val_loss\", patience=2, verbose=1)\n",
355 | "model_chkpt = ModelCheckpoint('best_model_dn121.hdf5',save_best_only=True, monitor='val_accuracy',verbose=1)\n",
356 | "\n",
357 | "callback_list = [model_chkpt,lr_reduce]"
358 | ]
359 | },
360 | {
361 | "cell_type": "code",
362 | "execution_count": 19,
363 | "id": "39ff5ca2",
364 | "metadata": {},
365 | "outputs": [
366 | {
367 | "name": "stdout",
368 | "output_type": "stream",
369 | "text": [
370 | "\n",
371 | "Epoch 42/45\n",
372 | "67/67 [==============================] - 126s 2s/step - loss: 0.3013 - accuracy: 0.7550 - val_loss: 1.3435 - val_accuracy: 0.6758\n",
373 | "\n",
374 | "Epoch 00001: val_accuracy improved from 0.61107 to 0.67578, saving model to best_model_dn121.hdf5\n",
375 | "Epoch 43/45\n",
376 | "67/67 [==============================] - 124s 2s/step - loss: 0.2686 - accuracy: 0.7810 - val_loss: 1.5529 - val_accuracy: 0.6851\n",
377 | "\n",
378 | "Epoch 00002: val_accuracy improved from 0.67578 to 0.68512, saving model to best_model_dn121.hdf5\n",
379 | "Epoch 44/45\n",
380 | "67/67 [==============================] - 124s 2s/step - loss: 0.2371 - accuracy: 0.8033 - val_loss: 1.4009 - val_accuracy: 0.7111\n",
381 | "\n",
382 | "Epoch 00003: val_accuracy improved from 0.68512 to 0.71114, saving model to best_model_dn121.hdf5\n",
383 | "Epoch 45/45\n",
384 | "60/67 [=========================>....] - ETA: 11s - loss: 0.2297 - accuracy: 0.8042\n",
385 | "\n",
386 | "\n"
387 | ]
388 | }
389 | ],
390 | "source": [
391 | "history = model.fit(train_image_gen,\n",
392 | " epochs=15, \n",
393 | " validation_data = test_image_gen,\n",
394 | " class_weight=class_wt_dict,\n",
395 | " callbacks=callback_list)"
396 | ]
397 | },
398 | {
399 | "cell_type": "markdown",
400 | "id": "78865b82",
401 | "metadata": {},
402 | "source": [
403 | "### Model Evaluation"
404 | ]
405 | },
406 | {
407 | "cell_type": "code",
408 | "execution_count": 16,
409 | "id": "336bcbf0",
410 | "metadata": {},
411 | "outputs": [
412 | {
413 | "name": "stdout",
414 | "output_type": "stream",
415 | "text": [
416 | "\n",
417 | "array([[ 12, 16, 7, 1, 5, 8, 0],\n",
418 | " [ 2, 46, 6, 4, 9, 10, 0],\n",
419 | " [ 6, 23, 67, 2, 30, 34, 2],\n",
420 | " [ 3, 4, 2, 6, 1, 1, 0],\n",
421 | " [ 3, 4, 29, 0, 78, 51, 1],\n",
422 | " [ 8, 27, 44, 6, 78, 836, 6],\n",
423 | " [ 0, 3, 1, 0, 0, 2, 15]])\n",
424 | "\n"
425 | ]
426 | }
427 | ],
428 | "source": [
429 | "import sklearn\n",
430 | "from sklearn.metrics import classification_report, confusion_matrix\n",
431 | "\n",
432 | "cm = confusion_matrix(test_labels, predictions)\n",
433 | "cm"
434 | ]
435 | },
436 | {
437 | "cell_type": "code",
438 | "execution_count": 17,
439 | "id": "5c15da6a",
440 | "metadata": {},
441 | "outputs": [
442 | {
443 | "name": "stdout",
444 | "output_type": "stream",
445 | "text": [
446 | "\n",
447 | "precision recall f1-score support\n",
448 | "\n",
449 | " 0 0.35 0.24 0.29 49\n",
450 | " 1 0.37 0.60 0.46 77\n",
451 | " 2 0.43 0.41 0.42 164\n",
452 | " 3 0.32 0.35 0.33 17\n",
453 | " 4 0.39 0.47 0.43 166\n",
454 | " 5 0.89 0.83 0.86 1005\n",
455 | " 6 0.62 0.71 0.67 21\n",
456 | "\n",
457 | " accuracy 0.71 1499\n",
458 | " macro avg 0.48 0.52 0.49 1499\n",
459 | "weighted avg 0.73 0.71 0.71 1499\n",
460 | "\n"
461 | ]
462 | }
463 | ],
464 | "source": [
465 | "print(classification_report(test_labels, predictions))"
466 | ]
467 | },
468 | {
469 | "cell_type": "code",
470 | "execution_count": null,
471 | "id": "ceef50c8",
472 | "metadata": {},
473 | "outputs": [],
474 | "source": []
475 | }
476 | ],
477 | "metadata": {
478 | "kernelspec": {
479 | "display_name": "Python 3",
480 | "language": "python",
481 | "name": "python3"
482 | },
483 | "language_info": {
484 | "codemirror_mode": {
485 | "name": "ipython",
486 | "version": 3
487 | },
488 | "file_extension": ".py",
489 | "mimetype": "text/x-python",
490 | "name": "python",
491 | "nbconvert_exporter": "python",
492 | "pygments_lexer": "ipython3",
493 | "version": "3.8.8"
494 | }
495 | },
496 | "nbformat": 4,
497 | "nbformat_minor": 5
498 | }
499 |
--------------------------------------------------------------------------------
/Skin Cancer Prediction DenseNet121.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "## Skin Cancer Classification Transfer Learning DenseNet121"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 2,
13 | "metadata": {
14 | "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19",
15 | "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5",
16 | "execution": {
17 | "iopub.execute_input": "2021-09-20T09:53:25.793096Z",
18 | "iopub.status.busy": "2021-09-20T09:53:25.792824Z",
19 | "iopub.status.idle": "2021-09-20T09:53:25.801106Z",
20 | "shell.execute_reply": "2021-09-20T09:53:25.800410Z",
21 | "shell.execute_reply.started": "2021-09-20T09:53:25.793067Z"
22 | }
23 | },
24 | "outputs": [],
25 | "source": [
26 | "import os\n",
27 | "import shutil\n",
28 | "from tqdm import tqdm\n",
29 | "\n",
30 | "import cv2\n",
31 | "import sklearn\n",
32 | "import numpy as np\n",
33 | "import pandas as pd\n",
34 | "import matplotlib.pyplot as plt\n",
35 | "import seaborn as sns\n",
36 | "plt.style.use(\"classic\")"
37 | ]
38 | },
39 | {
40 | "cell_type": "markdown",
41 | "metadata": {},
42 | "source": [
43 | "### Creating Dataset"
44 | ]
45 | },
46 | {
47 | "cell_type": "code",
48 | "execution_count": 2,
49 | "metadata": {
50 | "execution": {
51 | "iopub.execute_input": "2021-09-20T05:53:07.683746Z",
52 | "iopub.status.busy": "2021-09-20T05:53:07.682980Z",
53 | "iopub.status.idle": "2021-09-20T05:53:07.709720Z",
54 | "shell.execute_reply": "2021-09-20T05:53:07.708962Z",
55 | "shell.execute_reply.started": "2021-09-20T05:53:07.683709Z"
56 | }
57 | },
58 | "outputs": [
59 | {
60 | "name": "stdout",
61 | "output_type": "stream",
62 | "text": [
63 | "['MEL', 'VASC', 'DF', 'NV', 'BKL', 'AKIEC', 'BCC']\n"
64 | ]
65 | }
66 | ],
67 | "source": [
68 | "print(os.listdir('../input/ham-dataset/HAM_Dataset'))"
69 | ]
70 | },
71 | {
72 | "cell_type": "markdown",
73 | "metadata": {},
74 | "source": [
75 | "### Train Test Split"
76 | ]
77 | },
78 | {
79 | "cell_type": "code",
80 | "execution_count": 77,
81 | "metadata": {
82 | "execution": {
83 | "iopub.execute_input": "2021-09-20T07:40:53.011177Z",
84 | "iopub.status.busy": "2021-09-20T07:40:53.010316Z",
85 | "iopub.status.idle": "2021-09-20T07:40:53.019292Z",
86 | "shell.execute_reply": "2021-09-20T07:40:53.018318Z",
87 | "shell.execute_reply.started": "2021-09-20T07:40:53.011131Z"
88 | }
89 | },
90 | "outputs": [],
91 | "source": [
92 | "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
93 | "from tensorflow.keras.applications.densenet import preprocess_input as base_preprocess\n",
94 | "\n",
95 | "\n",
96 | "image_gen = ImageDataGenerator(preprocessing_function=base_preprocess,\n",
97 | " rotation_range=20,\n",
98 | " width_shift_range=0.1,\n",
99 | " height_shift_range=0.1,\n",
100 | " shear_range=0.1,\n",
101 | " zoom_range=0.1,\n",
102 | " horizontal_flip=True,\n",
103 | " fill_mode='nearest',\n",
104 | " #rescale=1/255,\n",
105 | " validation_split=0.20)"
106 | ]
107 | },
108 | {
109 | "cell_type": "code",
110 | "execution_count": 78,
111 | "metadata": {
112 | "execution": {
113 | "iopub.execute_input": "2021-09-20T07:40:53.907860Z",
114 | "iopub.status.busy": "2021-09-20T07:40:53.907598Z",
115 | "iopub.status.idle": "2021-09-20T07:40:54.802207Z",
116 | "shell.execute_reply": "2021-09-20T07:40:54.801390Z",
117 | "shell.execute_reply.started": "2021-09-20T07:40:53.907829Z"
118 | }
119 | },
120 | "outputs": [
121 | {
122 | "name": "stdout",
123 | "output_type": "stream",
124 | "text": [
125 | "Found 12085 images belonging to 7 classes.\n",
126 | "Found 3019 images belonging to 7 classes.\n",
127 | "{'AKIEC': 0, 'BCC': 1, 'BKL': 2, 'DF': 3, 'MEL': 4, 'NV': 5, 'VASC': 6}\n"
128 | ]
129 | }
130 | ],
131 | "source": [
132 | "data_dir = '../input/ham-dataset/HAM_Dataset'\n",
133 | "batch_size = 64\n",
134 | "train_image_gen = image_gen.flow_from_directory(data_dir, \n",
135 | " target_size=(224,224), \n",
136 | " color_mode='rgb',\n",
137 | " batch_size=batch_size,\n",
138 | " class_mode='categorical',\n",
139 | " subset=\"training\")\n",
140 | "\n",
141 | "test_image_gen = image_gen.flow_from_directory(data_dir, \n",
142 | " target_size=(224,224), \n",
143 | " color_mode='rgb',\n",
144 | " batch_size=batch_size,\n",
145 | " class_mode='categorical',\n",
146 | " shuffle=False,\n",
147 | " subset=\"validation\")\n",
148 | "\n",
149 | "print(test_image_gen.class_indices)"
150 | ]
151 | },
152 | {
153 | "cell_type": "code",
154 | "execution_count": 80,
155 | "metadata": {
156 | "execution": {
157 | "iopub.execute_input": "2021-09-20T07:40:55.225838Z",
158 | "iopub.status.busy": "2021-09-20T07:40:55.225619Z",
159 | "iopub.status.idle": "2021-09-20T07:40:56.697774Z",
160 | "shell.execute_reply": "2021-09-20T07:40:56.697080Z",
161 | "shell.execute_reply.started": "2021-09-20T07:40:55.225813Z"
162 | }
163 | },
164 | "outputs": [
165 | {
166 | "data": {
167 | "text/plain": [
168 | ""
169 | ]
170 | },
171 | "execution_count": 80,
172 | "metadata": {},
173 | "output_type": "execute_result"
174 | },
175 | {
176 | "data": {
177 | "image/png": "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\n",
178 | "text/plain": [
179 | ""
180 | ]
181 | },
182 | "metadata": {},
183 | "output_type": "display_data"
184 | }
185 | ],
186 | "source": [
187 | "plt.figure(figsize=(3,3))\n",
188 | "plt.imshow(train_image_gen[0][0][0])"
189 | ]
190 | },
191 | {
192 | "cell_type": "markdown",
193 | "metadata": {},
194 | "source": [
195 | "## Transfer Learning using DenseNet121 Model"
196 | ]
197 | },
198 | {
199 | "cell_type": "code",
200 | "execution_count": 1,
201 | "metadata": {},
202 | "outputs": [
203 | {
204 | "name": "stdout",
205 | "output_type": "stream",
206 | "text": [
207 | "\n",
208 | "Model: \"model_12\"\n",
209 | "__________________________________________________________________________________________________\n",
210 | "Layer (type) Output Shape Param # Connected to \n",
211 | "==================================================================================================\n",
212 | "input_13 (InputLayer) [(None, 224, 224, 3) 0 \n",
213 | "__________________________________________________________________________________________________\n",
214 | "zero_padding2d_8 (ZeroPadding2D (None, 230, 230, 3) 0 input_13[0][0] \n",
215 | "__________________________________________________________________________________________________\n",
216 | "conv1/conv (Conv2D) (None, 112, 112, 64) 9408 zero_padding2d_8[0][0] \n",
217 | "__________________________________________________________________________________________________\n",
218 | "conv1/bn (BatchNormalization) (None, 112, 112, 64) 256 conv1/conv[0][0] \n",
219 | "__________________________________________________________________________________________________\n",
220 | "conv1/relu (Activation) (None, 112, 112, 64) 0 conv1/bn[0][0] \n",
221 | "__________________________________________________________________________________________________\n",
222 | "zero_padding2d_9 (ZeroPadding2D (None, 114, 114, 64) 0 conv1/relu[0][0] \n",
223 | "__________________________________________________________________________________________________\n",
224 | "pool1 (MaxPooling2D) (None, 56, 56, 64) 0 zero_padding2d_9[0][0] \n",
225 | "__________________________________________________________________________________________________\n",
226 | "conv2_block1_0_bn (BatchNormali (None, 56, 56, 64) 256 pool1[0][0] \n",
227 | "__________________________________________________________________________________________________\n",
228 | "conv2_block1_0_relu (Activation (None, 56, 56, 64) 0 conv2_block1_0_bn[0][0] \n",
229 | "__________________________________________________________________________________________________\n",
230 | "conv2_block1_1_conv (Conv2D) (None, 56, 56, 128) 8192 conv2_block1_0_relu[0][0] \n",
231 | "__________________________________________________________________________________________________\n",
232 | "conv2_block1_1_bn (BatchNormali (None, 56, 56, 128) 512 conv2_block1_1_conv[0][0] \n",
233 | "__________________________________________________________________________________________________\n",
234 | "conv2_block1_1_relu (Activation (None, 56, 56, 128) 0 conv2_block1_1_bn[0][0] \n",
235 | "__________________________________________________________________________________________________\n",
236 | "conv2_block1_2_conv (Conv2D) (None, 56, 56, 32) 36864 conv2_block1_1_relu[0][0] \n",
237 | "__________________________________________________________________________________________________\n",
238 | "conv2_block1_concat (Concatenat (None, 56, 56, 96) 0 pool1[0][0] \n",
239 | " conv2_block1_2_conv[0][0] \n",
240 | ".\n",
241 | ".\n",
242 | ".\n",
243 | ".\n",
244 | "\n",
245 | "__________________________________________________________________________________________________\n",
246 | "bn (BatchNormalization) (None, 7, 7, 1024) 4096 conv5_block16_concat[0][0] \n",
247 | "__________________________________________________________________________________________________\n",
248 | "relu (Activation) (None, 7, 7, 1024) 0 bn[0][0] \n",
249 | "__________________________________________________________________________________________________\n",
250 | "flatten_12 (Flatten) (None, 50176) 0 relu[0][0] \n",
251 | "__________________________________________________________________________________________________\n",
252 | "dense_24 (Dense) (None, 128) 6422656 flatten_12[0][0] \n",
253 | "__________________________________________________________________________________________________\n",
254 | "dropout_12 (Dropout) (None, 128) 0 dense_24[0][0] \n",
255 | "__________________________________________________________________________________________________\n",
256 | "dense_25 (Dense) (None, 7) 903 dropout_12[0][0] \n",
257 | "==================================================================================================\n",
258 | "Total params: 13,461,063\n",
259 | "Trainable params: 13,377,415\n",
260 | "Non-trainable params: 83,648\n",
261 | "__________________________________________________________________________________________________\n",
262 | "\n"
263 | ]
264 | }
265 | ],
266 | "source": [
267 | "from tensorflow.keras.applications import *\n",
268 | "from tensorflow.keras.layers import Flatten, Dense, Input, Dropout\n",
269 | "from tensorflow.keras.models import Model\n",
270 | "from tensorflow.keras.optimizers import Adam\n",
271 | "\n",
272 | "base_model = DenseNet121(weights='imagenet', include_top=False, input_shape=(224, 224, 3))\n",
273 | "\n",
274 | "for layer in base_model.layers:\n",
275 | " layer.trainable = True\n",
276 | "\n",
277 | "x = base_model.output\n",
278 | "x = Flatten()(x)\n",
279 | "# x = Dense(4096, activation='relu')(x)\n",
280 | "# x = Dropout(0.5)(x)\n",
281 | "x = Dense(128, activation='relu')(x)\n",
282 | "x = Dropout(0.5)(x)\n",
283 | "x = Dense(7, activation='softmax')(x)\n",
284 | "tl_model = Model(inputs=base_model.input, outputs=x)\n",
285 | "\n",
286 | "\n",
287 | "tl_model.summary()\n",
288 | "optimizer = Adam(0.0001)\n",
289 | "tl_model.compile(loss=\"categorical_crossentropy\", optimizer=optimizer, metrics=[\"accuracy\"])"
290 | ]
291 | },
292 | {
293 | "cell_type": "code",
294 | "execution_count": 84,
295 | "metadata": {
296 | "execution": {
297 | "iopub.execute_input": "2021-09-20T07:41:32.803559Z",
298 | "iopub.status.busy": "2021-09-20T07:41:32.802865Z",
299 | "iopub.status.idle": "2021-09-20T07:41:32.809583Z",
300 | "shell.execute_reply": "2021-09-20T07:41:32.808787Z",
301 | "shell.execute_reply.started": "2021-09-20T07:41:32.803522Z"
302 | }
303 | },
304 | "outputs": [],
305 | "source": [
306 | "from tensorflow.keras.callbacks import ReduceLROnPlateau\n",
307 | "from tensorflow.keras.callbacks import EarlyStopping\n",
308 | "from tensorflow.keras.callbacks import ModelCheckpoint\n",
309 | "\n",
310 | "lr_reduce = ReduceLROnPlateau(monitor='val_accuracy', factor=0.5, patience=2,mode='max', min_lr=0.00001,verbose=1)\n",
311 | "early_stop = EarlyStopping(monitor=\"val_loss\", patience=2, verbose=1)\n",
312 | "model_chkpt = ModelCheckpoint('best_model_aug.hdf5',save_best_only=True, monitor='val_accuracy',verbose=1)\n",
313 | "\n",
314 | "callback_list = [model_chkpt,lr_reduce]"
315 | ]
316 | },
317 | {
318 | "cell_type": "markdown",
319 | "metadata": {},
320 | "source": [
321 | "### Model Training"
322 | ]
323 | },
324 | {
325 | "cell_type": "code",
326 | "execution_count": 85,
327 | "metadata": {
328 | "execution": {
329 | "iopub.execute_input": "2021-09-20T07:41:33.998735Z",
330 | "iopub.status.busy": "2021-09-20T07:41:33.998425Z",
331 | "iopub.status.idle": "2021-09-20T09:37:55.639900Z",
332 | "shell.execute_reply": "2021-09-20T09:37:55.639133Z",
333 | "shell.execute_reply.started": "2021-09-20T07:41:33.998702Z"
334 | }
335 | },
336 | "outputs": [
337 | {
338 | "name": "stdout",
339 | "output_type": "stream",
340 | "text": [
341 | "Epoch 1/20\n",
342 | "189/189 [==============================] - 352s 2s/step - loss: 1.7499 - accuracy: 0.4074 - val_loss: 0.9937 - val_accuracy: 0.6615\n",
343 | "\n",
344 | "Epoch 00001: val_accuracy improved from -inf to 0.66148, saving model to best_model_aug.hdf5\n",
345 | "Epoch 2/20\n",
346 | "189/189 [==============================] - 340s 2s/step - loss: 0.7136 - accuracy: 0.7340 - val_loss: 0.8230 - val_accuracy: 0.7284\n",
347 | "\n",
348 | "Epoch 00002: val_accuracy improved from 0.66148 to 0.72839, saving model to best_model_aug.hdf5\n",
349 | "Epoch 3/20\n",
350 | "189/189 [==============================] - 339s 2s/step - loss: 0.5030 - accuracy: 0.8223 - val_loss: 0.8826 - val_accuracy: 0.7479\n",
351 | "\n",
352 | "Epoch 00003: val_accuracy improved from 0.72839 to 0.74793, saving model to best_model_aug.hdf5\n",
353 | "Epoch 4/20\n",
354 | "189/189 [==============================] - 339s 2s/step - loss: 0.3668 - accuracy: 0.8721 - val_loss: 1.0351 - val_accuracy: 0.7440\n",
355 | "\n",
356 | "Epoch 00004: val_accuracy did not improve from 0.74793\n",
357 | "Epoch 5/20\n",
358 | "189/189 [==============================] - 340s 2s/step - loss: 0.3209 - accuracy: 0.8906 - val_loss: 0.7385 - val_accuracy: 0.8019\n",
359 | "\n",
360 | "Epoch 00005: val_accuracy improved from 0.74793 to 0.80192, saving model to best_model_aug.hdf5\n",
361 | "Epoch 6/20\n",
362 | "189/189 [==============================] - 340s 2s/step - loss: 0.2600 - accuracy: 0.9136 - val_loss: 0.8868 - val_accuracy: 0.7943\n",
363 | "\n",
364 | "Epoch 00006: val_accuracy did not improve from 0.80192\n",
365 | "Epoch 7/20\n",
366 | "189/189 [==============================] - 338s 2s/step - loss: 0.2152 - accuracy: 0.9310 - val_loss: 0.8217 - val_accuracy: 0.7764\n",
367 | "\n",
368 | "Epoch 00007: val_accuracy did not improve from 0.80192\n",
369 | "\n",
370 | "Epoch 00007: ReduceLROnPlateau reducing learning rate to 4.999999873689376e-05.\n",
371 | "Epoch 8/20\n",
372 | "189/189 [==============================] - 338s 2s/step - loss: 0.1439 - accuracy: 0.9501 - val_loss: 0.9309 - val_accuracy: 0.8066\n",
373 | "\n",
374 | "Epoch 00008: val_accuracy improved from 0.80192 to 0.80656, saving model to best_model_aug.hdf5\n",
375 | "Epoch 9/20\n",
376 | "189/189 [==============================] - 338s 2s/step - loss: 0.1155 - accuracy: 0.9583 - val_loss: 1.0752 - val_accuracy: 0.7870\n",
377 | "\n",
378 | "Epoch 00009: val_accuracy did not improve from 0.80656\n",
379 | "Epoch 10/20\n",
380 | "189/189 [==============================] - 343s 2s/step - loss: 0.0943 - accuracy: 0.9686 - val_loss: 1.0865 - val_accuracy: 0.7900\n",
381 | "\n",
382 | "Epoch 00010: val_accuracy did not improve from 0.80656\n",
383 | "\n",
384 | "Epoch 00010: ReduceLROnPlateau reducing learning rate to 2.499999936844688e-05.\n",
385 | "Epoch 11/20\n",
386 | "189/189 [==============================] - 349s 2s/step - loss: 0.0774 - accuracy: 0.9745 - val_loss: 1.0638 - val_accuracy: 0.8089\n",
387 | "\n",
388 | "Epoch 00011: val_accuracy improved from 0.80656 to 0.80888, saving model to best_model_aug.hdf5\n",
389 | "Epoch 12/20\n",
390 | "189/189 [==============================] - 371s 2s/step - loss: 0.0580 - accuracy: 0.9834 - val_loss: 1.1004 - val_accuracy: 0.8115\n",
391 | "\n",
392 | "Epoch 00012: val_accuracy improved from 0.80888 to 0.81153, saving model to best_model_aug.hdf5\n",
393 | "Epoch 13/20\n",
394 | "189/189 [==============================] - 356s 2s/step - loss: 0.0491 - accuracy: 0.9837 - val_loss: 1.3549 - val_accuracy: 0.7917\n",
395 | "\n",
396 | "Epoch 00013: val_accuracy did not improve from 0.81153\n",
397 | "Epoch 14/20\n",
398 | "189/189 [==============================] - 355s 2s/step - loss: 0.0460 - accuracy: 0.9837 - val_loss: 1.2851 - val_accuracy: 0.7976\n",
399 | "\n",
400 | "Epoch 00014: val_accuracy did not improve from 0.81153\n",
401 | "\n",
402 | "Epoch 00014: ReduceLROnPlateau reducing learning rate to 1.249999968422344e-05.\n",
403 | "Epoch 15/20\n",
404 | "189/189 [==============================] - 357s 2s/step - loss: 0.0422 - accuracy: 0.9839 - val_loss: 1.2144 - val_accuracy: 0.8119\n",
405 | "\n",
406 | "Epoch 00015: val_accuracy improved from 0.81153 to 0.81186, saving model to best_model_aug.hdf5\n",
407 | "Epoch 16/20\n",
408 | "189/189 [==============================] - 353s 2s/step - loss: 0.0345 - accuracy: 0.9874 - val_loss: 1.3847 - val_accuracy: 0.7950\n",
409 | "\n",
410 | "Epoch 00016: val_accuracy did not improve from 0.81186\n",
411 | "Epoch 17/20\n",
412 | "189/189 [==============================] - 353s 2s/step - loss: 0.0345 - accuracy: 0.9870 - val_loss: 1.2980 - val_accuracy: 0.7996\n",
413 | "\n",
414 | "Epoch 00017: val_accuracy did not improve from 0.81186\n",
415 | "\n",
416 | "Epoch 00017: ReduceLROnPlateau reducing learning rate to 1e-05.\n",
417 | "Epoch 18/20\n",
418 | "189/189 [==============================] - 361s 2s/step - loss: 0.0302 - accuracy: 0.9890 - val_loss: 1.3043 - val_accuracy: 0.8062\n",
419 | "\n",
420 | "Epoch 00018: val_accuracy did not improve from 0.81186\n",
421 | "Epoch 19/20\n",
422 | "189/189 [==============================] - 351s 2s/step - loss: 0.0285 - accuracy: 0.9912 - val_loss: 1.3658 - val_accuracy: 0.8062\n",
423 | "\n",
424 | "Epoch 00019: val_accuracy did not improve from 0.81186\n",
425 | "Epoch 20/20\n",
426 | "189/189 [==============================] - 354s 2s/step - loss: 0.0262 - accuracy: 0.9906 - val_loss: 1.3751 - val_accuracy: 0.8162\n",
427 | "\n",
428 | "Epoch 00020: val_accuracy improved from 0.81186 to 0.81616, saving model to best_model_aug.hdf5\n"
429 | ]
430 | }
431 | ],
432 | "source": [
433 | "history = tl_model.fit(train_image_gen,\n",
434 | " epochs=20, \n",
435 | " validation_data = test_image_gen,\n",
436 | " callbacks=callback_list)"
437 | ]
438 | },
439 | {
440 | "cell_type": "markdown",
441 | "metadata": {},
442 | "source": [
443 | "### Model Evaluation"
444 | ]
445 | },
446 | {
447 | "cell_type": "code",
448 | "execution_count": 87,
449 | "metadata": {
450 | "execution": {
451 | "iopub.execute_input": "2021-09-20T09:40:42.140577Z",
452 | "iopub.status.busy": "2021-09-20T09:40:42.139902Z",
453 | "iopub.status.idle": "2021-09-20T09:40:42.381795Z",
454 | "shell.execute_reply": "2021-09-20T09:40:42.381131Z",
455 | "shell.execute_reply.started": "2021-09-20T09:40:42.140540Z"
456 | }
457 | },
458 | "outputs": [
459 | {
460 | "data": {
461 | "text/plain": [
462 | ""
463 | ]
464 | },
465 | "execution_count": 87,
466 | "metadata": {},
467 | "output_type": "execute_result"
468 | },
469 | {
470 | "data": {
471 | "image/png": "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DRuU3W6vyXqqfEo1/Pfgrnzz589XX3zxxWmf15j3u7vynez9999Xn3zyySmXtcb+aymvbXI5eWINk8lUM7HGydasWVNzFJSamsqWLVtabeKH8PDwmqPZgIAAOnXqhM1ma5XXdpU1a9Zw7rnnomkaPXv2pLS0lCNHXDI9bpNs3ryZmJgYIiMjW/21f6937951jr5Xr17Neec5538877zz6vwdgvPosm/fvgQHBxMcHEzfvn3ZsGFDq+Tr168fRqMRgJ49e3r07/BU+RqjMe93d+dTSvHzzz9zzjnnuPx1W4vXNrm4cmINd8vLyyMzM5Pu3bvXWbZz504efvhhwsPDufHGG0lISGjVbFOnTgXg/PPPr9MVy2az1RrE32KxYLPZCA8Pb9WMK1asqPdN5On9B1BYWFizT8LCwigsLKyzzu//XiMiIjxSWJcuXcqwYcPqXX66vwd3+vbbb1m+fDndunXjpptuqlNUG/N+d7ft27djNpuJjY2tdx1P7b/G8tqC3lZUVFQwffp0brnlFgIDA2stS0xM5I033sDf359169bx0ksv8dprr7VatmeffZaIiAgKCwt57rnniIuLo3fv3q32+o1ht9tZu3Yt119/fZ1lnt5/p6JpmtcODf3ZZ59hNBoZMWLEKZd76u9h7NixNec+5s+fzwcffMCkSZPc/rpNdboDC2gb7yevbXJpysQaQIsm1mguu93O9OnTGTFiBEOGDKmzPDAwEH9/f8A5YqXD4aCoqKjV8h3fX2azmUGDBrF79+46y0+eiONU+9jd1q9fT2JiImFhYXWWeXr/HWc2m2uaoo4cOXLK/wB///dqs9ladV9+//33rF27lsmTJ9f7gdPQ34O7hIWFYTAYMBgMjBkzhj179pwyW0Pvd3dyOBz8+uuvp/3vxlP7rym8tqB7+8QaSinefPNNOnXqxKWXXnrKdY4ePVrTpr979250XW+1D5yKigrKy8trbm/atInOnTvXWiclJYXly5ejlGLnzp0EBgZ6VXOLJ/ffyVJSUvjhhx8A+OGHHxg0aFCddfr378/GjRspKSmhpKSEjRs30r9//1bJt2HDBr744gv++te/4ufnd8p1GvP34C4nn5f59ddfT9ls1pj3uztt3ryZuLi4eufp9eT+awqvvlJ03bp1vP/++zUTa1x55ZW1Jtaoqqpi1qxZZGZm1kysER0d3SrZfvvtN/7+97/TuXPnmg+R6667ruaId+zYsXzzzTd89913GI1GfH19uemmm+jVq1er5Dt06BAvv/wy4Dz6GD58OFdeeSXfffddTT6lFHPmzGHjxo34+voyadIkkpKSWiUfON8YkyZNYtasWTXNVSfn88T+mzlzJtu2baO4uBiz2cz48eMZNGgQM2bMID8/v1a3xT179rB48WImTpwIONuvFyxYADi7LY4aNapV8i1YsAC73V7TLt2jRw/uuOMObDYbb731FlOmTKn376E18m3dupW9e/eiaRqRkZHccccdhIeH18oHp36/t0a+0aNHM3v2bHr06MHYsWNr1vXE/mspry7oQgghGs9rm1yEEEI0jRR0IYRoJ6SgCyFEOyEFXQgh2gkp6EII0U5IQRdCiHZCCroQQrQT/w8qSTYYaQYvQAAAAABJRU5ErkJggg==\n",
472 | "text/plain": [
473 | ""
474 | ]
475 | },
476 | "metadata": {},
477 | "output_type": "display_data"
478 | }
479 | ],
480 | "source": [
481 | "metrics = pd.DataFrame(tl_model.history.history)\n",
482 | "metrics[[\"loss\",\"val_loss\"]].plot()"
483 | ]
484 | },
485 | {
486 | "cell_type": "code",
487 | "execution_count": 88,
488 | "metadata": {
489 | "execution": {
490 | "iopub.execute_input": "2021-09-20T09:40:53.282394Z",
491 | "iopub.status.busy": "2021-09-20T09:40:53.282130Z",
492 | "iopub.status.idle": "2021-09-20T09:40:53.514401Z",
493 | "shell.execute_reply": "2021-09-20T09:40:53.513688Z",
494 | "shell.execute_reply.started": "2021-09-20T09:40:53.282368Z"
495 | }
496 | },
497 | "outputs": [
498 | {
499 | "data": {
500 | "text/plain": [
501 | ""
502 | ]
503 | },
504 | "execution_count": 88,
505 | "metadata": {},
506 | "output_type": "execute_result"
507 | },
508 | {
509 | "data": {
510 | "image/png": "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Y7FY2myTl5eHyWRiwIABDBw4kNLS0q7W3z0ywkWIXiFdlqGnq/8nHQZ6Tk4OpaWllJeX4/F4WLduHXl5ea22Ofvss9m2bRsANTU1lJaW+vvcA02VHp3DRUa4CCEiW4ddLkajkZtvvpkHH3wQXdeZPn06WVlZLFu2jJycHPLy8hg/fjybN2/mrrvuwmAwcP3115OUlNQX9besUhQPqaHdpymEEIHWqT703NxccnNzW9139dVX+69rmsaNN97IjTfe2LvVdYKMcBFCdJXH48Fk6pVDiCGl//+LSg6inTEx2FUIEVb0f/8TVbyvV19TyxqG4bs/6HC7m2++mZKSEtxuN7fccgvXX389H374IYsWLcLr9WKxWHjllVeoq6vj3nvvZcuWLWiaxl133cVll13GiBEj/CPx3nzzTQoKCnjssce48847iYmJYdu2beTl5XHllVfyq1/9CrfbTWxsLI888gjDhw/H6/XywAMPsGrVKgwGA9deey0jR47k6aef5umnnwZgzZo1PPvssyxZsqRX91FP9etAV64amcNFiDCzePFiUlNTaWho4LLLLuPiiy/mZz/7GcuXL2fIkCFUVVUB8Nhjj5GUlMQHH3wAQHV1dYevXVpaysqVKzEajbhcLlasWIHJZGLNmjX84Q9/4J///CcvvPACxcXFvPfee5hMJqqqqkhJSeGee+7BbrdjtVpZtmxZq16KUNGvA52WA6KaHBAVold1piUdKE8//TTvvPMO4DvH5YUXXmDSpEkMGeJruKWmpgLw8ccf8+STT/qfl5KS0uFrz5o1C6PRCPgGcNx5553s27cPTdNobm4G4JNPPuGmm27yd8kcfb9vf/vb/Oc//+Hqq69mw4YN/PnPf+6df3Av6teTc8kqRUKEl3Xr1vHxxx/zxhtvUFBQwLhx4xg7dmyXXuP442knnu0ZHx/vv/7www8zefJkVq1axTPPPNPhmaFXX301y5cv5/XXX2fWrFkh2QffrwOdkmKIjZMRLkKECZfLhdlsJi4ujqKiIjZu3Ijb7eazzz7j4EFfA+5ol8vUqVN55pln/M892uWSlpbG7t270XWdd99995TvlZGRAcArr7ziv//888/nueee859YdPT9jk6B8vjjj4dkdwv080BXJQdlhIsQYWTatGl4vV4uuOACfv/735Obm4vVauWPf/wjt956K/n5+dx+++0A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\n",
511 | "text/plain": [
512 | ""
513 | ]
514 | },
515 | "metadata": {},
516 | "output_type": "display_data"
517 | }
518 | ],
519 | "source": [
520 | "metrics[[\"accuracy\",\"val_accuracy\"]].plot()"
521 | ]
522 | },
523 | {
524 | "cell_type": "code",
525 | "execution_count": 90,
526 | "metadata": {
527 | "execution": {
528 | "iopub.execute_input": "2021-09-20T09:44:16.187572Z",
529 | "iopub.status.busy": "2021-09-20T09:44:16.186664Z",
530 | "iopub.status.idle": "2021-09-20T09:45:25.831164Z",
531 | "shell.execute_reply": "2021-09-20T09:45:25.830423Z",
532 | "shell.execute_reply.started": "2021-09-20T09:44:16.187530Z"
533 | }
534 | },
535 | "outputs": [
536 | {
537 | "name": "stdout",
538 | "output_type": "stream",
539 | "text": [
540 | "48/48 [==============================] - 68s 1s/step\n"
541 | ]
542 | }
543 | ],
544 | "source": [
545 | "predictions = tl_model.predict(test_image_gen, verbose=1)\n",
546 | "predictions = predictions.argmax(axis=1)"
547 | ]
548 | },
549 | {
550 | "cell_type": "code",
551 | "execution_count": 91,
552 | "metadata": {
553 | "execution": {
554 | "iopub.execute_input": "2021-09-20T09:45:42.454735Z",
555 | "iopub.status.busy": "2021-09-20T09:45:42.454469Z",
556 | "iopub.status.idle": "2021-09-20T09:45:42.459930Z",
557 | "shell.execute_reply": "2021-09-20T09:45:42.457985Z",
558 | "shell.execute_reply.started": "2021-09-20T09:45:42.454706Z"
559 | }
560 | },
561 | "outputs": [],
562 | "source": [
563 | "test_labels = test_image_gen.classes"
564 | ]
565 | },
566 | {
567 | "cell_type": "code",
568 | "execution_count": 1,
569 | "metadata": {
570 | "execution": {
571 | "iopub.execute_input": "2021-09-20T09:46:20.935434Z",
572 | "iopub.status.busy": "2021-09-20T09:46:20.935181Z",
573 | "iopub.status.idle": "2021-09-20T09:46:21.000189Z",
574 | "shell.execute_reply": "2021-09-20T09:46:20.999547Z",
575 | "shell.execute_reply.started": "2021-09-20T09:46:20.935406Z"
576 | }
577 | },
578 | "outputs": [],
579 | "source": [
580 | "import sklearn\n",
581 | "from sklearn.metrics import classification_report, confusion_matrix\n",
582 | "\n",
583 | "cm = confusion_matrix(test_labels, predictions)"
584 | ]
585 | },
586 | {
587 | "cell_type": "code",
588 | "execution_count": 7,
589 | "metadata": {},
590 | "outputs": [
591 | {
592 | "name": "stdout",
593 | "output_type": "stream",
594 | "text": [
595 | "Normalized confusion matrix\n",
596 | "[[0.67346939 0.09183673 0.1505102 0.00510204 0.06632653 0.0127551\n",
597 | " 0. ]\n",
598 | " [0.02919708 0.86861314 0.04136253 0. 0.01459854 0.03892944\n",
599 | " 0.00729927]\n",
600 | " [0.02277904 0.00683371 0.79498861 0.00455581 0.07061503 0.10022779\n",
601 | " 0. ]\n",
602 | " [0.05949657 0.02517162 0.03432494 0.77116705 0.01830664 0.09153318\n",
603 | " 0. ]\n",
604 | " [0.00898876 0.01573034 0.10786517 0. 0.63820225 0.21348315\n",
605 | " 0.01573034]\n",
606 | " [0. 0.00226757 0.01587302 0. 0.02040816 0.96145125\n",
607 | " 0. ]\n",
608 | " [0. 0. 0.0154185 0. 0. 0.01101322\n",
609 | " 0.97356828]]\n"
610 | ]
611 | },
612 | {
613 | "data": {
614 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAd4AAAHnCAYAAAAW6zymAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAABxJklEQVR4nO3dd3xUVdrA8d8TQhUhAQSTCb0mAQIkgDQpFkpCUbrSWV1dUWzvrm1RWRdFVNC1rK4iikgHQwApKtiVpqiAShQQkthQwALBDM/7x52ETBJIBKZkeL5+5mNm7pmb53BP5tznnHPviKpijDHGGP8IC3QAxhhjzNnEOl5jjDHGj6zjNcYYY/zIOl5jjDHGj6zjNcYYY/woPNABGGOMMSdSpkpd1ZzDPtm3Hv5htar28snOT8I6XmOMMUFLcw5TvukQn+z7yMdP1PDJjothHa8xxpggJiChNSsaWrUxxhhjgpxlvMYYY4KXACKBjuKMsozXGGOM8SPLeI0xxgQ3m+M1xhhjzKmyjNcYY0xwC7E5Xut4jTHGBDG7nMgYY4wxp8EyXmOMMcEtxIaaLeM1xhhj/MgyXmOMMcFLsDleY4wxxpw6y3iNMcYEMbE5XmOMMcacOst4jTHGBLcQm+O1jtcYY0xws6FmY4wxxpwqy3iNMcYEMbtlpDHGGGNOg2W8xhhjgpdgc7zGGGOMOXWW8RpjjAluNsdrjDHGmFNlGa8xxpggZquajTHGGHMaLOM1xhgT3MJCa1WzdbzGGGOCl30frzHGGGNOh2W8xhhjgpvdQMMYY4wxp8oyXmOMMUHMLicyxhhjzGmwjNcYY0xwszleY4wxxpwqy3iNMcYEN5vjNcYYY8ypsozXGGNM8BIJuTle63iNMcYENxtqNsYYY8ypsozXGGNMcAuxoWbLeI0xxhg/sozXGGNMELNbRhpjjDHmNFjHa8yfICIVRSRNRA6KyMLT2M+VIrLmTMYWCCLyqoiMDnQcJsTlXlJ0ph8BYh2vCUkicoWIbBKRX0Uky9NBdD4Dux4E1AKqq+rgU92Jqs5R1UvPQDxeRKSbiKiILC3weoLn9fUl3M89IvJSceVUtbeqvnCK4RpzVrKO14QcEbkZmAFMwekk6wBPAv3PwO7rAl+qas4Z2Jev/AB0EJHq+V4bDXx5pn6BOOzzw/ie4Mzx+uIRIPaHY0KKiFQFJgPXqeoSVf1NVf9Q1TRV/T9PmfIiMkNEMj2PGSJS3rOtm4jsE5FbROR7T7Y81rPtXmASMNSTSY8vmBmKSD1PZhnueT5GRL4WkV9EZJeIXJnv9Xfyva+jiGz0DGFvFJGO+batF5F/ici7nv2sEZEaJ/lnOAq8AgzzvL8MMBSYU+Df6lER2Ssih0Rks4h08bzeC7gjXz235ovj3yLyLvA70MDz2l88258SkcX59j9VRF4XCbFrQYw5TdbxmlDTAagALD1JmTuBC4BWQALQDrgr3/bzgaqACxgPPCEikap6N04WPV9VK6vqcycLRETOAR4DeqvquUBH4OMiylUDVnjKVgceAVYUyFivAMYCNYFywK0n+93Ai8Aoz889gc+AzAJlNuL8G1QDXgYWikgFVV1VoJ4J+d4zErgaOBfYU2B/twAtPCcVXXD+7UarqhYTqzEnIZbxGhPkqgM/FjMUfCUwWVW/V9UfgHtxOpRcf3i2/6GqK4FfgaanGM8xoLmIVFTVLFXdVkSZZGCnqs5W1RxVnQt8DvTNV+Z5Vf1SVQ8DC3A6zBNS1feAaiLSFKcDfrGIMi+p6n7P73wYKE/x9Zylqts87/mjwP5+x/l3fAR4CbheVfcVsz9jimeLq4wJavuBGrlDvScQjXe2tsfzWt4+CnTcvwOV/2wgqvobzhDvNUCWiKwQkWYliCc3Jle+59+eQjyzgQlAd4oYARCRW0Vkh2d4+wBOln+yIWyAvSfbqKofAl/jzMwtKEGMxpx1rOM1oeZ9IBsYcJIymTiLpHLVofAwbEn9BlTK9/z8/BtVdbWqXgJE4WSx/ytBPLkxZZxiTLlmA38DVnqy0TyeoeC/A0OASFWNAA7idJgAJxoePumwsYhch5M5Z3r2b8zps6FmY4KXqh7EWQD1hIgMEJFKIlJWRHqLyIOeYnOBu0TkPM8ipUk4Q6On4mPgQhGp41nYdXvuBhGpJSL9PXO92ThD1seK2MdKoInnEqhwERkKxAHLTzEmAFR1F9AVZ067oHOBHJwV0OEiMgmokm/7d0C9P7NyWUSaAPcBI3CGnP8uIq1OLXpjQpd1vCbkeOYrb8ZZMPUDzvDoBJyVvuB0DpuAT4BPgS2e107ld60F5nv2tRnvzjLME0cm8BNOJ3htEfvYD6TgLE7aj5Mppqjqj6cSU4F9v6OqRWXzq4FVOJcY7QGO4D2MnHtzkP0isqW43+MZ2n8JmKqqW1V1J87K6Nm5K8aNOWUhNscrtuDQGGNMsAqLqKvluxU1aHP6jqT+dbOqJvlk5ydhX5JgjDEmeIl9SYIxxhhjToNlvMYYY4JbiN38zDpeY4wxQS3U7jp61nS84ZWqarmI84svGMQa1/rT93AISu5jpX9BX7nw0JilORYCiyvDQuBDufTXAPbs2c2PP/4YClXxubOm4y0XcT5Nrn4y0GGclhUTz8S32gXer9nuQIdw2upUrxjoEM6IX44E85cslcw55Uv/x1iZsNLfX3Vq75vFwULoZbyhcdpujDHGlBKl/1TRGGNM6BJCYyw+H8t4jTHGGD+yjNcYY0wQE5vjNcYYY8yps4zXGGNMULOM1xhjjDGnzDJeY4wxQS3UMl7reI0xxgS1UOt4bajZGGOM8SPLeI0xxgQvu4GGMcYYY06HZbzGGGOCltgNNIwxxhhzOizjNcYYE9Qs4zXGGGPMKbOOtwQ6NqrGKxMuYNkNHRjbuW6RZS6Nr8ni6y5g8d/ac//AeACS6kUy/5p2eY8P7+pG92Y1/Bl6nnWvreHCdi3olBjH4zOmFdqenZ3NteNG0CkxjpSLu7D3m90AHD16lJuvu4qLOiVySZe2vPfOm36O3Nvbb6yhV+dWXNqhBc/856FC2ze+/w6XX9KR+JgqrFq+1GtbnOtcBlx8AQMuvoBrRw/2V8iFrFm9ioT4ZjSPbcxDDz5QaHt2djYjrxhG89jGXNjpAvbs3g3A/v376XVJD86LPJebJk7wc9Te3li7mo5t4mmfEMtjjzxYaHt2djZXjbmC9gmx9OreiW/27AZg0fyX6dEpKe9xftXyfPbJx/4NPp+1q1fRunkzWsY25uFpRR+LUVcOo2VsY7p19j4WvS/tQa1q53JzgI/FmtWraBnflPhmjZh2gvY04oqhxDdrRJeO7fPqADBt6v3EN2tEy/imrF2z2o9R/zki4pNHoNhQczHCBG7v05RrZn/Ed4eymXNVW9784ke+/uG3vDJ1qlVkXOd6jHluE78cySHynLIAbNr9M0P/uwGAKhXDSbuhI+9/9ZPf6+B2u7nr7xN5eckKoqJjSL6oE5f2SqFJs9i8MvNemkXViAje3byd1MULmHLPXTw18yVefnEmAK+/u5kff/iekUP6s+L1dwkL8/85m9vtZvIdNzNzfhq1olwM7t2FHpcm06jp8XpExdTm/kefZuZTjxZ6f4UKFXnltQ/8GXIhbrebmyZOYPnKNbhiYujSoR3JKf2IjYvLKzPr+eeIiIzgsx07WTh/HnfdcRuzX55HhQoVmHTPZLZt+4zt2z4LaB1uu2UiC1JXEu2KoWe3DvTsk0LTZsfr8PKLzxMREcmHW3ewdNF8/nX3Hfxv1ssMGnoFg4ZeAcD2bZ8yZvhgmrdsFbB63DxxAss8x+LCju3ok9KP2Njj9Xjh+eeIiIjgkx07WbhgHv+88zZenOMci3/ePZntQXAsbrzhOla8uhZXTAydL2hLSsH2NPM5IiMi2fZ5Ogvmz+POO/7BSy/PZ8f27SycP48tW7eRlZlJn14X8+n2LylTpkzA6nO2sIy3GM1dVdj702Eyfj5CjltZ/dl3dGvqnbVenuhi/sZ9/HIkB4Cff/uj0H4uiavJuzv3c+SPY36JO7+PN2+kXv2G1K3XgHLlytH/8sGseTXNq8yalWkMHjYCgOT+l/POW+tQVXZ+sYOOF3YDoMZ5NalStSpbP9rs7yoA8MlHm6hTrwG169anXLly9Ok/iNdXL/cqE1O7Lk3jWiABODEoiU0bN9CwYSPqN3COxaAhQ1melupVZkXaMkaMHA3AZQMHsX7d66gq55xzDh07daZChQqBCD3Plk0bqd+gIfXqO3UYMHAIq1Z4t6dVK9IYMnwkAH0HDOSd9U57ym/povkMGBS4kYdNGzfQoMCxWFHEsbgy91hcHnzHYuMG7/Y0eOiwQu1peVpqXh0uHziI9W84dVielsrgocMoX7489erXp2HDRmzcsCEQ1ShWIDNeEeklIl+ISLqI3FbE9joisk5EPhKRT0SkT3H7DM5PpyBSs0oFvj10JO/5d4eyqVmlvFeZutUrUbd6JWaNS+TFvyTRsVG1Qvvp2bwWr372rc/jLUpWViZRrpi85+dHu8jKyvQq822+MuHh4VSpUoWff9pPbHwL1r66gpycHL7Zs4tPP/6IzIx9fo0/13ffFqhHlIvvvs0q8fuzs48wsGdnhiZ347UCJx7+kpmRgSvmeB1crhgyMzOKKFMb8ByLqlXZv3+/X+M8mW+zMojOV4foaBffZnq3p6ys4/UMDw/n3CpV+ekn7zqkLl7EZYOG+j7gE8jMzCCmdoFjkZFRuEy+Y1G1SnAdi/zxgVOHjKLqULtwe8rIKPzegm0xKIgPH8X9apEywBNAbyAOGC4icQWK3QUsUNXWwDDgyeL269OhZhEZACwFYlX1cxGpByxX1eae7VcB1wAXA9M92xaJyHogCjjs2VW6qg7yvGcU8HdAgRxgjqoWnuzzozJhQp1qFfnLrC3UrFKemWMTGfzUh3kZcI3K5WhUszLvp/t/mPl0DRsxhvQvv6BPj47E1K5DYrsLSu1Q1BsbP6dWVDR79+xi9KA+NImNp069BoEO66y0eeMGKlaqSGxc80CHYszJtMPpf74GEJF5QH9ge74yClTx/FwV8D4LLYKvM97hwDue/3sRkZHA9UBPVf25iPdeqaqtPI/cTrc3cCNwqaq2AC4ADvoqeIDvDx3h/CrHh5NqVSnP94eyvcp8d+gIb37xIznHlMwDR9iz/3fqVKuYt/3S+Fqs+/wHco55D7X5S1RUNFn5stRvMzOIior2KnN+vjI5OTkcOnSIyGrVCQ8P554p01jz1gZmzlnEoYMHadCwsV/jz1Xr/AL1yMqg1vlRJX+/p86169anXccubP9s6xmPsTjRLhcZ+47XISNjH9HRriLK7AU8x+LgQapXr+7XOE/m/CgXmfnqkJmZwfnR3u0pKup4PXNycvjl0EGqVTteh1cWLwhotgtOpr5vb4Fj4XIVLpPvWBw8FFzHIn984NTBVVQd9hZuTy5X4fcWbIvBwodDzTVEZFO+x9UFfrUL2Jvv+T7Pa/ndA4wQkX3ASpx+7aR81vGKSGWgMzAeJ/3Ov20IcBtOB/rjn9jt7cCtqpoJoKrZqvq/MxRykbZl/kKd6pWIjqhAeBmhZ/NavPmFd8jrPv+BpHqRAERUKkvd6pXY9/PhvO29WtTi1U+/82WYJ5XQJoldX6fzzZ5dHD16lNQlC7mkV4pXmUt6p7Bw3ksArEhdQqcu3RARDv/+O7//5iwke2vda4SHl/FalOVPLVolsmfXV+z7ZjdHjx5lZeoievRMLtF7Dx74maPZzgnTz/t/5KONH9CocTNfhlukxKS2pKfvZPcu51gsWjCf5JR+XmX6pPTlpdkvALB08SK6dusRVNcxtk5M4uuv09mz26nDK4sX0LOPd3vq2SeFBXNnA5D2ymI6d+2WV4djx46xbOkiBgwc4vfY80tMastXBY5FnyKOxZzcY7Ek+I5FUlvv9rRw/rxC7Sk5pV9eHZYsXkTX7k4dklP6sXD+PLKzs9m9axfp6Ttp265dIKoRSD+qalK+xzOnsI/hwCxVjQH6ALNF5KR9qy+HmvsDq1T1SxHZLyKJwH6gLvA40FpVTzbpOUdEcnuvtar6f0BzoMQrezxnL1cDlK1a81TqgPuY8sDKL3hqZGvCBFI/yuKrH37j2u4N2J55iDe/+JH30n+iQ8PqLL7uAo4dU6avTefgYWeYOTqiAudXKc/mPUUl9f4RHh7Ovx6cwZWD+nLM7WbolaNpGhvHtCn3ktA6kUt7pzBsxBgmXjOOTolxRERW48lnXwTgxx+/58pBfQmTMM6PjubR/84MaD3+OeVhxg/vzzG3m4HDRtG4aRyPPfgvmie0oUfPZD79eDMTxg3j0IEDrFv7Ko9P+zfL39zEVzu/4O6/X09YWBjHjh3jqgm3eK2G9mcdHpnxH/ol98J9zM2o0WOJi49n8j2TaJOYRErffowZO57xY0bRPLYxkZHVePGluXnvb9a4Pr8cOsTRo0dJW5ZK2orVXitY/VWH+6fNYNhlybjdxxg+cjTNYuOZet89JLRJpFefvlwxaiwTrh5D+4RYIiIjefr5l/Le//67bxPtiqFe/cAO84eHh/PwjP8wIKUXbrebkWPGEhcXz7/unUSbNkkk9+3H6LHj+cvYUbSMbUxktWrMmn38WMQ1OX4slqelkrpitdeKaH/VYfqjj9M3uSdut5vRY8YVbk/jxjNuzEjimzUiMrIas+fMc+KPj2fg4CG0bhlHeHg4Mx57IiinkQJ8y8gMoHa+5zGe1/IbD/QCUNX3RaQCUAP4/kQ7lYIrDc8UEVkOPKqqa0XkBqAOTof7BvATztzs9HzlZ+E9x3urqm4qsM+fgPqq+qeHlytFN9UmVxc75x3UVkzsHOgQzohfs92BDuG01alesfhCpUDuOoTS7Jzypf+qyDJhwZNFn6pO7ZPYvHnTGa9I2RoNNaLvlDO9WwB+nDVss6omnWi7iIQDXwIX4XS4G4ErVHVbvjKvAvNVdZaIxAKvAy49SefqkxYrItWAHkALEVGgDM4E9BPA7zjp+Nsi8r2qzvkTu94GJOJ03sYYY84Cgcp4VTVHRCYAq3H6sZmquk1EJgObVHUZcAvwPxG5CaefG3OyThd8N9Q8CJitqn/NfUFE3sSTsqvq9yLSC1gvIj+qaklvmXI/ME1EklX1WxEpB4xS1WfPdAWMMcYYVV2Js2gq/2uT8v28Hej0Z/bpq453ODC1wGuLcRZHAaCqu0SkH7BSRC4rYh/553h/VNWLVXWliNQCXhPnFEiBwE06GmOM8b3SPxLvxScdr6p2L+K1x4DHCry2leNLszfke73bSfb9PPD8GQnUGGOM8bPSvyrBGGNM6JLQ+1pA63iNMcYEtVDreO1ezcYYY4wfWcZrjDEmqFnGa4wxxphTZhmvMcaYoBXgW0b6hGW8xhhjjB9ZxmuMMSa4hVbCaxmvMcYY40+W8RpjjAleIXgDDct4jTHGGD+yjNcYY0xQC7WM1zpeY4wxQS3UOl4bajbGGGP8yDJeY4wxwS20El7LeI0xxhh/sozXGGNMULM5XmOMMcacsrMm420adS5v3tY90GGcllqDngp0CGdE1oJrAh3CaQuVM/Bzypf+j4A/co4FOoTTFla29OdA6qP9itiXJBhjjDHmNJT+011jjDEhLdQyXut4jTHGBLVQ63htqNkYY4zxI8t4jTHGBLfQSngt4zXGGGP8yTJeY4wxQc3meI0xxhhzyizjNcYYE7zEMl5jjDHGnAbLeI0xxgQtAUIs4bWM1xhjjPEny3iNMcYEsdD7kgTreI0xxgS1EOt3bajZGGOM8SfLeI0xxgS1UBtqtozXGGOM8SPreEvgtTWrSGwZS6v4JjwybWqh7dnZ2YwZMYxW8U3o0aUDe/bsBmDzxg10bt+Gzu3b0Klda9JSl/o58uMuaVOHrf+9gs+eGcGtg9oU2l77vMqsmtKf9x8dwob/DKVnUl0AhnVrwgePDc17/Lbsb7SsX8Pf4ed5bc0q2raKo02Lpkx/qOhjMW7UcNq0aMrFXTvwjedY5Nq79xtialblPzMe9lPEha1ZvYqW8U2Jb9aIaQ8+UGh7dnY2I64YSnyzRnTp2J49u3fnbZs29X7imzWiZXxT1q5Z7ceova1dvYrWzZvRMrYxD08rug6jrhxGy9jGdOt8QV4d9u/fT+9Le1Cr2rncPHGCn6MuLFTaU0J8M5rHNuahE7SnkVcMo3lsYy7s5H0sel3Sg/Miz+WmIDgWJyTOHK8vHoFiHW8x3G43t9x4PYtSV7Dho89YvHAen+/Y7lXmxVkziYiM5ONtX/K36ydy9523ARAb35z1727gnQ+3sDh1JTdefy05OTl+r0NYmDDj2gvpf/dyWv/tZQZ3bUyz2pFeZf4xNInFb6fTYeICRj24hkevvRCAeeu/5IIb5nPBDfMZ//Badn93iE92/ej3OoBzLP7v5htYuHQ5H2z+lMUL5xc6FrNfmEnViEi2fPoF1064kXv+ebvX9rtuu5WLL+3lz7C9uN1ubrzhOlLTXuWjT7azcN5cdmz3rsOsmc8RGRHJts/TuX7iTdx5xz8A2LF9Owvnz2PL1m0sW76Kidf/DbfbHZA63DxxAkuWrWTT1m0snD+PHQWOwwvPP0dERASf7NjJdTfcyD89fxMVKlTgn3dP5t8PTPN73AWFSnu6aeIEXklbyZbcY1GwPT3/HBGREXy2YyfX33Ajd91x/FhMumcyU6YG/licbazjLcbmjRto0LAh9es3oFy5clw+eCgrli/zKrNyeSpXXDkKgAGXD+LN9W+gqlSqVInwcGca/Uj2kYDNU7RtUpOvsg6y+7tD/JFzjIVv7STlgvpeZVShSqVyAFQ9pxxZP/1WaD9DujZh4Vs7/RJzUTZv2kCDBg2pl3ssBg1hZYFj8eryZQy/ciQA/S8bmHcsAFakpVKnbj2axcb5PfZcGzdsoGHDRtRv4NRh8NBhLE9L9SqzPC2VK0eOBuDygYNY/8brqCrL01IZPHQY5cuXp179+jRs2IiNGzb4vQ6bNm6gQb46DBoylBUF6rAibVleHS67fBDr1zl1OOecc+jYqTMVKlTwe9wFhUJ72rTRuz0NGjK0UHtakbaMEbnHYmBwHouTEZzkwRePQLGOtxiZmRm4YmrnPXe5XGRlZHiVycrMzCsTHh5OlSpV+Wn/fgA2bfiQ9m1a0DEpgemPPZnXEftTdPXK7Pvh17znGT/+iqv6OV5l/v3yBoZ1b0r6rNEsvSeFm//7dqH9DOrSiAUB7Hjz/zsDRLtiyMrK9CqTeYJj8euvv/LoIw/yjzsm+TXmgjIzM4jxak8xZBRoT5mZGcTUzleHqlXZv38/GRmF35uZ6f1ef3Dii/GOo6g65DsOVas4dQgmIdGeMjJwxRQ4FgXahFOmcHsygRPQjldE3CLysYhsFZEtItIx37Z2IvKWiHwhIh+JyLMiUsmzrbeIbBKR7Z5tgZtgKUZSu/Z8uOVT1r3zIY9Mm8qRI0cCHVKRhnRtzEuvf06jMS9w2T3Lee6Wi73mQNo2qcXv2Tls3/NT4II8DVP/fS/XTriRypUrBzoUEwKsPflXqM3xBvpyosOq2gpARHoC9wNdRaQWsBAYpqrve7YPAs4VkQbA40Cyqn4uImWAq30VYHS0i4x9e/OeZ2RkEOVyeZWJio4mY99eXDEx5OTkcOjQQapVr+5VpmmzWM6pXJnt2z6jTWKSr8ItUub+X4k57/gHhKtGZTL2ew8lj74kjv53pwHw4effUaFcGWpUqcgPBw8DMPjCRix4M3DZLhz/d86VmbGPqKhorzLRucfC5X0sNm3aQOorS7j7rts4ePAAYWFhlK9Qgauvuc6vdYiOdrHPqz3tw1WgPUVHu9i3dy8xue3p4EGqV6+Oy1X4vdHR3u/1Bye+fd5xFFWHfH8TBw85dQgmIdGeXC4y9hU4FgXahFOmcHsygRNMQ81VgJ89P18HvJDb6QKo6iJV/Q74O/BvVf3c87pbVZ/yVVBtktryVXo6u3fv4ujRoyxZOJ8+yX29yvRJ7sfLc14E4JUli7iwa3dEhN27d+Utpvpmzx52fvE5devW81WoJ7Tpy+9pFF2VurXOpWx4GIMvbMyKD3d7ldn7wy90S3CGrJrGRFKhbHhepysCA7s0Cuj8LkCbxLZ89VU6e3KPxaIF9C5wLHol92XunNkApC5dnHcsXl37Jp/s+IpPdnzFtdfdwM233ub3D0mApLZtSU/fye5dTh0Wzp9Hcko/rzLJKf2YM/sFAJYsXkTX7j0QEZJT+rFw/jyys7PZvWsX6ek7aduund/rkJjUlq/y1WHRgvn0KVCHPil98+qwdMkiunbrEXTXYoZCe0pM8m5PixbML9Se+qT05aXcY7E4OI9FcUTEJ49ACXTGW1FEPgYqAFFAD8/rzYEXTvCe5kCJhpZF5Go82XDt2nVOKcDw8HAemv4Yl/ftjdvtZsToscTGxfPvyXfTuk0ifVL6MXLMOK4eN4pW8U2IjKzGzNkvA/DBe+8w/aEHKVu2LBIWxsOPPk71Gv6/FMd9TLnpv2+TNrkfZcKEF9buYMc3P/HPK9uxZef3rNiwm9uee5cnr+/O9QMSUIWrZrye9/7OzaPZ98Ov7P7ukN9jzy88PJwHH36Ugf374Ha7uXLUGGLj4pnyr7tp1SaJPsl9GTl6HNf8ZTRtWjQlMjKS5154OaAxFxQeHs70Rx+nb3JP3G43o8eMIy4+nsn3TKJNYhIpffsxZtx4xo0ZSXyzRkRGVmP2nHkAxMXHM3DwEFq3jCM8PJwZjz1BmTJlAlKHh2f8hwEpvXC73YwcM5a4uHj+de8k2rRJIrlvP0aPHc9fxo6iZWxjIqtVY9bsuXnvj2tSn18OHeLo0aMsT0sldcVqYgOwQClU2tMjM/5Dv+ReuI+5GTV6bOH2NHY848eMonlsYyIjq/HiS8ePRbPGx49F2rJU0lasJjYucIvFihTgYWFfkNwVegH55SK/qmplz88dgGdxOtbFOBlvahHv2QKMVdWtf+Z3tU5M0jff9f8K0DOp1iCfJfZ+lbXgmkCHcNoqlPN/h+cL7mOB+/s/U/7IORboEE5b+bLBNPh4ajpd0JYtmzed8S6yYnQTbTT+iTO9WwA+u+/Szarq37k/gmio2TOsXAM4D9gGJJ6g6Mm2GWOMCSHO9/GG1lBz0HS8ItIMKAPsx1k8NVpE2ufbfrln0dU04A4RaeJ5PUxESn8KZYwx5qwQLHO84JzYjFZVN/CdiAwDHhKRmsAx4C1glap+JyI3AnM9lxcpsNz/oRtjjPE9+z7eM0pVTzhR5hl67nKCbcuxztYYY0wpFOiM1xhjjDmpEEt4g2eO1xhjjDkbWMZrjDEmqIXaHK9lvMYYY4wfWcZrjDEmeIXgnaus4zXGGBO0cm+gEUpsqNkYY4zxI8t4jTHGBLUQS3gt4zXGGGP8yTJeY4wxQc3meI0xxhhzyizjNcYYE9RCLOG1jNcYY4zxJ8t4jTHGBC8JvTle63iNMcYELecGGoGO4syyoWZjjDHGjyzjNcYYE8Qk5IaaLeM1xhhj/MgyXmOMMUEtxBLes6fjFSCslB+8n5b+LdAhnBG1r5of6BBO297/DQ10CGfEr0dyAh3CaTuacyzQIZy2CuXKBzqE01bKP1796qzpeI0xxpRONsdrjDHGmFNmGa8xxpjgJaE3x2sZrzHGGONHlvEaY4wJWs6dq0Ir5bWO1xhjTFALtY7XhpqNMcYYP7KM1xhjTFALsYTXMl5jjDHGnyzjNcYYE9RsjtcYY4wxp8wyXmOMMcHLbqBhjDHGmNNhGa8xxpigJYjN8RpjjDHm1FnGa4wxJqiFWMJrGa8xxpjgFibik0dJiEgvEflCRNJF5LYTlBkiIttFZJuIvFxsff5k/c9Ka9esonWLWBLimvDwtKmFtmdnZzN6xDAS4prQvUsH9uzeDcAbr62lS4e2tE9MoEuHtry57g0/R37cmtWrSIhvRvPYxjz04AOFtmdnZzPyimE0j23MhZ0uyKvD/v376XVJD86LPJebJk7wc9SF9WhxPh/c34cNU5O5ITm20Pb7hrdm3eSerJvckw8f6MNXT16et23S4ATevq8Xb9/XiwHtavszbC+neiwApk29n+axjUmIb8baNav9GLW3N15bTafEeC5oFct/Hnmw0Pbs7GyuHnMFF7SKpXePTnyzZzcAixe8zEWdk/IeURHl+eyTj/0bfD7rX19Dt3Yt6JIUxxMzphXa/uF7b9On+wXUr3kOK5Yt8dq2cO5sLmwbz4Vt41k4d7a/Qi5kzepVtIxvSnyzRkw7QXsaccVQ4ps1okvH9oXaU3yzRrSMbxrQ9hSsRKQM8ATQG4gDhotIXIEyjYHbgU6qGg/cWNx+reMthtvt5paJ17MkdQUbP/6MRQvm8fmO7V5lXpw1k4iISLZu/5Lrrp/IpLuck6LqNWqwYHEqH27eytPPPs9V40cHogq43W5umjiBV9JWsmXrNhbOn8eO7d51mPX8c0RERvDZjp1cf8ON3HWHU4cKFSow6Z7JTJla+EPJ38JEmDoyiaGPvEmnO17l8vZ1aBJdxavMXXM/ovuk1XSftJr/vbaT5Zv2AXBJQhQt60bSbdJqek5ey3W9mlG5gv9nWk7nWOzYvp1FC+az+ePPSF3+KjfecB1utzsgdbj9lom8vCiNtzZsZeni+XzxuXcdXn7xeSIiIvng4x389W83cN/ddwAwcMgVvP7OJl5/ZxOPP/08derWp3nLVn6vAzj1uOvvE3lhQSqvv/cxy5Ys4MvPd3iViY6pzcOP/4/+A4d6vX7g55+YMe3fLFvzNsvWvsOMaf/mwIGf/Rk+4NThxhuuIzXtVT76ZDsL580t3J5mPkdkRCTbPk/n+ok3cecd/wCc9rRw/jy2bN3GsuWrmHj93wLSnkpCxDePEmgHpKvq16p6FJgH9C9Q5irgCVX9GUBVvy9up9bxFmPTxg00aNiQ+g0aUK5cOQYOHsrytGVeZVakpXLFiFEADLh8EOvXvYGqktCqNVHR0QDExsVz5PBhsrOzA1KHhg0b5dVh0JChLE9LLVCHZYwY6ZwYXDZwEOvXvY6qcs4559CxU2cqVKjg97gLatOgGru++4U9P/zGH+5jLP3wG3q3dp2w/OXt67Lkwz0ANI2uyvtf/oD7mPL7UTfb9h3kohZR/go9z+kci+VpqQwaMpTy5ctTr359GjZsxKaNG/xeh482b6R+g4bUre/UYcDlQ1i9Is2rzOqVaQy5YiQAKQMG8s6b61BVrzJLF81nwMDBfou7oI+3bKRe/YbUrefUo+9lg1nzqnc9atepR2x8C8LCvD8q33xjLV26XUREZDUiIiLp0u0i3nx9jT/DB2DjBu/2NHjosELtaXlaKld62tPlAwex/o3j7Wnw0GFe7WnjBv+3pwCrISKb8j2uLrDdBezN93yf57X8mgBNRORdEflARHoV90ut4y1GVmYGrpjjw5Iul4uszAyvMpmZmcR4yoSHh1O1SlX279/vVSZ16WISWrWhfPnyvg+6gMyMDFwxMXnPXa4YMgvWIeN4PcPDw6lStXAdAi0qsiKZP/2e9zzz58NERVYssmxM9UrUPe8c3t7unHx+9s0BerQ4n4rlylCtcjk6N6uJq3olv8Sd3+kci8zMjLx2BhDtcpGZ4f1ef8jKzCDadbwOUS4XWVmZ3mWyjpcJDw/n3CpV+emnAn8TSxYxYJB3JulP32Zletcj2sV3Bepx0vdGe7/32xK+90wq2CZcrhgyMgp+PmUQU7twe8rIKPzegm0xGDjZqfjkAfyoqkn5Hs+cQojhQGOgGzAc+J+IRBT3hoATETfwKc53HruBCar6nojUA5aranNPuauAa4CLgemebYsCE3XJ7di+jUl33s4ry1cFOpSzxmXt67Bs016OebKs9du+pXWDaqy862L2H8pm01c/4j6mxezF+MqWTRuoWKkisXHNAx2KMSeTAeRfEBLjeS2/fcCHqvoHsEtEvsTpiDeeaKfBkvEeVtVWqpqAM0l9f8ECIjISuB7omTuW7g9R0S4y9h0facjIyCAq2nukITo6mn2eMjk5ORw8dJDq1as75fftY/iQgTz93CwaNGzor7C943O5yNi3L+95RsY+ogvWwXW8njk5ORw6eLwOwSLr58NEVzuepUZHViTr58NFlr2sfV2WfLDH67XpadvpPmk1gx5ajyB89e0vPo23KKdzLKKjXXntDJzMONp14qF2X4mKdpGZcbwOWRkZREVFe5eJOl4mJyeHXw4dpFq14+3plcULuGxg4LJdgPOjor3rkZlBrQL1OOl7M73fe34J33smFWwTGRn7cLkKfj652Le3cHtyuQq/t2BbDBZh4ptHCWwEGotIfREpBwwDlhUo8wpOtouI1MAZev76pPX5c9X3iyqAV8cqIkOA24BLVfVHfwaTmNSWr9LT2b1rF0ePHmXxwvkkp/T1KtMnpR8vv/QiAK8sWUTXbt0REQ4cOMCgy/py731T6NCxkz/D9pKY1Jb09J15dVi0YD7JKf28yvRJ6ctLs18AYOniRXTt1iPo7hbz0a6faFDrXOrUOIeyZcK4rH0dVn1UeGisUdS5RJxTjo3px4c2w0SIPKccAHExVYmrXZV1n33rt9hznc6xSE7px6IF88nOzmb3rl2kp+8kqW07v9ehVZskvv4qnT27nTq8smQBl/ZJ8SpzaZ8UFrzsrPRd/spiOl3YLa89HTt2jGVLFzFg4BC/x55fQuskdn2dzjd7nHqkLV3IJb1Tin8j0LXHJby97jUOHPiZAwd+5u11r9G1xyU+jriwpLbe7Wnh/HmF2lNySj/meNrTksWL6Nr9eHtaOH+eV3tq287/7SmYqWoOMAFYDewAFqjqNhGZLCK5/9Crgf0ish1YB/yfqp50ni4ohpqBiiLyMVABiAJ65NtWF3gcaK2qf+qT0jNRfjVA7dp1Timw8PBwHprxGAP69uaY283I0WOJjYvnvnvvpnViIskp/Rg1ZhxXjRtFQlwTIqtV4/kXncu4nnnqCb7+Kp2pU+5j6pT7AEhdvorzatY8pVhOVXh4OI/M+A/9knvhPuZm1OixxMXHM/meSbRJTCKlbz/GjB3P+DGjaB7bmMjIarz40ty89zdrXJ9fDh1yPpyWpZK2YjWxcXEn+Y2+4T6m3PbSZhbe2pWwsDBefvtrvsg8xG2XNefjXT+x6mNnju3y9nVZ+qF3tls2XFh+x0UA/HLkD6595oOADDWfzrGIi4/n8kGDaZMQT3iZcKY/+jhlypQJSB2mPDSD4Zcn43YfY/iI0TSLjWfqv++hVetEevbpyxUjxzLh6jFc0CqWiMhInp75Ut7733/3baJdMdSt38DvsecXHh7Ov6bOYOTgvrjdboZeMZqmzeJ4+P57adEqkUt7p7B1yyauGjWUgwd/5rXVK3nkgX/x+nsfERFZjRtuvZ2+Fzsn1BNvvYOIyGoBqcP0Rx+nb3JP3G43o8eMK9yexo1n3JiRxDdrRGRkNWbPmQc47Wng4CG0bhlHeHg4Mx57IiDtqSQCmQSo6kpgZYHXJuX7WYGbPY8SkYIrDQNBRH5V1cqenzsAzwLNcTrdN4CfgDmqOj3fe2bxJ+Z42yQm6Vvvle4Ve2VKODYS7GpfNT/QIZy2vf8L7DDpmXLocE6gQzhtR3OOBTqE03ZeFf8vujzTOrVPYvPmTWf8Q6pq3VjtdPsLZ3q3ALx6bfvNqprkk52fRLBkvHlU9X3POPl5npd+B/oAb4vI96o6J3DRGWOM8bcgm/U6bUHX8YpIM6AMsB+oBM4FyZ5ro9aLyI+qardYMcaYs4DgfENRKAmWjjd3jhecf+fRqurOP66vqrs8k9krReQyz8tPi8gMz897VbWDvwI2xhhjTkVQdLyqWuSMvqruxpnrzX2+leN3DSndE7bGGGNKJESWt+QJxsuJjDHGmJAVFBmvMcYYU6Tjt3cMGZbxGmOMMX5kGa8xxpigFmIJr2W8xhhjjD9ZxmuMMSZoCc691kOJdbzGGGOCWoj1uzbUbIwxxviTZbzGGGOCml1OZIwxxphTZhmvMcaYoCVic7zGGGOMOQ2W8RpjjAlqoXY5kWW8xhhjjB9ZxmuMMSaohVa+axmvMcYY41eW8RpjjAlqoXYdr3W8xhhjgpZzr+ZAR3FmnTUd7zFVjvxxLNBhnJby4aExM5D+1OBAh3DaGkxYEugQzoidj10W6BBOW467dP9dm7PPWdPxGmOMKYVEQm6oOTRSKGOMMaaUOGHGKyL/AfRE21X1Bp9EZIwxxuQTYgnvSYeaN/ktCmOMMeYsccKOV1VfyP9cRCqp6u++D8kYY4w57qyb4xWRDiKyHfjc8zxBRJ70eWTGGGNMCCrJquYZQE9gGYCqbhWRC30ZlDHGGAOheR1viVY1q+reAi+5fRCLMcYYE/JKkvHuFZGOgIpIWWAisMO3YRljjDGOs26OF7gGuA5wAZlAK89zY4wxxufER49AKTbjVdUfgSv9EIsxxhgT8kqyqrmBiKSJyA8i8r2IpIpIA38EZ4wx5uwmAmEiPnkESkmGml8GFgBRQDSwEJjry6CMMcaYUFWSjreSqs5W1RzP4yWggq8DM8YYY8DJen3xCJST3au5mufHV0XkNmAezr2bhwIr/RCbMcYYE3JOtrhqM05Hm3te8Nd82xS43VdBGWOMMblC7XKik92rub4/AzHGGGPOBiW6c5WINBeRISIyKvfh68CCyetrV3NB63jaJjTj0YcfLLQ9Ozubv4y+grYJzejZvSPf7Nmdt23bZ5/Qu0dnOrdN4ML2rThy5IgfIz9u7ZpVtGkZS0J8Ex6ZNrXQ9uzsbMaMGEZCfBO6d+nAHk8dNm3cQKf2bejUvg0d27UmLXWpnyP39tqaVbRNiKNN86ZMf6joeowbOZw2zZty8YUd8o7F5o0b6NI+kS7tE+ncvg3LU1/xb+D5dI+vxdv3Xsp7/+rJhJ5NCm2/d3BL1t51EWvvuoh3Jl/K59P7AtCxyXl5r6+96yJ2PT6AXgnR/g4fcNpT6xaxJMQ14eETtKfRI4aREOdpT7t3A/DGa2vp0qEt7RMT6NKhLW+ue8PPkXtb99oaLmzXgk6JcTw+Y1qh7dnZ2Vw7bgSdEuNIubgLe7/ZDcDRo0e5+bqruKhTIpd0act777zp58iPW7N6FS3jmxLfrBHTHnyg0Pbs7GxGXDGU+GaN6NKxfd6xAJg29X7imzWiZXxT1q5Z7ceo/5yzZo43l4jcDXQD4nDmdnsD7wAv+jSyIOF2u7ntlhtYmPoq0a4YLu16Ab2SU2jaLC6vzJwXZxIREcHGrZ+zdNF8Jk+6g2dfeJmcnBz+9pfRPPG/WTRvkcBP+/dTtmzZgNThlhuvJ3XFalyuGLp1bk+flL40iz1ehxdnzSQiMpKt275k0YJ53H3nbcx6aR5x8c15890NhIeH821WFh3bt6Z3cl/Cw0ty07MzX4//u+kGli5fRbQrhh5dLqB3snc9Zs+aSdWISLZ89gWLF87nnrtuZ+bsucTGN2fdux/m1aPLBW3olZzi93qECUwZ3oqhM94h6+ffefX2Hqz5JIsvs37JK3P3wk/yfh7XvSHNa0cA8N6XP3DJfa8DEFGpLO/d14s3t3/n1/jB054metpTTAxdO7Unuaj2FBHJ1u1Oe5p012288NI8qteowYLFqURFR7N922cM6NubL78ueEda/9Xjrr9P5OUlK4iKjiH5ok5c2iuFJs1i88rMe2kWVSMieHfzdlIXL2DKPXfx1MyXePnFmQC8/u5mfvzhe0YO6c+K198lLKxEucwZrcONN1zHilfX4oqJofMFbUlJ6Uds3PFjMWvmc0RGRLLt83QWzJ/HnXf8g5dens+O7dtZOH8eW7ZuIyszkz69LubT7V9SpkwZv9bhbFSSVjIIuAj4VlXHAglAVZ9GFUS2bNpAvQYNqVe/AeXKlWPAwKG8ujzNq8yrK9IYesVIAPoOGMjb699AVVn3+lrimregeYsEAKpVrx6QRr1p4wYaNGxIfU8dBg4eyorly7zKrFieyvArnYGMAZcPYr2nDpUqVcrrnI5kHwnoXMvmTU49co/F5YOGsLJAPV5dsYzhI5xj0f+ygbxZRD2yA1iP1vWrsfv73/jmx9/4w62kbtpHz5NkrQPa1uaVjYU7ppTEGNZ99i2H//D/bdPz2lOD4+1peVqB9pSWyhUj8rWndc5xSGjVmqhop76xcfEcOXyY7Oxsv9cB4OPNG6lXvyF16zn16H/5YNa86v23vWZlGoOHjQAguf/lvPPWOlSVnV/soOOF3QCocV5NqlStytaPNvu7CmzcsIGGDRvlHYvBQ4exPC3Vq8zytFSuHDkagMsHDmL9G6+jqixPS2Xw0GGUL1+eevXr07BhIzZu2OD3OhRH8M01vMF+He9hVT0G5IhIFeB7oLZvwwoeWVmZuFwxec+jXS6ysjK8ynybmYkrxvknCQ8Pp0rVqvy0fz9fpX+JiDB4QB96dG7Lf6Y/5NfYc2VlZhATc/yQRbtcZGZkFCiTmVcmPDycKlWcOgBs3PAh7dq0oENSAjMeezIg2W5ujC5X/nrEkJWZ6VUmM1+ZgvXYtOFDOiS2pFPbVjzyaGDqcX5ERTJ+Pv611lk/H+b8iIpFlo2pVok6NSrxzuffF9rWPymGpUV0yP6QlZmR194BXC4XWZne7SmzQHuqWqUq+z3HIVfq0sUktGpD+fLlfR90EbKyMonK97d9frSLrCzv9vRtvjJOe6rCzz/tJza+BWtfXUFOTg7f7NnFpx9/RGbGPr/GD5BZ4G/b5YohI6Pgscggprb359P+/fvJyCj83swCxzEo+GiYOaiHmoFNIhIB/A9npfOvwPu+DApARNzAp0BZIAdnaHu6qh4TkW5AKrDLU/xHVb3Y1zH9We4cNx++/x5r1r9PxUqVGJhyKQmt23Bhtx6BDu1PaduuPRu2fMoXn+/gr38ZyyU9e1OhQum7lDupXXve3/wJX3y+g79dNZaLe/YK6nr0bxvD8i0ZHFPv12tWqUCsqyrrt/l/mPlM2bF9G5PuvJ1Xlq8KdCinZNiIMaR/+QV9enQkpnYdEttdYEO0psSKzXhV9W+qekBV/wtcAoz2DDn72mFVbaWq8Z7f2xu4O9/2tz3bW/my042KiiYj35lsZkYGUVEurzLnR0eTsc/JPnJycjh08CDVqlcn2uXigo6dqV6jBpUqVeLinr355OOPfBXqCUVFu9i373h2lJmRQbTLVaBMdF6ZnJwcDh1y6pBf02axVK5cme3bPvN90EWIio4mIyN/PfblDVvmis5X5mT1OKdyZXYEoB7fHjiMK7JS3vOoyIp8e+BwkWX7J9XmlQ2Fs9p+STG8+nEmOQV7ZD+JinbltXeAjIwMoqK921N0gfZ08NBBqnuOQ8a+fQwfMpCnn5tFg4YN/Rd4AVFR0WTl+9v+NjODqCjv9nR+vjJOezpEZLXqhIeHc8+Uaax5awMz5yzi0MGDNGjY2K/xA0QX+NvOyNiHy1XwWLjYt9f786l69eq4XIXfG13gOAYLEfHJI1BO2PGKSJuCD6AaEO752W9U9XvgamCC+Plfq3ViW3Z9lc6e3bs4evQoryyeT6/kFK8yvfqkMP/l2QCkvbKYzl27IyJ0v+hSdmz/jN9//52cnBzee+ctr4Ub/pKY1Jav09PZ7anD4oXz6ZPc16tMn+R+zJ3jrJd7ZckiunrqsHv3LnJycgD4Zs8evvzic+rWrefvKgDQJrEtX6UfPxZLFi2gd4F69OrTl7kvOccideliLvTUY0/+enyzh51ffEGdANTj490/U79mZWpXr0TZMkL/pBhWb80sVK5RrXOJqFSWTV//VGjbgLYxLC2iQ/aXxCTnOOzedbw9JacUaE8p/Xj5pXztqZtzHA4cOMCgy/py731T6NCxUyDCz5PQJoldX6fzzR6nHqlLFnJJL++/7Ut6p7Bw3ksArEhdQqcu3RARDv/+O7//9hsAb617jfDwMgH5205q25b09J15x2Lh/Hkkp/TzKpOc0o85s18AYMniRXTt3gMRITmlHwvnzyM7O5vdu3aRnr6Ttu3a+b0OZ6OTDTU/fJJtCvh1vFRVvxaRMkBNz0tdRORjz88LVfXfBd8jIlfjdNjE1K5zSr83PDyc+x96lCEDkjl2zM3wkWNoFhvPA/fdQ6vWifRK7suVo8bxt6vG0DahGZGRkTzz/BwAIiIjuXbCjVzatQMiwsWX9uLSXn1OKY7TER4ezrTpj3FZ39643W5Gjh5LbFw8902+mzZtEumT0o9RY8Zx9bhRJMQ3ITKyGs/PfhmA9997h+kPPUjZsmUJCwvjkUcfp3qNGn6vQ249HnzkUQb264Pb7ebKUWOIjYtnyuS7adUmiT4pfRk5ZhzXjB9Nm+ZNiYyM5LkXc+vxLo8+/CDh4U49HpoRmHq4jyl3zPuYuRM7UyZMmPfubr7M+oX/6xvH1j0/s+aTLMAZZn5lU+E5w5jqlYiOrMT7O3/wd+h5wsPDeWjGYwzo25tj+dvTvXfTOjGRZE97umrcKBLimhBZrRrPe47DM089wddfpTN1yn1MnXIfAKnLV3FezZon+5U+q8e/HpzBlYP6csztZuiVo2kaG8e0KfeS0DqRS3unMGzEGCZeM45OiXFERFbjyWedk4kff/yeKwf1JUzCOD86mkf/O9Pv8efWYfqjj9M3uSdut5vRY8YRFx/P5Hsm0SYxiZS+/RgzbjzjxowkvlkjIiOrMXvOPADi4uMZOHgIrVvGER4ezozHngja4XL/rhX3PVENzHBVcUTkV1WtXOC1A0BTIBa4VVVTinpvUVq1SdTX3vrwzAbpZ+XDQ6P5uYO0zf0ZsTe+EugQzoidj10W6BBO28Hf/wh0CKet+rmBWWB2JnVqn8TmzZvO+IhkzUbNdei0hWd6twA8fnncZlVN8snOTyIwy1NPgeerCN04q6r9P6ZjjDHG74TQu2VkqUihROQ84L/A4xqsKboxxhhTAsGc8Vb0zOHmXk40G3gkoBEZY4zxu7DQSnhLdMtIAa4EGqjqZBGpA5yvqj69xYmqnnCWX1XXA+t9+fuNMcYEh1DreEsy1Pwk0AEY7nn+C/CEzyIyxhhjQlhJhprbq2obEfkIQFV/FpFyPo7LGGOM8dzeMbRS3pJkvH94rp9VyFvodMynURljjDEhqiQZ72PAUqCmiPwb59uK7vJpVMYYY4xHqM3xFtvxquocEdmM89WAAgxQ1R0+j8wYY4wJQSVZ1VwH+B1Iy/+aqn7jy8CMMcYYCOxX+PlCSYaaV+DM7wpQAagPfAHE+zAuY4wxJiSVZKi5Rf7nnm8m+pvPIjLGGGM8BAgLsZT3T98yUlW3AO19EIsxxhgT8koyx3tzvqdhQBug8BeIGmOMMT5QKr5U4E8oyRzvufl+zsGZ813sm3CMMcYYbyE20nzyjtdz44xzVfVWP8VjjDHGhLQTdrwiEq6qOSLSyZ8BGWOMMblEJOQWV50s492AM5/7sYgsAxYCv+VuVNUlPo7NGGOMCTklmeOtAOwHenD8el4FrOM1xhjjcyGW8J60463pWdH8Gcc73Fzq06iMMcaYEHWyjrcMUBnvDjeXdbzGGGP84mz6koQsVZ3st0iMMcaYs8DJOt4QO8cwxhhT2oTiLSNP1vFe5Lco/CBMhErlygQ6jNNyTENjhP/Qb38EOoTTtuuJgYEO4Yy4aPpbgQ7htD06KCHQIZy2qpXKBjqE0xYan07+ccKOV1V/8mcgxhhjTFFCLOEt0eVExhhjTGBI6C2uCrV7TxtjjDFBzTJeY4wxQU1CbK2vZbzGGGOMH1nGa4wxJmg5lxMFOoozyzJeY4wxxo8s4zXGGBPULOM1xhhjzCmzjNcYY0xQkxC7g4ZlvMYYY4wfWcZrjDEmaIXiqmbreI0xxgQvCb17NdtQszHGGHMCItJLRL4QkXQRue0k5QaKiIpIUnH7tIzXGGNMUAvU9/GKSBngCeASYB+wUUSWqer2AuXOBSYCH5Zkv5bxGmOMMUVrB6Sr6teqehSYB/Qvoty/gKnAkZLs1DreElizehWtmjejRWxjHpr2QKHt2dnZjLpyGC1iG9O18wXs2b0bgP3799P70h7UrHYuN0+c4Oeova1ds4rWLWJJiGvCw9OmFtqenZ3N6BHDSIhrQvcuHfLq8MZra+nSoS3tExPo0qEtb657w8+Re1v/+hq6t2/JhW3jefLRaYW2f/jeO/Tp3oEGtSqzYtkSr22jhvSjRYPzGTv8cn+FW6Q1q1fRMr4p8c0aMe3BotvTiCuGEt+sEV06ts87FgDTpt5PfLNGtIxvyto1q/0Ytbf29SKZOz6J+X9py4h2tYss06NpDV4am8hLYxO5O7mZ17ZK5cqw9Jr23HxRQ3+Ee0LvvfkaAy9K4rLurZn11PRC2+c8+zhDLm3P8N4dufbKfmRlfJO37foxA+meUIebxg/1Z8iFhMrf9onkLq7yxQOoISKb8j2uLvDrXcDefM/3eV47Hp9IG6C2qq4oaZ2s4y2G2+3m5okTWLpsJZu3bmPh/Hns2OE1ysALzz9HREQEn+7YyYQbbuSfdzrTABUqVOCfd09mygOFOwh/crvd3DLxepakrmDjx5+xaME8Pi9QhxdnzSQiIpKt27/kuusnMukupw7Va9RgweJUPty8laeffZ6rxo8ORBUApx7//MeNvDA/ldfe/YhlSxby5Rc7vMpEx9Tm4cefof/Awh+GV0+4ielPPuevcIvkdru58YbrSE17lY8+2c7CeXPZsd37WMya+RyREZFs+zyd6yfexJ13/AOAHdu3s3D+PLZs3cay5auYeP3fcLvdfq9DmMAtlzTilkWfceXMTVwcex71qlfyKhMTUYGR7etw7ctbGfH8Zh5d95XX9qs61+PjvQf9GXYhbrebB+++lUefX8SC1R+yJm0RX+/83KtM0/iWvJi6jrmvvsdFvfvz2AN3520bedUN3PvI0/4O20uo/G0H0I+qmpTv8cyfebOIhAGPALf8mfdZx1uMTRs30KBhI+o3aEC5cuUYNGQoy9NSvcosT1vGlSOdRnvZ5YNYv+51VJVzzjmHjp06U75ChUCEnsepQ8O8OgwcPJTlacu8yqxIS+WKEaMAGHD5INavewNVJaFVa6KiowGIjYvnyOHDZGdn+70OAB9v2Ui9+g2pU68+5cqVo+9lg1n76nKvMrXr1CU2vgVhYYWbducLu3NO5XP9FW6RNm7YQMN87Wnw0GFFtKfUvPZ0+cBBrH/DaU/L01IZPHQY5cuXp179+jRs2IiNGzb4vQ6xUeey7+fDZB48Qs4x5fXPf6BLo+peZfolRLHko0x+yc4B4MDvf+Rta1qrMtUqlWXj7p/9GndB27ZupnbdBsTUqUfZcuW4JGUgb65d6VUmqcOFVKjonFS0aJ3E999m5m1r16kr55xT2a8xFxQqf9vFEfHNowQygPxDOjGe13KdCzQH1ovIbuACYFlxC6ys4y1GZmYGMbVj8p67XDFkZWQULhPjHJvw8HCqVKnK/v37/RrnyWRlZuCKOd52XC4XWZkF65DpVYeqRdQhdeliElq1oXz58r4PugjfZmUSFX38WERFu/g2K+Mk7wg++dsKOO0po6j2VDtfe6rqHIuMjMLvzcz0f/3Pq1ye7385/gH9/S/ZnFe5nFeZ2pEVqV2tIk9dkcAzV7aifb1IwBk2nNCtAY+v/9qfIRfph2+zqBV1fNSwVlQ0P3yXdcLyqQteomPXi/0RWomFyt92ENsINBaR+iJSDhgG5J3ZqOpBVa2hqvVUtR7wAdBPVTedbKcBXdUsIgrMUdURnufhQBbwoaqmiMgYYBreZxhXAL8Dy1W1uZ9DPmvt2L6NSXfezivLVwU6FFMKlAkTYiIrMmHeJ9Q8tzxPDEtg1KxN9Iyrxfu7fuKHX48GOsQ/ZeUr89nx6Uc8PbfE03ilRvD/bQthBGZVs6rmiMgEYDVQBpipqttEZDKwSVWXnXwPRQv05US/Ac1FpKKqHsZZsl3wFH6+qnqtTBKRen6Kj+hoF/v27st7npGxjyiXq3CZfXtxxcSQk5PDoUMHqV69esFdBUxUtIuMfcfXB2RkZBAVXbAO0V51OJivDhn79jF8yECefm4WDRoGbjHM+VHRZGUePxZZmRmcH+U6yTuCT25byZWRsQ9XUe1p715ictvTQedYuFyF3xsd7f/6//BrNjXPPZ4Z1Ty3fKGO9IdfstmW9QvuY0rWwSPs/fl3YiIr0jy6Ci1jqnB5q2gqli1D2TLC73+4+e9bu/1cCzjv/Ci+yzdi8l1WJufViipU7sN31vP8Ew/z9NwVlAuyjDBU/rZPRgjsDTRUdSWwssBrk05QtltJ9hkMQ80rgWTPz8OBuQGMpZDEpLZ8lb6T3bt2cfToURYtmE9ySj+vMskpfZkz+wUAli5ZRNduPYLqpt5OHdLz6rB44XySU/p6lemT0o+XX3oRgFeWLKJrt+6ICAcOHGDQZX25974pdOjYKRDh50loncSur9P5Zs9ujh49StrShVzSK7n4NwaRpLZtSc/XnhbOn1dEe+qX156WLF5E1+5Oe0pO6cfC+fPIzs5m965dpKfvpG27dn6vw+dZvxATWZGoqhUIDxMuanYe76R7D12+tXM/bWpHAFC1Yji1IyuReeAI9674nIFPb2DQMxt4Yv3XrNr2XUA6XYC4lm34ZvdXZOzdzR9Hj7J2+WIuvLi3V5kvtm3l/rtu5OFn5lKtxnkBifNkQuVv+2wT6IwXnOuiJonIcqAlMBPokm/7UBHpnO95h5Lu2LM0/GqA2nXqnFJw4eHhPDzjP/RP6YXb7WbUmLHExcXzr3sn0aZNEsl9+zF67Hj+MnYULWIbE1mtGi/MPn7uENukPr8cOuR0FGmpLFuxmtjYuFOK5VSFh4fz0IzHGNC3N8fcbkaOHktsXDz33Xs3rRMTSU7px6gx47hq3CgS4poQWa0az7/4MgDPPPUEX3+VztQp9zF1yn0ApC5fxXk1a/q1Drn1mPzAdEYN7ov7mJshV4ymSbM4Hr5/Mi1bteGS3ils3bKJq0cP5eDBA7y2eiXTp97Ha+9uAWBQykV8tfNLfvvtV9q3aMiDj/6Xrj0u8Xsdpj/6OH2Te+J2uxk9Zhxx8fFMvmcSbRKTSOnbjzHjxjNuzEjimzUiMrIas+fMAyAuPp6Bg4fQumUc4eHhzHjsCcqUKePX+AHcCtNfS+eRQc0pEyYs//Rbdu3/nb90qsvn3/7CO1/9xIe7f6Zd/UheGpvIMYUn3vyaQ0dy/B7ryYSHh/P3e6Zxw+iBuI+56Td4BA2bxPLf6f8mtkVrul7ch0fvn8Th337jtgnOYrfzo2N45H/O8bhqSG92f/0lh3/7jeSOcdz1wH/ocOFFfq9DKPxtn5SE3r2aRVUD98tFflXVyiKyCefuII2BNcCt+eZ4k04w1Pyn5njbJCbpO+9vPHPBB8CxAB6rM+mnUja/V5SaVQO7Uv1MuWj6W4EO4bQ9Oigh0CGctmbRgV1tfyZc2LEdWzZvOuNdZN3Ylnr7zFOaSi3WtR3rb1bVYm/xeKYFQ8YLziqxh4BuQPBMjhpjjAm4QN0y0leCpeOdCRxQ1U9FpFuAYzHGGGN8Jig6XlXdBzx2gs0F53j/BmQCTUVkX77Xb1LVhb6K0RhjjP8FelWzLwS041XVQrd9UdX1wHrPz7OAWSd4e1kfhWWMMcb4TFBkvMYYY8yJhNocbzBcx2uMMcacNSzjNcYYE9RCLOG1jtcYY0zwEkJvaDbU6mOMMcYENct4jTHGBC8hqO59fyZYxmuMMcb4kWW8xhhjglpo5buW8RpjjDF+ZRmvMcaYoCXYDTSMMcYYcxos4zXGGBPUQivftYzXGGOM8SvLeI0xxgS1EJvitY7XGGNMMBO7gYYxxhhjTp1lvMYYY4KWfUmCMcYYY06LZbzGGGOCWqjN8Z41Ha8AYWGl++CFhcjVbNUqlwt0CMZj9Q2dAx3CaTuv082BDuG0/fzBjECHcNpC49PJP86ajtcYY0zpFGqdus3xGmOMMX5kGa8xxpjgJaE3x2sZrzHGGONHlvEaY4wJWqF4Ha91vMYYY4KaDTUbY4wx5pRZxmuMMSaohVa+axmvMcYY41eW8RpjjAlqITbFaxmvMcYY40+W8RpjjAlazuVEoZXyWsZrjDHG+JFlvMYYY4KazfEaY4wx5pRZxmuMMSaICRJic7zW8RpjjAlqNtR8FlqzehUt45sS36wR0x58oND27OxsRlwxlPhmjejSsT17du/O2zZt6v3EN2tEy/imrF2z2o9RewuFOgCsXbOK1i1iSYhrwsPTphbanp2dzegRw0iIa0L3Lh3y6vHGa2vp0qEt7RMT6NKhLW+ue8PPkR8XCsciFI4DwCUdmrF18R18tvRObh19UaHtdc6PZOWTf2PD3L+z+ukJuGpWzdtWu1YEaY9fw0cLb2fLgtuoE1XNn6HnCYX2dLaxjrcYbrebG2+4jtS0V/nok+0snDeXHdu3e5WZNfM5IiMi2fZ5OtdPvIk77/gHADu2b2fh/Hls2bqNZctXMfH6v+F2u60Op8jtdnPLxOtZkrqCjR9/xqIF8/h8h3c9Xpw1k4iISLZu/5Lrrp/IpLtuA6B6jRosWJzKh5u38vSzz3PV+NGBqEJIHItQOA4AYWHCjH8Mov8NT9N68AMM7tmGZvVreZW5/8b+zFmxkXbDH2TK/1YzeUJK3rZnJ49g+uw3aD34frqMfoQffvrF31UIifZUnNzLiXzxCBTreIuxccMGGjZsRP0GDShXrhyDhw5jeVqqV5nlaalcOdL5ALl84CDWv/E6qsrytFQGDx1G+fLlqVe/Pg0bNmLjhg1Wh1O0aeMGGjRsmFePgYOHsjxtmVeZFWmpXDFiFAADLh/E+nVvoKoktGpNVHQ0ALFx8Rw5fJjs7Gy/1yEUjkUoHAeAtvF1+Wrvj+zO2M8fOW4WrvmIlK4tvMo0q1+LNzftBODNTTtJubBF3uvhZcJ448MvAfjt8FEOZ//h3woQGu3pbGQdbzEyMzOIiamd99zliiEjI6NwmdpOmfDwcKpUrcr+/fvJyCj83sxM7/f6QyjUASArMwOXVywusjIL1iMzL97w8HCqVnHqkV/q0sUktGpD+fLlfR90AaFwLELhOABE16zKvu9+znue8f0Br6FkgE93ZtK/e0sA+ndvSZXKFahWtRKN69TkwC+HmffgWN6fcytTbuhHWJj/M6hQaE/FEmeO1xePQAnKjldEVEQezvf8VhG5R0S6isj7BcqGi8h3IhLt/0hNabNj+zYm3Xk7jz7+VKBDOauVluNw+4xUurRpyPtzbqVLm4ZkfHcAt1sJDw+jU+sG3PboMjqPeoT6MdUZ2bddoMM1pURQdrxANnC5iNQo8PrbQIyI1M332sXANlXN9EUg0dEu9u3bm/c8I2MfLpercJm9TpmcnBwOHTxI9erVcbkKvzc62vu9/hAKdQCIinaR4RVLBlHRBesRnRdvTk4OBw859QDI2LeP4UMG8vRzs2jQsKH/AveKr/Qfi1A4DgCZ3x8kplZk3nNXzQgyvj/oVSbrx0MM+/vzdLjyIe5+cgUAB389TMZ3B/jkiwx2Z+zH7T7GsvWf0qppjF/jh9BoTyVhGa9/5ADPADflf1FVjwELgGH5Xh4GzPVVIElt25KevpPdu3Zx9OhRFs6fR3JKP68yySn9mDP7BQCWLF5E1+49EBGSU/qxcP48srOz2b1rF+npO2nbzv9nxaFQB4DEpLZ8lZ6eV4/FC+eTnNLXq0yflH68/NKLALyyZBFdu3VHRDhw4ACDLuvLvfdNoUPHToEIHwiNYxEKxwFg0/ZvaFS7BnWjq1E2vAyDL23Nirc+8ypTveo5iOcT+v/GXswLyz7Me2/VcytSI+IcALolNebzXd/5twKERns6GwXzdbxPAJ+IyIMFXp8L/A+YKiLlgT7AzUXtQESuBq4GqF2nzikFER4ezvRHH6dvck/cbjejx4wjLj6eyfdMok1iEil9+zFm3HjGjRlJfLNGREZWY/aceQDExcczcPAQWreMIzw8nBmPPUGZMmVOKY7TEQp1yK3HQzMeY0Df3hxzuxk5eiyxcfHcd+/dtE5MJDmlH6PGjOOqcaNIiGtCZLVqPP/iywA889QTfP1VOlOn3MfUKfcBkLp8FefVrOn3OpT2YxEKxwHA7T7GTdMWk/afayhTJowXln3Ijq+/5Z9/7c2WHd+w4q1tXJjUiMnXpaCqvPPRV9w4dREAx44ptz+aysqnrkMEPtqxj5lL3y/mN555odCeSiLUbqAhqhroGAoRkV9VtbKITAb+AA4DlVX1Hs/2nUAKEAuMV9W+J9yZR2Jikr774SYfRm1KKsd9LNAhnLbwMsE6WPTnhMKxOK9TkefdpcrPH8wIdAinrVP7JDZv3nTGe8imzVvpk4teO9O7BeDi2PM2q2qST3Z+EsGc8QLMALYAzxd4fS7OEHMsPhxmNsYYY860oD5tV9WfcOZ0xxfYNBcYAfQAUgu+zxhjTOgQH/0XKEHd8Xo8DHitblbVHcBvwBuq+ltAojLGGGNOQVAONatq5Xw/fwdUKqJMK3/GZIwxJjDsSxKMMcYYc8qCMuM1xhhjcoXa5USW8RpjjDF+ZBmvMcaYoCVAAL5/wqcs4zXGGGP8yDJeY4wxQSyw19z6gnW8xhhjgleAv0nIF2yo2RhjjPEjy3iNMcYEtRBLeC3jNcYYY/zJMl5jjDFBy7mcKLRyXst4jTHGGD+yjNcYY0xQC6181zJeY4wxxq8s4zXGGBPcQizltYzXGGOM8SPLeI0xxgQ1u2WkMcYY40chdjWRdbzGnM3Cy5T+2ab9700PdAinLbLthECHcNqyv/gm0CGUGtbxGmOMCWohlvDa4ipjjDHGnyzjNcYYE9xCLOW1jNcYY4zxI8t4jTHGBC0h9C4nsozXGGOM8SPLeI0xxgQvCb3reC3jNcYYY/zIMl5jjDFBLcQSXut4jTHGBLkQ63ltqNkYY4zxI+t4jTHGBDHx2X8l+u0ivUTkCxFJF5Hbith+s4hsF5FPROR1Ealb3D6t4zXGGGOKICJlgCeA3kAcMFxE4goU+whIUtWWwCLgweL2ax2vMcaYoCbim0cJtAPSVfVrVT0KzAP65y+gqutU9XfP0w+AmOJ2ah2vMcaYs1UNEdmU73F1ge0uYG++5/s8r53IeODV4n6prWo2xhgTtASfLmr+UVWTzsSORGQEkAR0La6sdbzGGGNM0TKA2vmex3he8yIiFwN3Al1VNbu4ndpQcwmsWb2KlvFNiW/WiGkPPlBoe3Z2NiOuGEp8s0Z06diePbt3522bNvV+4ps1omV8U9auWe3HqL2FQh0A1q5ZResWsSTENeHhaVMLbc/Ozmb0iGEkxDWhe5cOefV447W1dOnQlvaJCXTp0JY3173h58iPC4VjEQp1AKcerZo3o0VsYx6aVnQ9Rl05jBaxjena+YK8euzfv5/el/agZrVzuXniBD9H7e2SjrFsXfpPPku9m1vHXlJoe52oSFb+93o2zL+d1f+biKtmBAAXJjXmg3m35T1+/mA6fbu19HP0JSQ+ehRvI9BYROqLSDlgGLDMKzSR1sDTQD9V/b4kO7WOtxhut5sbb7iO1LRX+eiT7SycN5cd27d7lZk18zkiIyLZ9nk610+8iTvv+AcAO7ZvZ+H8eWzZuo1ly1cx8fq/4Xa7rQ6nyO12c8vE61mSuoKNH3/GogXz+HyHdz1enDWTiIhItm7/kuuun8iku5zV/9Vr1GDB4lQ+3LyVp599nqvGjw5EFULiWIRCHcCpx80TJ7B02Uo2b93Gwvnz2FGgPb3w/HNERETw6Y6dTLjhRv55p9OeKlSowD/vnsyUB6YFIvQ8YWHCjNuG0H/Ck7QeeB+DeyXSrMH5XmXuv+ky5qzYQLuh9zPlmVeZfH0/AN7atJMLhj3ABcMeoPfVj/H7kaO89sGOQFSjWIG6nEhVc4AJwGpgB7BAVbeJyGQR6ecpNg2oDCwUkY9FZNkJdpfHOt5ibNywgYYNG1G/QQPKlSvH4KHDWJ6W6lVmeVoqV450PsgvHziI9W+8jqqyPC2VwUOHUb58eerVr0/Dho3YuGGD1eEUbdq4gQYNG+bVY+DgoSxP827jK9JSuWLEKAAGXD6I9eveQFVJaNWaqOhoAGLj4jly+DDZ2cWOCJ1xoXAsQqEOkNuejtdj0JChRdRjWV49Lrt8EOvXOfU455xz6NipM+UrVAhE6HnaNq/HV3t/ZHfGfv7IcbNw9RZSCmStzRpE8eaGLwB4c+OXpHRrUWg/l13cmjXvbufwkT/8EndpoqorVbWJqjZU1X97Xpukqss8P1+sqrVUtZXn0e/ke7SOt1iZmRnExBwf4ne5YsjIyChcprZTJjw8nCpVq7J//34yMgq/NzOz0PSAz4VCHQCyMjNwecXiIiuzYD0y8+INDw+nahWnHvmlLl1MQqs2lC9f3vdBFxAKxyIU6nA8xuNXfrhcMWQVVY987alKEe0pkKJrVmXfdz/nPc/47mdc51X1KvPplxn079EKgP49EqhSuSLVqp7jVWZwzzYsWLXZ5/GeqgBeTuQTPu94RWSdiPQs8NqNIvKUiNQQkT9E5JoC28eJyKeeO4F8JiL98227VUQ+96T0G0VklK/rYELHju3bmHTn7Tz6+FOBDsUYv7h9+lK6JDbi/bn/oEtiIzK++xm3+1je9vNrVCG+cTRr399+kr2YM8kfGe9cnAnp/IZ5Xh+Mc8Hx8NwNIhKDszqss+dOIBcAn3i2XQNcArRT1VbARfj49tnR0S727Tt+GVdGxj5cLlfhMnudMjk5ORw6eJDq1avjchV+b3T0yS4B841QqANAVLSLDK9YMoiKLliP6Lx4c3JyOHjIqQdAxr59DB8ykKefm0WDhg39F7hXfKX/WIRCHY7HuM8rlqii6pGvPR3K156CQeb3B4mpFZn33FUrkowfDnqVyfrhIMNufZYOw6dy9+NpABz89XDe9oGXtGHZG5+Qk3OMYBW4tVW+4Y+OdxGQ7FkRhojUA6KBt3E63FsAl6fDBagJ/AL8CqCqv6rqLs+2O4BrVfWQZ9shVX3Bl8EntW1LevpOdu/axdGjR1k4fx7JKd5D+Mkp/Zgz2wljyeJFdO3eAxEhOaUfC+fPIzs7m927dpGevpO27dr5MtyQrQNAYlJbvkpPz6vH4oXzSU7p61WmT0o/Xn7pRQBeWbKIrt26IyIcOHCAQZf15d77ptChY6dAhA+ExrEIhTpAbns6Xo9FC+YXUY++efVYumQRXbs59QgWm7btoVGd86gbXZ2y4WUY3LMNK9Z/4lWmesQ5eTH/37ievJD6gdf2Ib0SWbBqk99iNn64jldVfxKRDTj3ukzFyXYX4FwPFaWqG0RkATAUeBjYCnwH7BKR14ElqpomIlWAc1X165L+bs9dSK4GqF2nzinFHx4ezvRHH6dvck/cbjejx4wjLj6eyfdMok1iEil9+zFm3HjGjRlJfLNGREZWY/aceQDExcczcPAQWreMIzw8nBmPPUGZMmVOKY7TEQp1yK3HQzMeY0Df3hxzuxk5eiyxcfHcd+/dtE5MJDmlH6PGjOOqcaNIiGtCZLVqPP/iywA889QTfP1VOlOn3MfUKfcBkLp8FefVrOn3OpT2YxEKdcitx8Mz/kP/lF643W5GjRlLXFw8/7p3Em3aJJHctx+jx47nL2NH0SK2MZHVqvHC7Ll5749tUp9fDh3i6NGjpKWlsmzFamJjC97G17fc7mPcNHUBaU9eR5kw4YXUD9jx9bf889pktmz/hhVvfsqFSY2ZfH0/VOGdLenceP+CvPfXiapGzPmRvL053a9x/ymBTk99QFTV979E5EogRVWHi8jHOLfV6g5EquqdItISmJl7BxFxTs/a4gwljwdeAh4B9qhqZFG/oziJiUn67od2VhcMctzBO6RVUuFlbF1isDh2zPefYb5Wvf31gQ7htGV/sYBjv39/xrvI+IQ2On/lW2d6twC0iDl385m6c9Wf4a9Pj1TgIhFpA1RS1c04w8xjRGQ3zgXJLUWkMYA6Nqjq/TgZ8kDP8PKvItLATzEbY4wJAoH8WkBf8EvHq6q/AuuAmcBcEWkCVFZVl6rWU9V6wP04X7kU7emgc7UC9nh+vh94wjPsjIhUtlXNxhhjShN/3qt5LrAUJ4Md7vk5v8XAfOAF4CERiQaOAD8AuZcbPYVzh5CNIvIH8AfOvLAxxpgQJAT2mltf8FvHq6qvcHyK/N4itn8CxHqe9jjBPhTnS4aL/aJhY4wxoSHE+l27c5UxxhjjT/a1gMYYY4JbiKW8lvEaY4wxfmQZrzHGmKAWyEt/fMEyXmOMMcaPLOM1xhgT1ELtciLLeI0xxhg/sozXGGNMUAuxhNcyXmOMMcafLOM1xhgT3EIs5bWO1xhjTNByvo43tHpeG2o2xhhj/MgyXmOMMcFL7HIiY4wxxpwGy3iNMcYEtRBLeC3jNcYYY/zJMl5jjDHBLcRSXst4jTHGGD+yjNcYY0wQk5C7jves6Xi3bNn8Y8WysseHv6IG8KMP9+8voVAPq0PwCIV6hEIdwPf1qOvDfYeUs6bjVdXzfLl/Edmkqkm+/B3+EAr1sDoEj1CoRyjUAUp3PULtOt6zpuM1xhhT+gght7bKFlcZY4wx/mQZ75nzTKADOENCoR5Wh+ARCvUIhTpAaa5HiKW8oqqBjsEYY4wpUstWibrs9Xd9su/6NSpuDsS8t2W8xhhjglqoXU5kc7zGGGOMH1nG60MiUkZV3SIiamP6xpggU1o+m0LtciLLeH1ERDoBV4tIzdLQsAsSkeYi0irQcZytRKSniAwOdBwGRORCEWns+bnUdwEi0lJEuopIWGn8bAoF1vH6gIj0Ap4GDlMK7+YiIn2A54DBIhId6HjONiJyKfAg8EOgYzlTRKQ0f9YMAp4NhY5KRHoCLwKxQPMAh1Ni4qNHoNhQ8xnmyRL/A4xT1bcDHM6fJiKXAA8Do1R1Y6Dj+bNEpBFQUVU/DXQsp8LT6T4LpKjqJyJSE4hS1a0BDu2UiEhH4IiqbvF0XMcCHVNJ5RuG/TdwH9AeeL+01SOXiHQFHgP+Uqo+m8SGms0J5BuCigHWqurbJxqWCvLhqvbAvaq6UUTCofRkKyJSDvg7MEJE4gMdz58lImWBlsBPwG4ROQdYBNQOaGCnJxFYICKtVPVYaWlLAPmy2wPAMWC45/VS1enm+7y5AHjS89kUVmBbwbLGh0rNH0EpUNnz/9+AmiJSBs9oRr5G3r0UzPnGAK0AVDXH8/9jACJSL2BRFUNELgauAB4AqgBDRKR5vu25x6JsYCIsnqr+AfwPZ5h/CfAR8LyqLg9oYKdARLqISGtV/Q/wCDDL8/xY7gmdp1yNwEVZNBGJF5E5IhIpIuVVNRu4F7hQRFICHd+fle/z5g+gqufnMvnLiMgFwb3QKrQGm63jPQM8c7rPikglnLPjukCb3DP8fGfISUCvYDurFJG2IpLiOUF4DXB7sq3c7bnt5HoRiQtIkCeQ79+yLVBFVb/GmR+NwpmjbgnOh4+I/BWYGWxZl4g0FpGOItIdJ9T/AKuBI8BbnjJlTraPYOIZLp8NlANQ1SeBWcDzIpKYe0LnOR6TRKRCoGItSETqAufidFKLcOLrpqqZwAtAQ0+5UnE8RCRRRDp4nv4M9AbnJE9EyuXraLvg/A0ZPwiqD6DSyLNY4d/A06r6u6p+hJO1LBeRtkAFT7mRwFjg3WA6q/QspHoSZ7FFTZwsqztwrYicC07GKyJDgc44f7xBI9+/ZWUgwvPaLmAKTuc7UESqicg44P+Ah4NpqFBEkoH5OLHdCXwmIgk4c3HPATNE5AJVdQcwzBLz1OffwJWq+qGInC8iEao6A2fu+jnPa/2Bu4CZqnokgCHnEZHzgYlAO1UdA/wTp72/KCJ/A6KB0SJStzQcD09CMB8415O5Pw/8ICJvAajqUU+5kcAIICNgwZ6E4Mzx+uIRKLa46jSIyEU4w2gTVHWdZyh2nKpO8mSMM4BfRORbnLnTQar6VcACLkBEugDTgRH5F1J5PmQeB2p5svh0YDwwXFWzAhJsETxDyVNUtR/OvGgNz+thqrpbRB7A6dBm48w1XqqqnwQs4AI8H4z/BG5S1Tc9r90NpAF9VPVREVHgQRG5SVU3BzDcYolIFE6nu15V3/V0ZG8Bk4B5qvq4pz5f40zJ9AiyRXDf45x4thWRa4FZqvqeiLyHkylG4EzDXCMidwbTCVxBItIeeBS4yvPZlJtk9cc5kdgIvAP8DgwEBqpqUHa8ocg63tNzGfCNp2HXwTm7fBFAVaeLyEqcOZWKwF2qui9woRapPvCYZyFVWc/wU1lV/dhzFtwU6AYoMFhVdwQy2CLsBo6JyBzgPSAvPs8Z/tci8ijOScMtqvp5YMIsTESqASuBfqr6pohUUNUjqnqvZ/g81ZP5voRzWdr3gYy3OCJSVVWzROQxIF5EbgYG4IwwzMstp6pPiMjvwEZV/SxA4XoR5xrdMFX9QkRewpku6oVzHX5u57sV5/PyAPBsMHe6Ho2ARZ7PpurABZ4T7UM4I2/dgAY4c719VXVnwCItgaCamzsD7EsSToHnDzUbyMIZPhMgHmchzOO587oiUl1V9wcy1pMRkXuA5qo6KN9r4pkPre8Zsg06ngU5blX9WUTK4wyVjwWOAotxTigE+A4nW78rWIYz8/MMyz4AdFPV/fkW8iAi63BOFraI5w5oAQ32JDzTLVOAGz0rZkcCNwI7VXVYvnL9gYOquj4ggRbB0yn9APyIs4DKjfMtPlcA9XAy86dV9fdAxXgqxLmBz8s4x2UozmdVBZyh8/NxMtzswEVYcgmtE/XVde/7ZN+uyPL2JQmlgTiXrPwf8AvO9a5/wRluPogzJ5c7JzoaGCoiA3GuYwyKMxzPB42q6k/APOAmT2b1iSdGwclwx4nIm6r6WgDDLcQzJ30PzuU2O1X1ThG5EWch0sXArcA5OGfzB3A+6IOu0wVQ1RUicgzYICJJnhOJsp7VzYdwFvgQzJ2uRxOcE89JIvKwqs72rHnrKCIjPc8H4wxDJwcy0II8JzwX4ywqDAMScEaufsU5kYsA/hCR/wV7R5X/xA14H7gN5/PpQ5yFYV/iTMdMpcCq5mAXXMtRT591vH+C5w80BidL+T/gOpw7VN2M0+k+IiI34cyZXItzofrhAIVbSIFOawfwL5w2MBLn7HiL56RhGJCCk80HDc+c6B04H+B7gFtEpJKq/iIit+DE+xAwUlXTAxhqianqqyIyAdiUr/MdhZOVfBfg8EpqLs6Jzl7gr56Th9zOt50nI24EDAjGIU1VfcMT42M4HW8toAcwDGiHc1IxG2eUKyh54r9aRJap6gueofC5nue/5SvXB+dYlMOZ3zUBYKuaS8Az5waFL1k5D/grzmrg8ThDOa/hdMrjgmUOCwp1WlOARp7LOm7EiftaEVnlWdxzF86dq/YEKt6C8s2JPqyqqTgfHBcDD4nI056sdhzOpSAvBi7SP09VXwUmAG95FvVcA4xX1aCd1xXnfr8tPU9/wskO44CncDqAPqo6G9iKc3ndX1R1e2CiLZ6qrsUZLfkM+E1VX8AZbo7FuYvYwUDGdzIiknsPgc7ArSKyUESGiIgrt9MVkeqeefeJwF9V9UCAwj0l4qP/AsUy3hIocMlKWc9ru0RkCk5n9jfgCeBqnCxyVpAu5Bmoqqki0g7oISJP48z53InTYQ3GySTnBFvGqKo/iUhf4D4R+RrnBOIZnCx3kYjMU9VhIjKc4zcJKDU8mW8ZnBtntFbVbYGO6UQ80xUfAxmeEZ49OG3oUZypijk4K3/LqeqzIrJAVQ8FLOASyjf0/4GIdAjm9Rm5xLnueDLOCc9inGPQCServVdEJuIsQswBOuKMBgXtCdAJ2VDz2UWKv2RlKnALzq0KH1bV2wIXbdFO0mk9h/PHWltVr8S5tChoeT4Y3TiXfNyhqg9A3mVdqfkWs/12sv0EK1VdLs41r0E9BFhgXrQlTlZ4E851oOep6ksiUhEYLiJrS0Onm8tzAlQOeE2cm30E++rlyjhD4z8Du4AZqtpbnHtk34szIlcF5xK1K9Rz7a4JLBtqLt4enDs5zcFZwFPwkpWvcLJd9WwPSqq6Argdp9N6XVXvVtVvcG6WUUuC8NZ9RVHVVUBPYKyIRHheHoxzyVap/1AJ9k43l6q+AVwCjMZZVf4mznxoL0/HtQjnGtJSdxLkmcroUgo6XTwjI+/gjPz8D9ghIv/GuQwtGWee+h5gZWnudEPrhpGW8Z6QiJyvqt96Fu4Mx/lw+Q9w1LOQob5TTL4DvgDuDPYPTVVd5Yn9cRH5r2eeZzBQiSBeOFKQqq71rGR+R0SexPlwuVpVfwlsZGcXVX3dMye9Huigqk97LkM7Sik/CVLVXwMdw4l4po6O5otxOlAH5yY9PwD/wLkBy3uekbl3AxSqOQHreIsgIs2A7eLcfGGHqj4jIjcA+3FumlHUJStB3enmCpVOqzTNiYYyVV3pWXu4UUQ65V77LRLMN9wvvTyjPIuAj0TkLU92/jvHP5uuB4YAkVD6vkmpKIG+vaMvWMdbtF9x7oT0LTBIRDoDC3CGlMNxzjCvCLYFSCUVKp1WaZkTDXWezrcszrxokvOSdbq+oKoHROQqnIVST3oWSq7HufXoazjD/8/hXEP9WrBfe3y2sjtXnYCIPAK4gCtxhmOH4ayWvQ6YiXPLuwmBi/D0ea6BtU7LnBEiUjmYh2hDjYg0wblnQHugPPANTuY7F/hRg+i+6qejVZtEXfvmhz7Zd80qZQNy5ypbXFVAvmt2b8NZMFUD53ZrLYCdODd8/wpnvrdUs07XnEnW6fqXqn4JPKiqA4DNOJ9RVwFfh0qnG6psqLkAVdV8ne9OnNtCJgI3q+or4tyn+UdVDaqvxzPGnJWOAajqXSJSE2cUs9StJC+WzfGGPs/81FFxvqnkTeAJVX3Fsy3obnlnjDk75SYK6gjaO50ZbzbUfBKq+gXOkHMZcb6X1hhjgsrZsJDNruM9+3wAXB7oIIwx5mwVapcTWcZbDM89l4fZQiRjjDFngmW8JWCdrjHGBEpgv0nIFyzjNcYYY/zIMl5jjDFBS7A5XmOMMcacBut4jTHGGD+yjtcYQETcIvKxiHwmIgtP57ptEZklIoM8Pz8rInEnKdvN86Xlf/Z37C7qO5RP9HqBMn/q1o4ico+I3PpnYzTGFM06XmMch1W1lao2x/ku2WvybxSRU1oPoap/UdXtJynSDeebZowxJ5D71YBn+hEo1vEaU9jbQCNPNvq2iCzD+X7mMiIyTUQ2isgnIvJXcL5YQ0QeF5EvROQ1oGbujkRkveer8hCRXiKyRUS2isjrIlIPp4O/yZNtdxGR80Rksed3bBSRTp73VheRNSKyTUSepQQ33hGRV0Rks+c9VxfYNt3z+usicp7ntYYissrznrc930ttjDnDbFWzMfl4MtvewCrPS22A5qq6y9N5HVTVtiJSHnhXRNYArYGmQBxQC9iO89WR+fd7HvA/4ELPvqqp6k8i8l/gV1V9yFPuZWC6qr4jInWA1UAscDfwjqpOFpFkYHwJqjPO8zsq4nxR/WJV3Q+cA2xS1ZtEZJJn3xOAZ4BrVHWniLQHngR6nMI/ozFnVKhdx2sdrzGOiiLysefnt/F8mTiwQVV3eV6/FGiZO3+L8/3MjYELgbmq6gYyReSNIvZ/AfBW7r5U9acTxHExEHf8C7KoIiKVPb/jcs97V4hISb4d6wYRuczzc21PrPtxvtFmvuf1l4Alnt/REViY73eXL8HvMMa3Ajws7AvW8RrjOKyqrfK/4OmA8n/FmgDXq+rqAuX6nME4woALVPVIEbGUmIh0w+nEO6jq7yKyHqhwguLq+b0HCv4bGGPOPJvjNabkVgPXikhZABFpIiLnAG8BQz1zwFFA9yLe+wFwoYjU97y3muf1X4Bz85VbA1yf+0REWnl+fAu4wvNabyCymFirAj97Ot1mOBl3rjAgN2u/AmcI+xCwS0QGe36HiEhCMb/DGJ/z1TcTBTKJto7XmJJ7Fmf+douIfAY8jTNqtBTY6dn2IvB+wTeq6g/A1TjDuls5PtSbBlyWu7gKuAFI8ize2s7x1dX34nTc23CGnL8pJtZVQLiI7AAewOn4c/0GtPPUoQcw2fP6lcB4T3zbgP4l+DcxxvxJchZ8laMxxphSqk1ikr753gaf7LtKhTKbVTXJJzs/Cct4jTHGGD+yxVXGGGOCWqhdTmQZrzHGGONHlvEaY4wJanYdrzHGGONHIdbv2lCzMcYY40+W8RpjjAluIZbyWsZrjDHG+JFlvMYYY4KaXU5kjDHGnCU836P9hYiki8htRWwvLyLzPds/9HzP9klZx2uMMSZoCc7lRL54FPu7RcoAT+B8R3ccMFxE4goUG4/zhSSNgOnA1OL2ax2vMcYYU7R2QLqqfq2qR4F5FP7ykP7AC56fFwEXSTHf42lzvMYYY4LWli2bV1csKzV8tPsKIrIp3/NnVPWZfM9dwN58z/cB7QvsI6+MquaIyEGgOvDjiX6pdbzGGGOClqr2CnQMZ5oNNRtjjDFFywBq53se43mtyDIiEg5UBfafbKfW8RpjjDFF2wg0FpH6IlIOGAYsK1BmGTDa8/Mg4A0t5ovubajZGGOMKYJnznYCsBooA8xU1W0iMhnYpKrLgOeA2SKSDvyE0zmflBTTMRtjjDHmDLKhZmOMMcaPrOM1xhhj/Mg6XmOMMcaPrOM1xhhj/Mg6XmOMMcaPrOM1xhhj/Mg6XmOMMcaP/h9UXyPm0oyOkAAAAABJRU5ErkJggg==\n",
615 | "text/plain": [
616 | ""
617 | ]
618 | },
619 | "metadata": {
620 | "needs_background": "light"
621 | },
622 | "output_type": "display_data"
623 | }
624 | ],
625 | "source": [
626 | "import itertools\n",
627 | "\n",
628 | "def plot_confusion_matrix(cm, classes,\n",
629 | " normalize=True,\n",
630 | " title='Confusion matrix',\n",
631 | " cmap=plt.cm.Blues):\n",
632 | " if normalize:\n",
633 | " cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n",
634 | " print(\"Normalized confusion matrix\")\n",
635 | " else:\n",
636 | " print('Confusion matrix, without normalization')\n",
637 | "\n",
638 | " print(cm)\n",
639 | "\n",
640 | " plt.figure(figsize=(7,7))\n",
641 | " plt.imshow(cm, interpolation='nearest', cmap=cmap)\n",
642 | " plt.title(title)\n",
643 | " plt.colorbar()\n",
644 | " tick_marks = np.arange(len(classes))\n",
645 | " plt.xticks(tick_marks, classes, rotation=45)\n",
646 | " plt.yticks(tick_marks, classes)\n",
647 | "\n",
648 | " fmt = '.2f' if normalize else 'd'\n",
649 | " thresh = cm.max() / 2.\n",
650 | " for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n",
651 | " plt.text(j, i, format(cm[i, j], fmt),\n",
652 | " horizontalalignment=\"center\",\n",
653 | " color=\"white\" if cm[i, j] > thresh else \"black\")\n",
654 | " plt.ylabel('True label')\n",
655 | " plt.xlabel('Predicted label')\n",
656 | " plt.tight_layout()\n",
657 | "\n",
658 | " \n",
659 | "cm_plot_labels =['AKIEC','BCC','BKL','DF','MEL','NV','VASC']\n",
660 | "\n",
661 | "plot_confusion_matrix(cm, cm_plot_labels, title='Confusion Matrix', normalize=True)"
662 | ]
663 | },
664 | {
665 | "cell_type": "code",
666 | "execution_count": 5,
667 | "metadata": {},
668 | "outputs": [
669 | {
670 | "data": {
671 | "text/html": [
672 | "\n",
673 | "\n",
686 | "
\n",
687 | " \n",
688 | " \n",
689 | " \n",
690 | " AKIEC \n",
691 | " BCC \n",
692 | " BKL \n",
693 | " DF \n",
694 | " MEL \n",
695 | " NV \n",
696 | " VASC \n",
697 | " micro-average \n",
698 | " \n",
699 | " \n",
700 | " \n",
701 | " \n",
702 | " accuracy \n",
703 | " 0.940378 \n",
704 | " 0.962902 \n",
705 | " 0.919510 \n",
706 | " 0.965552 \n",
707 | " 0.920172 \n",
708 | " 0.926466 \n",
709 | " 0.992713 \n",
710 | " 0.946813 \n",
711 | " \n",
712 | " \n",
713 | " f1 \n",
714 | " 0.745763 \n",
715 | " 0.864407 \n",
716 | " 0.741764 \n",
717 | " 0.866324 \n",
718 | " 0.702101 \n",
719 | " 0.792523 \n",
720 | " 0.975717 \n",
721 | " 0.813846 \n",
722 | " \n",
723 | " \n",
724 | " false_discovery_rate \n",
725 | " 0.164557 \n",
726 | " 0.139759 \n",
727 | " 0.304781 \n",
728 | " 0.011730 \n",
729 | " 0.219780 \n",
730 | " 0.325914 \n",
731 | " 0.022124 \n",
732 | " 0.186154 \n",
733 | " \n",
734 | " \n",
735 | " false_negative_rate \n",
736 | " 0.326531 \n",
737 | " 0.131387 \n",
738 | " 0.205011 \n",
739 | " 0.228833 \n",
740 | " 0.361798 \n",
741 | " 0.038549 \n",
742 | " 0.026432 \n",
743 | " 0.186154 \n",
744 | " \n",
745 | " \n",
746 | " false_positive_rate \n",
747 | " 0.019794 \n",
748 | " 0.022239 \n",
749 | " 0.059302 \n",
750 | " 0.001549 \n",
751 | " 0.031080 \n",
752 | " 0.079519 \n",
753 | " 0.003899 \n",
754 | " 0.031026 \n",
755 | " \n",
756 | " \n",
757 | " negative_predictive_value \n",
758 | " 0.952645 \n",
759 | " 0.979263 \n",
760 | " 0.964243 \n",
761 | " 0.962659 \n",
762 | " 0.939360 \n",
763 | " 0.992887 \n",
764 | " 0.995325 \n",
765 | " 0.968974 \n",
766 | " \n",
767 | " \n",
768 | " positive_predictive_value \n",
769 | " 0.835443 \n",
770 | " 0.860241 \n",
771 | " 0.695219 \n",
772 | " 0.988270 \n",
773 | " 0.780220 \n",
774 | " 0.674086 \n",
775 | " 0.977876 \n",
776 | " 0.813846 \n",
777 | " \n",
778 | " \n",
779 | " precision \n",
780 | " 0.835443 \n",
781 | " 0.860241 \n",
782 | " 0.695219 \n",
783 | " 0.988270 \n",
784 | " 0.780220 \n",
785 | " 0.674086 \n",
786 | " 0.977876 \n",
787 | " 0.813846 \n",
788 | " \n",
789 | " \n",
790 | " recall \n",
791 | " 0.673469 \n",
792 | " 0.868613 \n",
793 | " 0.794989 \n",
794 | " 0.771167 \n",
795 | " 0.638202 \n",
796 | " 0.961451 \n",
797 | " 0.973568 \n",
798 | " 0.813846 \n",
799 | " \n",
800 | " \n",
801 | " sensitivity \n",
802 | " 0.673469 \n",
803 | " 0.868613 \n",
804 | " 0.794989 \n",
805 | " 0.771167 \n",
806 | " 0.638202 \n",
807 | " 0.961451 \n",
808 | " 0.973568 \n",
809 | " 0.813846 \n",
810 | " \n",
811 | " \n",
812 | " specificity \n",
813 | " 0.980206 \n",
814 | " 0.977761 \n",
815 | " 0.940698 \n",
816 | " 0.998451 \n",
817 | " 0.968920 \n",
818 | " 0.920481 \n",
819 | " 0.996101 \n",
820 | " 0.968974 \n",
821 | " \n",
822 | " \n",
823 | " true_negative_rate \n",
824 | " 0.980206 \n",
825 | " 0.977761 \n",
826 | " 0.940698 \n",
827 | " 0.998451 \n",
828 | " 0.968920 \n",
829 | " 0.920481 \n",
830 | " 0.996101 \n",
831 | " 0.968974 \n",
832 | " \n",
833 | " \n",
834 | " true_positive_rate \n",
835 | " 0.673469 \n",
836 | " 0.868613 \n",
837 | " 0.794989 \n",
838 | " 0.771167 \n",
839 | " 0.638202 \n",
840 | " 0.961451 \n",
841 | " 0.973568 \n",
842 | " 0.813846 \n",
843 | " \n",
844 | " \n",
845 | "
\n",
846 | "
"
847 | ],
848 | "text/plain": [
849 | " AKIEC BCC BKL DF MEL \\\n",
850 | "accuracy 0.940378 0.962902 0.919510 0.965552 0.920172 \n",
851 | "f1 0.745763 0.864407 0.741764 0.866324 0.702101 \n",
852 | "false_discovery_rate 0.164557 0.139759 0.304781 0.011730 0.219780 \n",
853 | "false_negative_rate 0.326531 0.131387 0.205011 0.228833 0.361798 \n",
854 | "false_positive_rate 0.019794 0.022239 0.059302 0.001549 0.031080 \n",
855 | "negative_predictive_value 0.952645 0.979263 0.964243 0.962659 0.939360 \n",
856 | "positive_predictive_value 0.835443 0.860241 0.695219 0.988270 0.780220 \n",
857 | "precision 0.835443 0.860241 0.695219 0.988270 0.780220 \n",
858 | "recall 0.673469 0.868613 0.794989 0.771167 0.638202 \n",
859 | "sensitivity 0.673469 0.868613 0.794989 0.771167 0.638202 \n",
860 | "specificity 0.980206 0.977761 0.940698 0.998451 0.968920 \n",
861 | "true_negative_rate 0.980206 0.977761 0.940698 0.998451 0.968920 \n",
862 | "true_positive_rate 0.673469 0.868613 0.794989 0.771167 0.638202 \n",
863 | "\n",
864 | " NV VASC micro-average \n",
865 | "accuracy 0.926466 0.992713 0.946813 \n",
866 | "f1 0.792523 0.975717 0.813846 \n",
867 | "false_discovery_rate 0.325914 0.022124 0.186154 \n",
868 | "false_negative_rate 0.038549 0.026432 0.186154 \n",
869 | "false_positive_rate 0.079519 0.003899 0.031026 \n",
870 | "negative_predictive_value 0.992887 0.995325 0.968974 \n",
871 | "positive_predictive_value 0.674086 0.977876 0.813846 \n",
872 | "precision 0.674086 0.977876 0.813846 \n",
873 | "recall 0.961451 0.973568 0.813846 \n",
874 | "sensitivity 0.961451 0.973568 0.813846 \n",
875 | "specificity 0.920481 0.996101 0.968974 \n",
876 | "true_negative_rate 0.920481 0.996101 0.968974 \n",
877 | "true_positive_rate 0.961451 0.973568 0.813846 "
878 | ]
879 | },
880 | "execution_count": 5,
881 | "metadata": {},
882 | "output_type": "execute_result"
883 | }
884 | ],
885 | "source": [
886 | "import disarray\n",
887 | "\n",
888 | "# Instantiate the confusion matrix DataFrame with index and columns\n",
889 | "#cm = confusion_matrix(a,b)\n",
890 | "df = pd.DataFrame(cm, index= ['AKIEC','BCC','BKL','DF','MEL','NV','VASC'], columns=['AKIEC','BCC','BKL','DF','MEL','NV','VASC'])\n",
891 | "df.da.export_metrics()"
892 | ]
893 | },
894 | {
895 | "cell_type": "code",
896 | "execution_count": null,
897 | "metadata": {},
898 | "outputs": [],
899 | "source": []
900 | }
901 | ],
902 | "metadata": {
903 | "kernelspec": {
904 | "display_name": "Python 3 (ipykernel)",
905 | "language": "python",
906 | "name": "python3"
907 | },
908 | "language_info": {
909 | "codemirror_mode": {
910 | "name": "ipython",
911 | "version": 3
912 | },
913 | "file_extension": ".py",
914 | "mimetype": "text/x-python",
915 | "name": "python",
916 | "nbconvert_exporter": "python",
917 | "pygments_lexer": "ipython3",
918 | "version": "3.9.7"
919 | }
920 | },
921 | "nbformat": 4,
922 | "nbformat_minor": 4
923 | }
924 |
--------------------------------------------------------------------------------
/docs/model_architecture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Defcon27/Skin-Cancer-Classification-using-Transfer-Learning/0d216c18f9528cdf1e07562296f3e1b571970edc/docs/model_architecture.png
--------------------------------------------------------------------------------
/docs/results.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Defcon27/Skin-Cancer-Classification-using-Transfer-Learning/0d216c18f9528cdf1e07562296f3e1b571970edc/docs/results.png
--------------------------------------------------------------------------------