Commit 6f21f32e authored by Manas Gabani's avatar Manas Gabani

added jupyter notebook with MobileNetV2 model

parent cded8d2d
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"execution": {
"iopub.execute_input": "2022-11-24T17:57:42.169473Z",
"iopub.status.busy": "2022-11-24T17:57:42.169125Z",
"iopub.status.idle": "2022-11-24T17:57:47.840773Z",
"shell.execute_reply": "2022-11-24T17:57:47.839847Z",
"shell.execute_reply.started": "2022-11-24T17:57:42.169444Z"
}
},
"outputs": [],
"source": [
"import tensorflow as tf\n",
"from tensorflow import keras\n",
"from keras.layers import GlobalAveragePooling2D, Dense, BatchNormalization, Dropout\n",
"from tensorflow.keras.optimizers import Adam\n",
"from sklearn.metrics import classification_report, confusion_matrix\n",
"from keras.preprocessing.image import ImageDataGenerator\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import itertools\n",
"import os"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"execution": {
"iopub.execute_input": "2022-11-24T17:57:47.848564Z",
"iopub.status.busy": "2022-11-24T17:57:47.845708Z",
"iopub.status.idle": "2022-11-24T17:57:48.082429Z",
"shell.execute_reply": "2022-11-24T17:57:48.080840Z",
"shell.execute_reply.started": "2022-11-24T17:57:47.848524Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Num GPUs Available: 1\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-11-24 17:57:47.918928: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n",
"2022-11-24 17:57:48.071707: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n",
"2022-11-24 17:57:48.072475: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n"
]
}
],
"source": [
"print(\"Num GPUs Available: \", len(tf.config.experimental.list_physical_devices('GPU')))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"execution": {
"iopub.execute_input": "2022-11-24T17:58:48.710083Z",
"iopub.status.busy": "2022-11-24T17:58:48.707604Z",
"iopub.status.idle": "2022-11-24T17:58:50.860135Z",
"shell.execute_reply": "2022-11-24T17:58:50.859227Z",
"shell.execute_reply.started": "2022-11-24T17:58:48.710035Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Found 12009 files belonging to 6 classes.\n",
"Found 1331 files belonging to 6 classes.\n"
]
}
],
"source": [
"train_ds_path = '/kaggle/input/crop-image-dataset/idata/Image Dataset/ImageDataset/train/'\n",
"valid_ds_path = '/kaggle/input/crop-image-dataset/idata/Image Dataset/ImageDataset/valid/'\n",
"\n",
"train_ds = keras.utils.image_dataset_from_directory(\n",
" directory=train_ds_path,\n",
" labels='inferred',\n",
" label_mode='categorical',\n",
" # batch_size=None,\n",
" batch_size=32,\n",
" image_size=(224, 224))\n",
"\n",
"validation_ds = keras.utils.image_dataset_from_directory(\n",
" directory=valid_ds_path,\n",
" labels='inferred',\n",
" label_mode='categorical',\n",
" # batch_size=None,\n",
" batch_size=32,\n",
" image_size=(224, 224))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"execution": {
"iopub.execute_input": "2022-11-24T17:58:55.276698Z",
"iopub.status.busy": "2022-11-24T17:58:55.276341Z",
"iopub.status.idle": "2022-11-24T17:58:56.169480Z",
"shell.execute_reply": "2022-11-24T17:58:56.168541Z",
"shell.execute_reply.started": "2022-11-24T17:58:55.276666Z"
}
},
"outputs": [],
"source": [
"base_model = keras.applications.MobileNetV2(include_top=False, weights=None, input_shape=(224,224,3), classes=6)\n",
"num_classes = 6\n",
"\n",
"x = base_model.output\n",
"x = GlobalAveragePooling2D()(x)\n",
"# x = Dropout(rate = .4)(x)\n",
"x = BatchNormalization()(x)\n",
"# x = Dense(1280, activation='relu', kernel_initializer=glorot_uniform(seed))(x)\n",
"x = Dense(1280, activation='relu', kernel_initializer='random_uniform')(x)\n",
"# x = Dropout(rate = .4)(x)\n",
"x = BatchNormalization()(x)\n",
"x = Dense(512, activation='relu', kernel_initializer='random_uniform')(x)\n",
"x = BatchNormalization()(x)\n",
"x = Dense(128, activation='relu', kernel_initializer='random_uniform')(x)\n",
"x = BatchNormalization()(x)\n",
"\n",
"predictions = keras.layers.Dense(num_classes,\n",
" activation='softmax',\n",
" kernel_initializer='random_uniform')(x) #final layer with softmax activation"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"execution": {
"iopub.execute_input": "2022-11-24T17:59:00.321489Z",
"iopub.status.busy": "2022-11-24T17:59:00.320831Z",
"iopub.status.idle": "2022-11-24T17:59:00.351015Z",
"shell.execute_reply": "2022-11-24T17:59:00.349951Z",
"shell.execute_reply.started": "2022-11-24T17:59:00.321456Z"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/opt/conda/lib/python3.7/site-packages/keras/optimizer_v2/optimizer_v2.py:356: UserWarning: The `lr` argument is deprecated, use `learning_rate` instead.\n",
" \"The `lr` argument is deprecated, use `learning_rate` instead.\")\n"
]
}
],
"source": [
"model = keras.models.Model(inputs=base_model.input, outputs=predictions)\n",
"Adam = keras.optimizers.Adam(lr=0.0001, beta_1=0.9, beta_2=0.999, epsilon=None, decay=1e-5, amsgrad=False)\n",
"model.compile(optimizer=Adam, loss='categorical_crossentropy', metrics=['accuracy'])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"model.summary()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"execution": {
"iopub.execute_input": "2022-11-24T17:59:16.995345Z",
"iopub.status.busy": "2022-11-24T17:59:16.994665Z",
"iopub.status.idle": "2022-11-24T18:59:35.895734Z",
"shell.execute_reply": "2022-11-24T18:59:35.894829Z",
"shell.execute_reply.started": "2022-11-24T17:59:16.995310Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/50\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-11-24 17:59:20.959001: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:185] None of the MLIR Optimization Passes are enabled (registered 2)\n",
"2022-11-24 17:59:23.489057: I tensorflow/stream_executor/cuda/cuda_dnn.cc:369] Loaded cuDNN version 8005\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"376/376 [==============================] - 80s 179ms/step - loss: 1.2774 - accuracy: 0.5048 - val_loss: 2.1564 - val_accuracy: 0.1660\n",
"Epoch 2/50\n",
"376/376 [==============================] - 66s 175ms/step - loss: 0.8719 - accuracy: 0.6832 - val_loss: 2.3423 - val_accuracy: 0.1668\n",
"Epoch 3/50\n",
"376/376 [==============================] - 65s 172ms/step - loss: 0.6633 - accuracy: 0.7680 - val_loss: 2.9702 - val_accuracy: 0.1668\n",
"Epoch 4/50\n",
"376/376 [==============================] - 65s 173ms/step - loss: 0.5216 - accuracy: 0.8189 - val_loss: 3.2926 - val_accuracy: 0.1668\n",
"Epoch 5/50\n",
"376/376 [==============================] - 65s 172ms/step - loss: 0.4118 - accuracy: 0.8593 - val_loss: 3.4845 - val_accuracy: 0.1668\n",
"Epoch 6/50\n",
"376/376 [==============================] - 65s 173ms/step - loss: 0.3415 - accuracy: 0.8818 - val_loss: 3.8748 - val_accuracy: 0.1668\n",
"Epoch 7/50\n",
"376/376 [==============================] - 66s 173ms/step - loss: 0.2861 - accuracy: 0.9032 - val_loss: 5.6305 - val_accuracy: 0.1668\n",
"Epoch 8/50\n",
"376/376 [==============================] - 66s 173ms/step - loss: 0.2307 - accuracy: 0.9216 - val_loss: 4.8050 - val_accuracy: 0.1668\n",
"Epoch 9/50\n",
"376/376 [==============================] - 65s 172ms/step - loss: 0.1795 - accuracy: 0.9400 - val_loss: 4.4957 - val_accuracy: 0.1668\n",
"Epoch 10/50\n",
"376/376 [==============================] - 65s 172ms/step - loss: 0.1662 - accuracy: 0.9448 - val_loss: 4.9802 - val_accuracy: 0.1668\n",
"Epoch 11/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.1493 - accuracy: 0.9488 - val_loss: 5.2170 - val_accuracy: 0.1668\n",
"Epoch 12/50\n",
"376/376 [==============================] - 64s 170ms/step - loss: 0.1249 - accuracy: 0.9585 - val_loss: 6.3070 - val_accuracy: 0.1668\n",
"Epoch 13/50\n",
"376/376 [==============================] - 64s 170ms/step - loss: 0.1163 - accuracy: 0.9598 - val_loss: 7.0520 - val_accuracy: 0.1668\n",
"Epoch 14/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.1070 - accuracy: 0.9639 - val_loss: 8.0370 - val_accuracy: 0.1668\n",
"Epoch 15/50\n",
"376/376 [==============================] - 65s 172ms/step - loss: 0.0984 - accuracy: 0.9668 - val_loss: 6.6580 - val_accuracy: 0.1668\n",
"Epoch 16/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0872 - accuracy: 0.9718 - val_loss: 6.9688 - val_accuracy: 0.1668\n",
"Epoch 17/50\n",
"376/376 [==============================] - 64s 171ms/step - loss: 0.0782 - accuracy: 0.9733 - val_loss: 6.1873 - val_accuracy: 0.1668\n",
"Epoch 18/50\n",
"376/376 [==============================] - 64s 171ms/step - loss: 0.0740 - accuracy: 0.9754 - val_loss: 3.7890 - val_accuracy: 0.3283\n",
"Epoch 19/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0714 - accuracy: 0.9749 - val_loss: 2.3231 - val_accuracy: 0.4117\n",
"Epoch 20/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0668 - accuracy: 0.9780 - val_loss: 0.8655 - val_accuracy: 0.7385\n",
"Epoch 21/50\n",
"376/376 [==============================] - 65s 172ms/step - loss: 0.0620 - accuracy: 0.9794 - val_loss: 0.8928 - val_accuracy: 0.7325\n",
"Epoch 22/50\n",
"376/376 [==============================] - 65s 173ms/step - loss: 0.0544 - accuracy: 0.9822 - val_loss: 0.7052 - val_accuracy: 0.8122\n",
"Epoch 23/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0607 - accuracy: 0.9798 - val_loss: 0.3090 - val_accuracy: 0.9098\n",
"Epoch 24/50\n",
"376/376 [==============================] - 65s 172ms/step - loss: 0.0532 - accuracy: 0.9822 - val_loss: 0.5071 - val_accuracy: 0.8302\n",
"Epoch 25/50\n",
"376/376 [==============================] - 64s 171ms/step - loss: 0.0469 - accuracy: 0.9841 - val_loss: 0.7201 - val_accuracy: 0.8092\n",
"Epoch 26/50\n",
"376/376 [==============================] - 64s 170ms/step - loss: 0.0513 - accuracy: 0.9828 - val_loss: 1.5707 - val_accuracy: 0.6431\n",
"Epoch 27/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0458 - accuracy: 0.9838 - val_loss: 1.9756 - val_accuracy: 0.5582\n",
"Epoch 28/50\n",
"376/376 [==============================] - 65s 172ms/step - loss: 0.0410 - accuracy: 0.9878 - val_loss: 0.8188 - val_accuracy: 0.8234\n",
"Epoch 29/50\n",
"376/376 [==============================] - 65s 172ms/step - loss: 0.0429 - accuracy: 0.9876 - val_loss: 0.7720 - val_accuracy: 0.8159\n",
"Epoch 30/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0446 - accuracy: 0.9857 - val_loss: 1.3514 - val_accuracy: 0.7092\n",
"Epoch 31/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0342 - accuracy: 0.9899 - val_loss: 0.3069 - val_accuracy: 0.9166\n",
"Epoch 32/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0285 - accuracy: 0.9908 - val_loss: 0.6949 - val_accuracy: 0.8317\n",
"Epoch 33/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0438 - accuracy: 0.9858 - val_loss: 0.7840 - val_accuracy: 0.8084\n",
"Epoch 34/50\n",
"376/376 [==============================] - 66s 175ms/step - loss: 0.0387 - accuracy: 0.9859 - val_loss: 0.3256 - val_accuracy: 0.8986\n",
"Epoch 35/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0313 - accuracy: 0.9896 - val_loss: 0.5762 - val_accuracy: 0.8422\n",
"Epoch 36/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0273 - accuracy: 0.9919 - val_loss: 1.7357 - val_accuracy: 0.6521\n",
"Epoch 37/50\n",
"376/376 [==============================] - 64s 170ms/step - loss: 0.0370 - accuracy: 0.9881 - val_loss: 0.3595 - val_accuracy: 0.8993\n",
"Epoch 38/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0328 - accuracy: 0.9886 - val_loss: 0.4661 - val_accuracy: 0.8903\n",
"Epoch 39/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0264 - accuracy: 0.9918 - val_loss: 0.3119 - val_accuracy: 0.9159\n",
"Epoch 40/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0284 - accuracy: 0.9903 - val_loss: 0.9241 - val_accuracy: 0.7708\n",
"Epoch 41/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0326 - accuracy: 0.9894 - val_loss: 1.8347 - val_accuracy: 0.6424\n",
"Epoch 42/50\n",
"376/376 [==============================] - 67s 176ms/step - loss: 0.0235 - accuracy: 0.9922 - val_loss: 0.4905 - val_accuracy: 0.8708\n",
"Epoch 43/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0282 - accuracy: 0.9915 - val_loss: 0.2420 - val_accuracy: 0.9346\n",
"Epoch 44/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0281 - accuracy: 0.9911 - val_loss: 0.6980 - val_accuracy: 0.8370\n",
"Epoch 45/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0252 - accuracy: 0.9920 - val_loss: 1.2434 - val_accuracy: 0.7288\n",
"Epoch 46/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0318 - accuracy: 0.9900 - val_loss: 0.3927 - val_accuracy: 0.8798\n",
"Epoch 47/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0163 - accuracy: 0.9952 - val_loss: 1.0925 - val_accuracy: 0.8099\n",
"Epoch 48/50\n",
"376/376 [==============================] - 65s 172ms/step - loss: 0.0295 - accuracy: 0.9902 - val_loss: 1.2857 - val_accuracy: 0.7506\n",
"Epoch 49/50\n",
"376/376 [==============================] - 65s 171ms/step - loss: 0.0231 - accuracy: 0.9919 - val_loss: 0.3180 - val_accuracy: 0.9151\n",
"Epoch 50/50\n",
"376/376 [==============================] - 66s 176ms/step - loss: 0.0284 - accuracy: 0.9917 - val_loss: 0.2719 - val_accuracy: 0.9196\n"
]
},
{
"data": {
"text/plain": [
"<keras.callbacks.History at 0x7ff56039bd10>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"epochs = 50\n",
"model.fit(train_ds, epochs=epochs, validation_data=validation_ds)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"execution": {
"iopub.execute_input": "2022-11-24T19:02:31.222911Z",
"iopub.status.busy": "2022-11-24T19:02:31.222517Z",
"iopub.status.idle": "2022-11-24T19:02:31.444370Z",
"shell.execute_reply": "2022-11-24T19:02:31.443475Z",
"shell.execute_reply.started": "2022-11-24T19:02:31.222877Z"
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"history = model.history\n",
"plt.plot(history.history['accuracy'])\n",
"plt.plot(history.history['val_accuracy'])\n",
"plt.title('model accuracy')\n",
"plt.ylabel('accuracy')\n",
"plt.xlabel('epoch')\n",
"plt.legend(['train', 'val'], loc='best')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"execution": {
"iopub.execute_input": "2022-11-24T19:02:50.798983Z",
"iopub.status.busy": "2022-11-24T19:02:50.798517Z",
"iopub.status.idle": "2022-11-24T19:02:51.069314Z",
"shell.execute_reply": "2022-11-24T19:02:51.068476Z",
"shell.execute_reply.started": "2022-11-24T19:02:50.798944Z"
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(history.history['loss'])\n",
"plt.plot(history.history['val_loss'])\n",
"plt.title('model loss')\n",
"plt.ylabel('loss')\n",
"plt.xlabel('epoch')\n",
"plt.legend(['train', 'val'], loc='best')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"os.listdir('/kaggle/input/crop-image-dataset/idata/Image Dataset/ImageDataset')"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"execution": {
"iopub.execute_input": "2022-11-24T19:38:29.275683Z",
"iopub.status.busy": "2022-11-24T19:38:29.275315Z",
"iopub.status.idle": "2022-11-24T19:38:29.404601Z",
"shell.execute_reply": "2022-11-24T19:38:29.403528Z",
"shell.execute_reply.started": "2022-11-24T19:38:29.275653Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Found 1330 files belonging to 6 classes.\n"
]
}
],
"source": [
"test_ds = keras.utils.image_dataset_from_directory(\n",
"# directory='/Users/manasgabani/Downloads/IITB/CS725/project/idata/Image Dataset/test_data/test_dup/',\n",
" directory='/kaggle/input/testdataset/Test/',\n",
" labels='inferred',\n",
" label_mode='categorical',\n",
" batch_size=1,\n",
" image_size=(224, 224))"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"execution": {
"iopub.execute_input": "2022-11-24T19:42:58.001472Z",
"iopub.status.busy": "2022-11-24T19:42:58.001115Z",
"iopub.status.idle": "2022-11-24T19:43:53.143826Z",
"shell.execute_reply": "2022-11-24T19:43:53.142846Z",
"shell.execute_reply.started": "2022-11-24T19:42:58.001441Z"
}
},
"outputs": [],
"source": [
"# [y for x, y in test_ds]\n",
"# predictions = np.array([])\n",
"# labels = np.array([])\n",
"# for x, y in test_ds:\n",
"# predictions = np.concatenate([predictions, model.predict_classes(x)])\n",
"# labels = np.concatenate([labels, np.argmax(y.numpy(), axis=-1)])\n",
"\n",
"# tf.math.confusion_matrix(labels=labels, predictions=predictions).numpy()\n",
"\n",
"predictions = np.array([])\n",
"labels = np.array([])\n",
"for x, y in test_ds:\n",
" predictions = np.concatenate([predictions, np.argmax(model.predict(x), axis = -1)])\n",
" labels = np.concatenate([labels, np.argmax(y.numpy(), axis=-1)])"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"execution": {
"iopub.execute_input": "2022-11-24T19:44:28.079242Z",
"iopub.status.busy": "2022-11-24T19:44:28.078629Z",
"iopub.status.idle": "2022-11-24T19:44:28.086180Z",
"shell.execute_reply": "2022-11-24T19:44:28.084995Z",
"shell.execute_reply.started": "2022-11-24T19:44:28.079203Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([4., 5., 3., ..., 0., 0., 4.])"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"predictions"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"execution": {
"iopub.execute_input": "2022-11-24T19:44:32.002975Z",
"iopub.status.busy": "2022-11-24T19:44:32.002600Z",
"iopub.status.idle": "2022-11-24T19:44:32.009884Z",
"shell.execute_reply": "2022-11-24T19:44:32.008473Z",
"shell.execute_reply.started": "2022-11-24T19:44:32.002944Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([4., 5., 3., ..., 0., 0., 4.])"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"labels"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"execution": {
"iopub.execute_input": "2022-11-24T19:45:05.563402Z",
"iopub.status.busy": "2022-11-24T19:45:05.563043Z",
"iopub.status.idle": "2022-11-24T19:45:05.574695Z",
"shell.execute_reply": "2022-11-24T19:45:05.573490Z",
"shell.execute_reply.started": "2022-11-24T19:45:05.563372Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([[210, 1, 0, 7, 2, 1],\n",
" [ 0, 28, 2, 0, 0, 0],\n",
" [ 5, 13, 177, 20, 0, 7],\n",
" [ 0, 2, 1, 215, 3, 1],\n",
" [ 0, 0, 0, 4, 211, 1],\n",
" [ 3, 1, 2, 49, 8, 356]])"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# conf_matrix = confusion_matrix(y_true=test_labels, y_pred=test_predictions.argmax(axis=1))\n",
"conf_matrix = confusion_matrix(y_true=labels, y_pred=predictions)\n",
"conf_matrix_plot_lables = test_ds.class_names\n",
"conf_matrix"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"execution": {
"iopub.execute_input": "2022-11-24T19:45:09.285087Z",
"iopub.status.busy": "2022-11-24T19:45:09.283603Z",
"iopub.status.idle": "2022-11-24T19:45:09.724604Z",
"shell.execute_reply": "2022-11-24T19:45:09.723665Z",
"shell.execute_reply.started": "2022-11-24T19:45:09.285042Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, -37.95460061251481, 'Predicted label')"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAVsAAAEmCAYAAADMczPyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAAsTAAALEwEAmpwYAABbNElEQVR4nO2dd5gVRdaH39/MkDOCSBQkBxUkmBBRDGBGRcQEomJG17S665p1XfVTMeecwVVBsigqiIIYUFARBZZkAEEBQWA43x9VFy7DzJ07MzfNUC9PP3RXV9c53XfuudWnTp2SmREIBAKB5JKVbgUCgUBgRyAY20AgEEgBwdgGAoFACgjGNhAIBFJAMLaBQCCQAoKxDQQCgRQQjG2gVCCpkqRRkn6XNLwE7ZwqaUIidUsHksZKGphuPQLxE4xtIKFIOkXSp5LWSFrmjUL3BDR9IlAP2MnM+hW3ETN70cwOS4A+2yCppyST9Eae8j19+eQ427lB0guF1TOzPmb2bDHVDaSBYGwDCUPSZcC9wG04w9gEeAg4NgHN7wrMNbNNCWgrWfwK7Ctpp6iygcDcRAmQI3xvSyNmFrawlXgDagBrgH4x6lTAGeOlfrsXqODP9QQWA5cDvwDLgDP9uRuBDcBGL+Ms4Abghai2mwIG5PjjQcCPwGpgPnBqVPmUqOv2A2YAv/v/94s6Nxm4GZjq25kA1Cng3iL6PwJc6MuygSXAdcDkqLrDgEXAH8BM4ABf3jvPfX4ZpcetXo91QAtfdrY//zDwelT7/wEmAUr330XYtm7hFzKQKPYFKgJvxKjzT2AfoCOwJ9ANuDbq/C44o90QZ1AflFTLzK7H9ZZfNbOqZvZkLEUkVQHuA/qYWTWcQf0in3q1gdG+7k7A3cDoPD3TU4AzgZ2B8sAVsWQDzwFn+P3Dga9xPyzRzMA9g9rAS8BwSRXNbFye+9wz6prTgSFANWBhnvYuB3aXNEjSAbhnN9C85Q1kBsHYBhLFTsByi/2afypwk5n9Yma/4nqsp0ed3+jPbzSzMbjeXeti6rMZ6CCpkpktM7PZ+dQ5EvjezJ43s01m9jLwLXB0VJ2nzWyuma0DXsMZyQIxs4+A2pJa44zuc/nUecHMVniZ/4fr8Rd2n8+Y2Wx/zcY87f2Je453Ay8AF5vZ4kLaC6SYYGwDiWIFUEdSTow6Ddi2V7bQl21pI4+x/hOoWlRFzGwt0B84D1gmabSkNnHoE9GpYdTxT8XQ53ngIuAg8unpS7pC0jc+smIVrjdfp5A2F8U6aWaf4Nwmwv0oBDKMYGwDiWIa8BdwXIw6S3EDXRGasP0rdrysBSpHHe8SfdLMxpvZoUB9XG/18Tj0iei0pJg6RXgeuAAY43udW/Cv+VcBJwG1zKwmzl+siOoFtBnTJSDpQlwPealvP5BhBGMbSAhm9jtuIOhBScdJqiypnKQ+ku7w1V4GrpVUV1IdX7/QMKcC+ALoIamJpBrANZETkupJOtb7bv/CuSM259PGGKCVD1fLkdQfaAe8XUydADCz+cCBOB91XqoBm3CRCzmSrgOqR53/GWhalIgDSa2AW4DTcO6EqyR1LJ72gWQRjG0gYXj/42W4Qa9fca++FwFv+iq3AJ8Cs4CvgM98WXFkTQRe9W3NZFsDmeX1WAr8hjN85+fTxgrgKNwA0wpcj/AoM1teHJ3ytD3FzPLrtY8HxuHCwRYC69nWRRCZsLFC0meFyfFumxeA/5jZl2b2PfAP4HlJFUpyD4HEojBgGQgEAskn9GwDgUAgBQRjGwgEAikgGNtAIBBIAcHYBgKBQAqIFYAeyCDKV61plXeqn3K5zetUSbnMdLIjDher8CpJ4bPPZi43s7qJaCu7+q5mm9bFrGPrfh1vZr3zOyepIvABLlY5BxhhZtdLegYXzfK7rzrIzL6QJFyOiyNwk10GmVnM6JFgbEsJlXeqzwH/3G7mZ9IZPrhrymWmk025+YXjpobsrPSYPWc3Uk+lcso7e6/Y2Kb1VGhzcsw66z+/P9Ysvb+Ag81sjaRywBRJY/25K81sRJ76fYCWftsblwxo71jygxshEAiUfgRIsbcYmGONPyznt1gvOscCz/nrPgZqSor56hmMbSAQKBtkZcfeXO6OT6O2IdGXS8qW9AUuxedEn28C4FZJsyTdEzVRpCHbTkZZzLY5NbYjuBECgUAZQFD4DOflZtaloJNmlgt0lFQTeENSB9w08J9w6TUfA/4O3FQcDUPPNhAIlH5EPD3buDCzVcB7QG+fntPM7C/gaVwOZnDJihpHXdaIQhIYBWMbCATKAIX4awvx2frkSDX9fiXgUODbiB/WRx8ch0sGDzASOMMvU7QP8LuZLYslI7gRAoFA2aAIvdd8qA88Kykb1wl9zczelvSupLq4vvMXuBzJ4DLGHQHMw4V+nVmoeiXRLpAZ1KlSnluPas2D/Trw4IkdOLpDPQD2b1aLB0/swFvndKFFncrbXHNix/o82n93Hj6pA50aVc+v2WJz7tmDadJgZzp37JDQduNhwvhx7NG+Ne3btODOO25Picy5c79jv257bdka1K3Jg/cPS7rcxYsW0fvQg9lrj/Z03rNDSmRGSOdnnD/eZxtri4GZzTKzTma2h5l1MLObfPnBZra7LzstErHgXQsXmllzf/7TwjQMxrYMkLvZeGraIi4c/jVXvDWHI9vtTOOaFVm4ch23TZzH7GWrt6nfuGZFejSvzYXDv+aGsXM5v/uuJDLE8/SBg3jr7XGJazBOcnNzuXTohbw1aiyfz5rD8Fde5ps5c5Iut1Wr1nw0/TM+mv4ZH06bQaXKlTn6mOOSLjc7J4d/33EXn82azeQp03j04YdScr+Qvs+4QEoY+pUKgrEtA6xct5EfVrgFAdZt3MyiVevYqUp5Fq9az5Lf129Xf++mtfjgh9/YtNn4efUGlv3+Fy3rJm6mWPcDelC7du2EtRcvM6ZPp3nzFjTbbTfKly9Pv/4n8/aot1Kqw+R3J9GsWXOa7Jp3AYjEU79+fTp12guAatWq0bpNW5YuLekiE/GRrs+4YARZObG3NBOMbRlj56rlaV6nMt/9sqbAOjtVKcfyNRu2HC9fu4GdqpRPhXpJZenSJTRqtHWAuGHDRixZkhrjE2HE8Ffp1z/2TKZksHDBAr788nO6dos5ialsk6XYW7rVS7cCgcRRMSeLaw5tweMfLWLdxvRNO91R2bBhA2NGj6Lv8SemVO6aNWsY0P9E7rjrHqpXT6z/vdSQwNCvZFFmjK2kSyVVTlS9ZCDpBklXJKPtbIlrDm3B5HkrmLZgZcy6K9ZupE7VrT3ZOlXKs2LthhhXlA4aNGjI4sVbJ/UsWbKYhg1jTupJKBPGj6Vjx07sXK9eymRu3LiRU/qfyMkDTuG4vsenTG7mUbIBslSQfg0Sx6Vsu9pqSesllEKW+C4xQw9syqJV63jrq58LrTt94Up6NK9NTpaoV608DWpU4Ptf1yZTvZTQpWtX5s37ngXz57NhwwaGv/oKRx51TMrkj3jtFU48KXUuBDPj/CFn07pNG4ZeelnK5GYsoWdbPCQ1lfStpBclfSNphF+xtZekzyV9JekpSRUkDQUaAO9Jes9f/7Cf/zxb0o2+LL96A3xbX0v6TyE6HSZpmqTPJA2XVNWXXydphm/jMR8AjaTJku6V9ClwSVQ7zaMX85PUMr/F/SQNiczj3rBmVYF6tatXlYNb1WGPBtUZdnx7hh3fns6Na7BP05o8fcqetKlXlet6t+LGPq0A+N/K9Uz58TceOqkDN/RpxSNT/8fmBOYWPOO0AfQ8YF/mfvcdzZs24pmnnkxc4zHIycnhnmEPcPSRh9Nx97ac0O8k2rVvnxLZa9eu5d1J73DMcanrXU77aCovvfg877/3Hnt36cTeXToxbuyYlMhO12dcIIVFImRANELGLvgoqSkwH+huZlMlPQX8CJwL9DKzuZKeAz4zs3slLQC6RFZGlVTbzH7zQcqTgKFmNiu6nqQGwMdAZ2AlMAG4z8zezEefOsB/gT5mtlbS34EKZnZTRJav9zwuIHqUpMnAHDO7wJ+7AVhjZnd5Y/83nxvzNmCZmd1f0POouWtbCykWk09IsZg6KpXTzFi5CopCVo3GVmHfv8Wss3785QmTVxwytmfrWWRmU/3+C0AvYL6ZzfVlzwI9Crj2JN9b/BxoD7TLp05XYLKZ/Wpmm4AXY7S3j29jqs8MNBCIxPccJOkTSV8BB3t5EV4toL0ngDP9j0F/4KUC6gUCgUJRxrsR0h98Fpu83e5VwE6FXSSpGXAF0NXMVvps6xVLqItwadcG5JFVEXgI11te5Huv0bIKcoa+DlwPvAvMNLMVJdQvENixyQBXQSwyvWfbRNK+fv8U4FOgqaQWvux04H2/vxqo5ver44zc75Lq4bKqk0+96cCBkur4HuaAqPby8jGwf0S2pCqSWrHVsC73Pty44n7MbD0wHpfh/el4rgkEAgWgzJ/UkH4NYvMdcKH3184BhuKM3nA/uj8DeMTXfQwYJ2mpmR0k6XPgW1yC36lRbeatdzUunZqA0WaW75QjM/tV0iDg5agEwtd63/HjuGxAP3md4uVFoC/OVxwIBEpChvdsM93YbjKz0/KUTQI65a3oB5fujzoelF+D+dR7GXg5HmXM7F2cnzdv+bXAtfmU98xzfEOeKt2Bp33S4kAgUBIyIJY2FplubMsskt4AmuMG1AKBQEmQMmIQLBYZa2zNbAGQlvxtkj7BLWkczelm9lWiZJhZ30S1FQgECG6E0oiZ7cDZPAKB0oeArKzgRggEAoHkIr9lMJn9UxAIBAJxIbKysmJuMa+WKkqaLunLPFP8m/kJS/MkvSqpvC+v4I/n+fNNC9MwGNtAIFAmkBRzK4S/gIPNbE+gI9BbbiHH/wD3mFkL3JT+s3z9s4CVvvweXy8mwdgGAoEyQUmMrV9TLJJxv5zfDBctNMKXP4tbYRfgWH+MP99LhQgJxjYQCJR6JKGs2BtQJ5JFz29D8rSR7fOe/AJMBH4AVvm8KQCLgUiC5Ia4CVP4879TSCqBMEBWSmhep0paMnCtSlNS8RqVy6VFbk526H+UVuJwFSyPlfXLTy7qKKkm8AbQJnHaBWMbCATKCIkK/TKzVT4F6r5ATUk5vvfaCIgsarcEaAws9qkDagAxk0mFn/FAIFD6URxbrMulur5Hi6RKwKHAN7i8KZHkUgOBSO6Ukf4Yf/5dKyQ5eOjZBgKBMkEJk6DXB5712f+ycAsAvC1pDvCKpFtwubEjS1I8CTwvaR7wG1DoekjB2AYCgVKPfJxtcTGzWeSf4OpHoFs+5euBfkWREYxtIBAoG2T4DLJgbAOBQOlHITdCIBAIpIR0LVwZL5n9UxAoMRPGj2OP9q1p36YFd95xe9LkLFm8iBOOOowee+/Jgft05PGHXX72r2d9yZGHHMAh3btyeM99+XxmURayKBqLFy2i96EHs9ce7em8ZwcevH9Y0mTlJVXPeUeXWxAirkkNaSUY2zJMbm4ulw69kLdGjeXzWXMY/srLfDNnTlJk5eTkcP0t/+GDT75k9MQPeeaJR/ju22+4+fpruOzv/+SdKTO46h/XcfN1/0iKfIDsnBz+fcddfDZrNpOnTOPRhx9K2v1Gk8rnvCPLjYlKnBsh6QRjW4aZMX06zZu3oNluu1G+fHn69T+Zt0flu8Raiam3S3326OgGc6tWq0bLVm34adkSJLFm9WoA/vjjD3apXz8p8gHq169Pp057AVCtWjVat2nL0qVLCrmq5KTyOe/Icgsj041t8NmWYZYuXUKjRo23HDds2Ijp0z9JutxFCxfw1Vdfslfnbtz077sYcMLR3PSvq9m8eTMjx09OunyAhQsW8OWXn9O1W/LzwKfrOe9ocgsjE1wFsQg920BCWbtmDWedcTI33XYX1apX57knH+PGW+9k5uwfuPG2O7n84nOTrsOaNWsY0P9E7rjrHqpXr550eYHMINN7thlpbCVdKqlyouoVcO2awmvF1U5PSW9H7e8Xde4ZSScWfHVyadCgIYsXL9pyvGTJYho2bBjjipKxceNGzjqjP8f3O5kjjzkOgNdeeWHL/tHHncDnn32aNPkRHU7pfyInDziF4/oen1RZEVL9nHdUubGQSpY8PBWkX4P8uRSIx4jGWy9V9AT2K6xSqujStSvz5n3Pgvnz2bBhA8NffYUjjzomKbLMjMsuOpeWrdpw3kWXbimvt0t9pk35AIApH7xHs91aJEV+RIfzh5xN6zZtGHrpZUmTk5dUPucdWW5hZHrPNiU+W79kxDhgJrAXMBs4A5dV5y6vxwzgfOBcoAHwnqTlZnaQpIeBrkAlYISZXS9paD71BgD/wM0lGW1mfy9Er1uBo4B1wLFm9rOkusAjQBNf7VIzmyqpGzAMqOjrn2lm3+W5x/OAXEmnARf7Uz0kXQbsAlxlZiMkPQf818ze9Ne+iJuLndBRhpycHO4Z9gBHH3k4ubm5DBw0mHbt2ydSxBamf/wRI159kbbtOnBId5cK8prrbuKuYQ/zr6svJ3fTJipUrMidwx5KinyAaR9N5aUXn6dDh93Zu4sbrLvx5lvp3eeIpMmE1D7nHVluoaTfnsZEhSSqSYwQZ4jmA9294XoK+BFnWHuZ2VxvgD4zs3slLQC6mNlyf31tM/vNJ4mYBAw1s1nR9SQ1AD4GOuOWr5gA3BcxaPnoZMAxZjZK0h3AH2Z2i6SXgIfMbIqkJsB4M2srqTrwp5ltknQIcL6ZnSCpJ3CFmR0l6QZgjZnd5WU8A1QB+uNyY440sxaSDgT+ZmbHSaoBfAG0jEpSHNFxCDAEoHGTJp3n/rCwuB9BsdnR8tlmQg9oR6FSOc2MlV+2KFTYpaU1OvW+mHV+vPuIhMkrDql0Iywys6l+/wWgFzDfzOb6smeBHgVce5Kkz3BZd9oD7fKp0xWYbGa/eqP1Yoz2ADYAb/v9mUBTv38I8IDP2D4SqC6pKi5f5XBJX+PWHIr3p/xNM9tsZnOAegBm9j7Q0veiBwCv5zW0vt5jZtbFzLrUrVM3TnGBwI6HACn2lm5SGfqVtwu9ikKWkQC3uiVwBdDVzFb63mLFBOizMSr/ZC5bn0UWsI/P6hOtxwPAe2bW1/fUJ8cp56/oZqL2nwNOw6VmO7NoqgcCgW0RWSH0awtNJO3r908BPgWaSoqMmJwOvO/3VwPV/H51YC3wu6R6QJ+oNqPrTQcOlFTHuxsGRLVXFCaw1d+KpI5+twZbs7QPKuDaaH0K4xncAB++1xsIBEpApg+QpdLYfgdcKOkboBbuVfxM3Kv5V8Bm3MAUwGPAOEnvmdmXOPfBt8BLwNSoNqPrLQOuxmVW/xKYWcwBp6FAF0mzfOLg83z5HcC/JX1OwW8Eo4C+kr6QdEAsIWb2My4T/NPF0DEQCEQhQXa2Ym7pJpUDZG+bWYekCysl+Pjgr4C9zOz3wup37tzFpn6S3BjV/AgDZIFkkcgBskr1W9lugx+IWWfObYcXKE9SY5xrrx7O5fmYmQ3zg97nAL/6qv8wszH+mmuAs3BuyKFmNj6W/DBdNw34aIYngXviMbSBQKBwSvhDuQm43Mw+k1QNmClpoj93TyTCKEpWO9x4S3tcCOo7klr5FXrzJSXG1swWAGnp1Ur6BKiQp/h0M/sqHfoAmNk7wK7pkh8IlDUkSjRA5t2Qy/z+au/ujDUt7ljgFTP7C5gvtxZZN2BaQReU+Z6tmSU/E0kgEEgzcQ2C1ZEU7Yt7zMwe264l5/bsBHwC7A9cJOkM3KD+5Wa2EmeIP466bDGxjXPZN7aBQGDHII6e7fLCfMQ+pv513MzRP/zs1Ztxftybgf8DBhdLv+JcFAgEAhlFIRMa4nHnSiqHM7Qvmtl/wUUNmVmumW0GHmfrSrtLgMZRlzdia2hovgRjGwgESj3C9WxjbTGvdz6IJ4FvzOzuqPLobPd9ga/9/kjgZEkV/MSrlrhY/wIJboRAIFAmKGE0wv64iVVf+an64JJaDfATmwxYgMvngpnNlvQaMAcXyXBhrEgECMY2EAiUEUpia81sCvnnDRsT45pbgVvjlRGMbSnBgNzNyZ+AkpeK5bNTLhPgyre/TYvcGw9tmRa5AFUqpufruCl3c1rkJpKShn6lgmBsA4FAGSAz8h/EIhjbQCBQJgg920AgEEg2GZKzNhbB2AYCgVKPSx6e2dY2GNtAIFAmCG6EQCAQSAGhZxsIBAJJRsr8ZXGCsS3jtGvVjKpVq5GdnU1OTg4fTpuRFDkXnXs248eNpk7dnZn26ZcA3HrjdYwZPYosZVF357o8+OhT1G/QoMSyJj3wTxZ++j6VatRmwLCRAIy/6zJWLp0PwIa1qylfpRon3/0G370/is/femrLtSsWzuWku0ZQt1nbEumwZPEiLhhyJr/+8guSOOPMszj3gqGs/O03zh50Cv/730KaNNmVJ599mZq1apVIViwmjB/HFZddQm5uLoMGn82VV12dNFkR5s79jkGnDdhyvGD+j/zzuhu58OJLki47FhnesS14pQZJ97P9Io1bMLOhyVIqsD17de5ixTGU7Vo144OPZlCnTp1iyd0YZ8D71CkfULVKVc4758wtxvaPP/6gevXqADz60P18+8033HP/Q3G1d+24uQWeWzr7U8pVrMw79129xdhGM+Xp/1ChSjW6nnTBNuUrFs5lzO0Xc/rDBSfUj3dSw08/LePnn5axZ8e9WL16Nb0O2JvnXxnByy88R61atbnk8qsY9n93sGrVSq6/+d9xtVnUSQ25ubns3q4Vo8dOpGGjRnTfpyvPvvAybdvlt/h0wZRkUkNubi6tdmvMex9Mo8muRUvRXK1idsJWaqjepK3t8/fYK0xNvGjfjF3K/FPcEt8FbYHAFvbv3oNatWtvUxYxtABr165NmE+tQfsuVKhWI99zZsYPH42nZfcjtjs398PRtOzeJ5+ris4uu9Rnz457AVCtWjVatW7DsqVLGTt6FP1PPR2A/qeezpi3t/8xSBQzpk+nefMWNNttN8qXL0+//ifz9qjiLLtXfCa/O4lmzZoX2dAmGpfZK7MXfCzwp9TMno0+llTZzP5MvkqBRCLEsUcejiQGnz2EwWcPSan8m6+/lldeeoHqNWowauw7SZe3bM5MKtXciZoNmm53bt7UcRxxdex1qorD/xYu4KtZX9C5Szd+/fVndtnFJYqqV28Xfv3154TLi7B06RIaNdqa5a9hw0ZMn/5J0uTlx4jhr9Kv/8kplVkQGe6yLTzFoqR9/Sqz3/rjPSXF9y4YSDsT3/uQqZ/M5L8jx/DYIw8x5cMPUir/XzfewuzvF9Cv/wAef+TBpMubO2V0vr3an+Z+SU6Fiuy0a2JzH6xZs4ZBp53Erbf/H9WievJAxvSoksWGDRsYM3oUfY8/Md2qACVLsZgS/eKocy9wOLACwC8t3iOJOiUUSZf6lWwTUq+AaxdIiukUlfSP4rRdUho0dCt17Lzzzhx97HHMnBEz5WbS6HfyKYx8642kyticu4kfP36Hlvtv7yqYN2Vsvka4JGzcuJEzTzuJE08awFHH9gWgbt16/PTTMsD5devU2TmhMqNp0KAhixcv2nK8ZMliGjaMuTJLQpkwfiwdO3Zi53r1UiazIIR7i4v1L93ElTzczBblKYqZtzHDuBSIx4jGW6+4pNzYrl27ltWrV2/Zf/edibRrn7p1N3+Y9/2W/bFvj6RVq9ZJlbfoy2nUatiMqnV22abcNm9m3kfjEmpszYxLLjyHVq3bcMHFf9tS3vuIo3j1xecBePXF5+lz5NEJk5mXLl27Mm/e9yyYP58NGzYw/NVXOPKoY5ImLy8jXnuFE0/KDBcCEtlZsbd0E8/w5yJJ+wHml424BPgmuWoVjF+MbRxukG4vYDZwBrAvcBfunmYA5+MS/TYA3pO03MwO8msKdQUqASPM7HpJQ/OpNwBnIAWMNrO/x6nfm7jlMioCw8zsMUm3A5V8UuLZZnaqpNOAoUB53MJyFxSWfLio/PLzzww46XgANm3axEknD+DQw3snUsQWzhp4KlM/eJ8VK5bTvsWuXH3t9UwcP5bvv59LVlYWjRs34e77EuN9mnD3FSz5ejrrV6/imbMPotvJF9HukBOYN3UsLQ/Y3qAunfMpVXfahRq7NM6nteLxybSpvPbyi7Rr34Ge+3UG4J/X38Ill13FWQMH8MLzT9O4cROefPblhMnMS05ODvcMe4Cjjzyc3NxcBg4aTLv27ZMmL5q1a9fy7qR3GPbAIymRFw+Z7rEpMPRrSwX3ejwMOATXEx4PXGJmK5KvXr76NAXmA93NbKqkp4AfcYa1l5nNlfQc8JmZ3StpAdDFzJb762ub2W+SsoFJwFAzmxVdT1ID3MqZnYGVwATgPjN7swCdoq+NtF8JZ/QPNLMVktaYWVVfvy1wB3C8mW30PvCPzey5PO0OAYYANG7SpPM33y9IxCMsEvGGfiWaWKFfySTks00diQz9qtW0nR30r+dj1nnj7C4FypPUGHgOqIcLeX3MzIZJqg28CjTFrdRwkpmt9MvoDAOOAP4EBpnZZ7HkF+pGMLPlZnaqmdUzs7pmdlq6DG0Ui8xsqt9/AegFzDezyDf0WQr2K58k6TPgc6A9kF9QYldgspn9amabgBdjtJeXoZK+xBnrxri1ifLSC2fIZ/jebi9gt7yVzOwxM+tiZl3q1Kkbp/hAYMekhANkm3DLlLcD9gEulNQOuBqYZGYtcZ2zyKyRPrjvdktch+jhQvUrrIKk3SSNkvSrpF8kvSVpO8OQYvJ2x1fFc5FfmO0KXA94D2A07nU/IUjqiXsD2NfM9sQZ9PzaF/CsmXX0W2szuyFRegQCOxqFraxbmIvBzJZFeqZmthrnKm0IHIvrvOH/P87vHws8Z46PgZp5FofcjngGyF4CXgPq4/yaw4HkOaLio4mkff3+KbgJGE0ltfBlpwPv+/3VQDW/Xx1YC/wuqR7u14l86k0HDpRUx7sbBkS1F4sawEoz+1NSG9wvZISN3ucN7hfyREk7g3NtSEpvVHggUMrJlmJuQB1Jn0Zt+Qade1dlJ9xYSj0zW+ZP/YRzM4AzxNGBA4t9WYHE4ySqbGbRzpAXJF0Zx3XJ5DtcN/8p3OqWQ3Gv7cMlRQbIIp77x4Bxkpb6ga/PcTHDi4CpUW3mrXc18B5bB8jimZozDjhP0jdex4/ztD9L0md+gOxaYIKkLGAjcCGwsBjPIhAIEFfWr+WF+YglVQVeBy41sz+i2zQzk1TshQALNLbeMQww1hueV3Cv7/2JseJkithkZqflKZuE+zXaBjO7H7g/6nhQfg3mU+9l4uzBm1nTqMN854P6aIa/Rx2/inO8BwKBEiKVPLzLv3m+DrxoZv/1xT9Lqm9my7yb4BdfvgQ3JhOhkS8rkFg925k44xq5g3OjzhlwTXy3EAgEAsmnJKFfPrrgSeAbM7s76tRIYCBwu///rajyiyS9AuwN/B7lbsiXWLkRmhVf9eRhZguA1EXmRyHpE6BCnuLTzeyrdOgTCAS2UsKp0fvjxnq+8hFC4OLsbwdek3QWzs13kj83Bhf2NQ8X+nVmYQLiCuyT1AEXIrVlZD1vTOiOgJntnW4dAoHA9ghK5EYwsylQ4JzeXvnUN9w4S9wUamwlXQ/0xBnbMTif5BRcAHAgEAhkBBk+gSyu0K8TcZb9JzM7E9gTF+IUCAQCGYFEmciNsM7MNkvaJKk6bjQucZPMA4FAIAFkejrLeIztp5JqAo/jIhTWANOSqVQgEAgUlQy3tYUbWzOLLOT0iKRxQHUzm5VctQKBQCB+EhFnm2xiTWrYK9a5wjLcBBJLSUdbi0uW4kp5nHDuOrpkq98Wl76Pp3ZZmWheP6tbWuTmZKfnM040pdmN8H8xzhlwcIJ1CQQCgWIhiOQ/yFhiTWo4KJWKBAKBQEnIcC9CfJMaAoFAIJOJhH5lMsHYBgKBMkGG29pgbAOBQNkgw122ca3UIEmnSbrOHzeRlJ5h00AgEMgHATlSzC3dxBPz8RBu5doB/ng18GDSNAoEAoFiUJJlcVJBPMZ2bzO7EFgPYGYrcctvB0oBE8aPY4/2rWnfpgV33nF7SmQuXrSI3ocezF57tKfznh148P5hKZF77tmDadJgZzp3TE4GzjpVynP7MW15tP8ePNJ/d47d3a2Q0n232jzSf3dGn9eNlnWrbKm/c7XyvHlOVx7o14EH+nXgoh5NE6rP+vXr6bH/3uzdpSNdOnbglpuuT2j7sUj2sy4qkUkNmZwbIR5ju9Gvw2UAkuoC6Vn7OFAkcnNzuXTohbw1aiyfz5rD8Fde5ps5c5IuNzsnh3/fcRefzZrN5CnTePThh1Ii9/SBg3jr7XFJaz/XjMc/Wsi5r87ib/+dzVEd6tGkViUW/vYnN4//nq+Xrt7ummV/rOei4V9z0fCveeCDBQnVp0KFCowZP4lPPv2CaTM+Z+KE8Uz/5OPCL0wAyX7WxSFLsbd0E4+xvQ94A9hZ0q249Iq3JVWrQEKYMX06zZu3oNluu1G+fHn69T+Zt0fFs5Rayahfvz6dOrkJiNWqVaN1m7YsXRpzxZCE0P2AHtSuXbvwisVk5Z8b+WH5nwCs27iZRSvXs1OVcixatZ4lq9YnTW5BSKJq1aoAbNy4kY0bN6ZsFlWyn3VRicywzOSebTy5EV6UNBOXZlHAcWb2TdI1C5SYpUuX0KjR1gRtDRs2Yvr01E5HXbhgAV9++Tldu5WtvOs7VytP8zqV+e7ntTHr7VKtAg+c2IE/N+by7PTFzF62fe+3JOTm5rL/Pl348Yd5DDnvgjL3nOMmQ3qvsYgnGqEJbtmHUbh1d9b6skAgJmvWrGFA/xO54657qF69errVSRgVc7K49vBWPDp1IX9uzC2w3sq1Gznj+S+4aMTXPDZ1IX8/pDmVy2UnVJfs7Gw+nvE5c39cxMxPZzB79tcJbb80oUL+FXq99JSkXyR9HVV2g6Qlkr7w2xFR566RNE/Sd5IOL6z9eNwIo4G3/f+TgB+BsXFcVyQk1ZR0QeE1SySjp6T9kikjhuym0R9iKmjQoCGLF29d2n7JksU0bBhzafuEsXHjRk7pfyInDziF4/oenxKZqSA7S1x7eEvem7ucj+avjFl342Zj9V+bAJi3/E+W/f4XDWtWjHlNcalZsyY9DuzJxPGZ5UdNFQJysmJvcfAM0Duf8nvMrKPfxgBIagecDLT31zzkx7YKpFAVzGx3M9vD/98S6EZy8tnWBJJqbHHL+6Tc2EpKy+SRLl27Mm/e9yyYP58NGzYw/NVXOPKoY5Iu18w4f8jZtG7ThqGXXpZ0eank0p7NWLRqHW/M+qnQujUq5mx5td2lWgUa1KjIsj8S59v99ddfWbVqFQDr1q3j3Unv0Lp1m4S1X9qQFHMrDDP7APgtTnHHAq+Y2V9mNh+38GPM+QdFzq3mUysmwzF0O9Dcd9Xv9NvXkr6S1B+29Ezfl/SWpB8l3S7pVEnTfb3mvt7Rkj6R9LmkdyTVk9QUOA/4m5dxgO9tvitplqRJsdwjkupKel3SDL/t78u7SZrmZX0kqbUvHyRppKR3cW8E0W19IKlj1PEUSXsm9nFCTk4O9wx7gKOPPJyOu7flhH4n0a59+0SL2Y5pH03lpRef5/333mPvLp3Yu0snxo0dk3S5Z5w2gJ4H7Mvc776jedNGPPPUkwltv/0uVTmkdV32bFhjSzhX1yY12K9ZLZ4/vRNtd6nKjUe05pYjWwPQoUE1Hjppdx7o14F/Ht6SBz6Yz5q/CnY7FJWfflpGn8MOplvnPTlgv24c3OsQ+hx5VMLaj0Wyn3VRcbkRYm9AHUmfRm1D4mz+Im8jnpJUy5c1BBZF1VnsywrW0S0SGesmFN01yQL2AnYys0J9FEXBG8O3zayDpBNwhrE3UAeYgTPwrYE3gba4X6AfgSfM7HpJlwDNzOxS/0BWmZlJOhtoa2aXS7oBWGNmd3mZo4ARZvaspMHAMWZ2XAH6vQQ8ZGZTvFEeb2Zt/VJBf5rZJkmHAOeb2QmSBgG3AHuY2W957m8g0Mnr2gp4ycy65CNzCDAEoHGTJp3n/rCwJI+4WBT295Es0pWbdEfMZ5uVppGlSuU0M7+/++LQuM3udvnjI2PW+VuP3QqVF/099cf1gOW40NebgfpmNljSA8DHZvaCr/ckMNbMRhTUdjyvt9Wi9jfhfLevx3FdSegOvGxmucDPkt4HugJ/ADPMbBmApB+ACf6ar4BIWshGwKuS6uMmYMwvQM6+QMSh+DxwRwydDgHaRRmB6pKq4ha/fFZSS9wHUi7qmolmlt9ryXDgX5KuBAbjfEXbYWaPAY8BdO7cJT1WLxAoBYjkRCOY2c9bZEiP48avAJaw7VqMjXxZgcQ0tt7hW83Mriieqknhr6j9zVHHm9l6P/cDd5vZSEk9gRsSIDcL2MfMtnG6+V+498ysr/9VnBx1Ot+4IDP7U9JEnN/nJKBzAvQLBHZglJTk4ZLqRzp3QF8gMsg9EnhJ0t1AA6AlMD1WWwX6bCXl+J7l/iVXOS5Ws7UX/SHQX1K23Iy1HhRyI3mowdZfmYEFyAD4CDeiCHCql1sQE4CLIwdRPtdoWYOKoOMTuAkjM/wU6EAgUExEyXMjSHoZN/jfWtJiSWcBd/jxoFm4N+e/AZjZbOA1YA4wDrjQ28sCidWznY7zz34haSTu1XdLT83M/lu4+vFjZiskTfXhUWOBWcCXuFfzq8zsJ0nxDrXeAAyXtBJ4F2jmy0cBIyQdizOcFwNP+9f5X4EzY7Q5FHjQP/Qc4AOcX/kOnBvhWpyLJd77nSnpD+DpeK8JBAIFIMgpoR/BzAbkU1zgyJ+Z3QrcGm/78fhsKwIrcGuOGe5HxICEGlsAMzslT9GVec5PJuo13cx65nfOzN4CtpuXamZzgT3yFMe1lpqZLQf651M+DWgVVXStL3+GKF+smS0AtmTtkNQA92YxgUAgUCIiPdtMJpax3dlHInzNViMbIQzWlABJZ+B+ES8zs5DUJxBIAJmQ/yAWsYxtNlAV8p3nVmaNraR/Av3yFA/3rwwJwcyeA55LVHuBwI6OKMakgRQTy9guM7ObUqZJhlBUP0wgEMgAlL7Y7HiJZWwzW/NAIBDwCJIS+pVIYhnbXinTIhAIBEpIZpvaGMa2gJlPgUAgkIEobdOO4yUsZR4IBEo9pX2ALBAIBEoNpXmALBAIBEoHgqxgbAOlmUzvLSSadKU5BOj/zKdpkTt8cNe0yE0kwY0QCAQCKSL0bAOBQCAFZLitDcY2EAiUfkr7pIZAIBAoJcS3XHk6CcY2EAiUCTK8Y5vxA3iBQCBQKJJzI8TaCm9DT0n6xS9gECmrLWmipO/9/7V8uSTdJ2meX3l3r8LaD8Y2EAiUCUq6LA4u2X/vPGVXA5PMrCUwyR8D9MGtO9YStwL2w4U1HoxtGWfC+HHs0b417du04M47bg9yk0hubi77dtuLE447OqHt1qlSnluPas2D/Trw4IkdOLpDPQD2b1aLB0/swFvndKFFncpb6lerkM2tR7XmtTP34tz9myRUlwjnnj2YJg12pnPHDoVXTgGRAbKS9GzN7AMgb06YY4Fn/f6zwHFR5c+Z42Ogpl/Nu0CCsS3D5ObmcunQC3lr1Fg+nzWH4a+8zDdz5gS5SeLB+4fRuk3bhLebu9l4atoiLhz+NVe8NYcj2+1M45oVWbhyHbdNnMfsZau3qb8h13hxxhKe+nhRwnWJcPrAQbz19riktV8cVMg/oI6kT6O2IXE0Wy9qdd2fgHp+vyEQ/YAX+7ICCca2DDNj+nSaN29Bs912o3z58vTrfzJvj9puabYgNwEsWbyYcWPHMOjMsxLe9sp1G/lhxZ8ArNu4mUWr1rFTlfIsXrWeJb+v367+X5s2M+fnNWzMTd6KS90P6EHt2rWT1n5xiMONsNzMukRtjxWlfTMzSrBKTTC2ZZilS5fQqFHjLccNGzZiyZIlMa4IcovLVVf8jVv//R+yspL7ldq5anma16nMd7+sSaqc0kYi3AgF8HPEPeD//8WXLwEaR9Vr5MsKJCl/GZJqSrogGW1Hyegpab9iXvuMpBMTpMcCSXXy3rPX7+1EyAhkNmNHv03dunXptFfnpMqpmJPFNYe24PGPFrFuY1gndFsKcyIU29iOBAb6/YFsXbV7JHCGj0rYB/g9yt2QL8n6Ga4JJNXYAj2BYhnbJFGT5N9zkWjQoCGLF291Ky1ZspiGDWO6lYLcYjBt2lRGjx5F21bNGHj6AN6f/C6DB52eUBnZEtcc2oLJ81YwbcHKhLZdJhBkFbIV2oT0MjANaC1psaSzgNuBQyV9DxzijwHGAD8C84DHieO7nyxjezvQXNIXku7029eSvpLUH7b0/N6X9JakHyXdLulUSdN9vea+3tGSPpH0uaR3JNWT1BQ4D/ibl3GApKaS3vUxb5MkFTYM20PSR172ll6upCslzfDt3BhV/qakmZJmF+BY3+aefVlVSSMkfSvpRf8reLCkN6PaPVTSG8V4xoXSpWtX5s37ngXz57NhwwaGv/oKRx51TDJE7dByb7rl33z/4yK+mTufZ59/mQN7HsxTzzyfUBlDD2zKolXreOurnxPabllBuEQ0sbbCMLMBZlbfzMqZWSMze9LMVphZLzNraWaHRFaw8VEIF5pZczPb3cwKTdmWrBlkVwMdzKyjpBNwhnFPoA4wQ9IHvt6eQFtcuMWPwBNm1k3SJcDFwKXAFGAfMzNJZwNXmdnlkh4B1pjZXQCSRgHPmtmzkgYD97E1TCM/6gPdgTa4V4IRkg7Dxc11w31+IyX18CEhg83sN0mV/D28bmYr8rtnr09PoBPQHlgKTAX2B94DHpJU18x+Bc4EnspPQW/UhwA0blL0EJ6cnBzuGfYARx95OLm5uQwcNJh27dsXuZ0gN720q1eVg1vVYf6KPxl2vLuf52Ysply2OHe/XalRKYfrerdi/oo/uX7sXACeGLAHlctlk5Mt9tm1FteN+Y5Fq7YfTCsuZ5w2gA/fn8zy5ctp3rQR/7ruRgYNTvzgYFHI9BlkqZiu2x142cxycc7m94GuwB/AjIifQ9IPwAR/zVfAQX6/EfCqd06XB+YXIGdf4Hi//zxwRyF6vWlmm4E5kiLhHIf57XN/XBVnfD8Ahkrq68sb+/JoY5sf081ssb+/L4CmZjZF0vPAaZKe9nqfkd/FfrT0MYDOnbsUaxS0d58j6N3niOJcWiJ2NLkRehzYkx4H9kxom3N+XsPRj83I99zHC1blW372y7MSqkNennvh5aS2XxxCboTY/BW1vznqeDNbdbsfuNvMRvre4g1JkK2o//9tZo9GV/RyDwH2NbM/JU0GKhZRRi5b7+lpYBSwHhhuZpuKqnwgENiWTO/ZJstnuxqo5vc/BPpLypZUF+gBTC9CWzXYGlIxMKo8WgbAR8DJfv9UL7eojAcGS6oKIKmhpJ29Diu9oW0D7JPPtXn1KRAzW4pzLVyLM7yBQKCEJGC6blJJirH1vsypcgkd9gVmAV8C7+J8rj8VobkbgOGSZgLLo8pHAX0jA2Q4H++ZkmYBpwOXFEPvCcBLwDRJXwEjcAZ0HJAj6RvcQNjH+Vy75Z6jBshi8SKwyMy+KaqegUBgW0RcM8jSStLcCGZ2Sp6iK/OcnwxMjjrumd85M3uLrbFt0dfPBfbIU3xwnLoNynNcNWp/GDAsn8v6FNBW06j9vPc8OercRXnOdceFjAQCgZISZ3hXOkm3z3aHxPfS1wKXp1uXQKDMEIxt+pD0T6BfnuLhZnZrOvSJYGbJnWoUCOxwxBdLm07KtLH1RjWthjUQCCQfkfEd27JtbAOBwA5EhlvbYGwDgUCZILgRAoFAIAVktqkNxjYQCJQFBAo920AgEEguIjNmicUiGNtAIFAmyHBbG4xtacGAzZuLvfxRsclK07Qct9xT6lmawDSEReXlgekJv67VNe/kxtJJcCMEAoFACiiprZW0AJdQKhfYZGZdJNUGXgWaAguAk8ysWEtlhAUfA4FAmSBBWb8OMrOOZtbFH18NTDKzlsAkf1wsgrENBAKlniRm/ToWeNbvP0vs1V9iEoxtIBAo/SRgwUfc0MgEv9ZgZJ3BelGr5v4E1Mv/0sIJPttAIFA2KNyg1pEUvTDjY37pqQjdzWyJXzBgoqRvoy/26yAWe+Q2GNtAIFAGiMtVsDzKF7sdZrbE//+LX/G6G27dxPpmtsyvg/hLcTUMboRAIFDqcUuZF9+NIKmKpGqRfdzCr1/jVt6OLMc1kHwWMoiX0LMtw6xfv57Deh3IX3/9Re6mTRx3/Alce92NSZd77tmDGTvmberuvDMzv/g66fIiLF60iLMHD+SXn39GEoPPPocLLy7y6khFIjc3l76H7U+9XRrw+Iv/ZdqHk7n9xmvYuGEjHfbsxG33PExOTvK+Zg/cdy/PPv0kkmjfvgMPP/4UFSvGsxZp4VQon8M7T15K+fI55GRn88Y7n3PLI2N47MbTOKBzC35f42KSh1z3PLPmumUCD+jckjuvPIFyOdmsWLWGw87Ob9GTJFGy0K96wBs+VjcHeMnMxkmaAbwm6SxgIXBScQUEY1uGqVChAmPGT6Jq1aps3LiRQw46gMMO70O3vfNbrzJxnD5wEOddcBFnD853hfakkZ2Tw7/vuItOnfZi9erV7L93Fw7udSht27VLmsxnH3+Q5i3bsGb1H2zevJmrhp7DcyPG0Kx5S+79z0288eoL9Dt1UFJkL12yhEcevJ8ZX3xNpUqVOOPU/ox47RVOOyMx8v7asIneQ+5j7boN5ORk8e5TlzFh6hwA/nHvm7zxzhfb1K9RtRLD/nESx174EIt+WkndWlXzaTV5lCTrl5n9COyZT/kKoFcJ1NpCcCOUYSRRtar7g9+4cSMbN25MySyb7gf0oHbt2kmXk5f69evTqdNeAFSrVo3WbdqydOmSQq4qPsuWLmbyxHGc5I3pyt9WUK5ceZo1bwnA/gf2YvzoN5MmH2DTpk2sW7eOTZs28eeff1K/foOEtr923QYAyuVkk5OTHXNmX/8+XXhr0pcs+snF/P+6ck1CdSkMFbKlm2Bsyzi5ubns07UTTRvV4+Beh9C1297pViklLFywgC+//Dyp93vrv67iqutuISvLfY1q71SH3NxNfPXFTADGjXqDZUuSZ+wbNGzI0L9dTruWTWnRtCE1qteg16GHJVRGVpb4+JWr+d+k23n342+Z8fVCAG648Gimv3oNd1x+POXLuRfklrvuTM3qlRn/+CVMffEqTjmqW0J1iUkhExoyYSZvMLZlnOzsbD6e8Tlzf1zEzE9nMHt26nyo6WLNmjUM6H8id9x1D9WrV0+KjHcnjGGnOnXpsOdeW8okce8jz3HbdX/nhMMPoErVqmRlJ+8rtnLlSkaPGslX3/7A9/MXs/bPtbzy0gsJlbF5s7HPybfT4vBr6dJhV9o1r891949kz7430/20O6lVowqXn3kIADnZWezVtjF9L36YYy58kGvO6U2LJjsnVJ+CcFm/FHNLNxlvbCXVlHRBkmX0lLRfMa+9QdIVhdQ5TlLyHIdxULNmTXoc2JOJ48elU42ks3HjRk7pfyInDziF4/oenzQ5n03/mEnjR9OzSxsuPfcMPp76PpdfMJhOXffm5ZHv8Pr4D+m6b/ctLoVkMPndd9i1aVPq1q1LuXLlOObYvnzy8bSkyPp9zTre/3Quh+3Xjp+W/wHAho2beO6tj+nSvikAS35ZxcRp3/Dn+g2sWLWWKZ/NY49WDZOiT34EN0LJqQkk1dgCPYFiGds4OQ5IubH99ddfWbVqFQDr1q3j3Unv0Lp1m1SrkTLMjPOHnE3rNm0YeullSZV1xbU3MeWLeUz+9FvuffQ59tn/QP7voadY8asLw/zrr794/P67GXDG2UnToVHjJsyY/gl//vknZsbk996ldZu2CWu/Tq2q1KhaCYCKFcrRa+82fLfgZ3aps/Vt4ZiD9mDOD0sBGDV5Fvt1bE52dhaVKpaja4emfDv/p4TpUxhZUswt3ZSGaITbgeaSvgAm+rI+uKl1t5jZq5J6AjcCq4DdgdeAr4BLgErAcWb2g6SjgWuB8sAK4FR//jwgV9JpwMXAIuApoA7wK3Cmmf2vMEUlnQMM8e3PA04HOgLHAAdKuhY4wVd/EKgL/AmcY2bf5tPeEN8ejZs0KUz8dvz00zKGnDWI3NxcNm/ezAkn9qPPkUcVuZ2icsZpA/jw/cksX76c5k0b8a/rbmTQ4LOSLnfaR1N56cXn6dBhd/bu0gmAG2++ld59jki67AiPP3Qv700ci23ezICB57DvAT2TJqtrt705ru8JdN+nCzk5Oey5Z0fOPOuchLW/S53qPH7T6WRnZZGVJV6f+BljP/yasY9eTJ1a1ZBg1neLufjWVwD4bv7PTPxoDjNeu4bNm41n3viIOT8sK0RKAkm/PY2J0pU3NF4kNQXeNrMOkk7AGcbeOEM4A9gbaA28CbQFfgN+BJ4ws+slXQI0M7NLJdUCVvlpd2cDbc3sckk3AGvM7C4vcxQwwsyelTQYOMbMjitAvy3XStrJh4og6RbgZzO7X9Iz/h5G+HOTgPPM7HtJewP/NrODYz2HvTp3sSnTZhTjCZaMHS2f7ZKV6ctnu0uNCmmRW3efoWmRu/6LB2fGmtFVFDru1dkmvP9xzDr1qpdPmLziUBp6ttF0B142s1zcNLr3ga7AH8CMSMIIST8AE/w1XwEH+f1GwKt+2l15YH4BcvYFIg6/54E74tSvgzeyNYGqwPi8FSRVxbkshkc57dPzLQsEyhAlyOyVEkqbsY3FX1H7m6OON7P1Pu8H7jazkd71cEOCdXgG57L4UtIgnC84L1m43nXHBMsOBHZsMtvWlooBstVANb//IdBfUrakukAPYHoR2qoBRAIfB0aVR8sA+Ag42e+f6uXGQzVgmaRy/rrt2jezP4D5kvoByLHdzJVAIFA0EpBiMbn6pVuBwvA+0KmSvsa93s8CvgTeBa4ys6IMd96Ae32fCSyPKh8F9JX0haQDcINkZ0qahRvkineC/b+AT4CpQPSA1yvAlZI+l9QcZ4jPkvQlMBuXoDgQCBSbwlKHp9/aZvwAWcARBshSQxggSx2JHCDrtFcXe3fKJzHr1K6SEwbIAoFAoKRkQChtTIKxjRNJ/wT65Skebma3pkOfQCCwLZngKohFMLZx4o1qMKyBQAaiDBkEi0UwtoFAoGwQjG0gEAgkn0zIfxCLjA/9CgQCgXgoadYvSb0lfSdpnqSrE61fMLaBQKBMUJJ8tpKyccmh+uAy9A1IdFrUYGwDgUCpxyUPL9FKDd2AeWb2o5ltwE1ESuhko+CzLSV8/tnM5VUqZC0s5uV12HbGXKpIl9x0yg5y42fXRCnx2Wczx1cqpzqFVKso6dOo48fM7DG/3xCXWjXCYlxGwYQRjG0pwczqFvdaSZ+mY+ZMuuSmU3aQmx7MrHe6dSiM4EYIBAIBl6CqcdRxI7YmrUoIwdgGAoGAW4igpaRmksrjsv6NTKSA4EbYMXis8CplSm46ZQe5pRAz2yTpIlzC/2zgKTObnUgZIetXIBAIpIDgRggEAoEUEIxtIBAIpIBgbAOBQCAFBGMbKBaSwt9OIFAEwhcmUCQk7QVgZpszQJddJFVKYvtpSSMVkZsu+emkLN9zMLaBonKVpPQsWhWFpIbAHUBlf1ziL2mUkWssqQJQpaRtFgczM0ldgMO9Pmn9nkrqKumYBLcZedYH+GxbfcHdeyLlZBLB2AZiko8RGwnUTIMq22BmS4CKwI3+uMRfUm/kjgaeA/4D/FNS40IuSxa7A3dIqpHOtwj/+bcFuvjj7ES065/1EcADQA3gMUmDEtF2phKMbSBfJNWS1MR/KfaRtIc/9S7QX9JxadKrvqRIApMrgE2SdvLnStS7ldQeZ7xPwgW27wWsSserrZk9DUwE9ve6peW76n/EFgGHSGpgZrklbVNSlqSqwLm4zFrrgXnAhOBGCOxQeD/oZcDZkpoDHYCXJV0BtAcu8WUJ6+nEqVcd4P+AmyRdBfzl9TgQit67zceAlQPeADrhenLnm9lqYHc/hTPhSGoi6XK/31XS9b53DfAjcByk3kcuqYOk27zs94C3gMsllStmexUk1faHtXAGdj5wIu5vbZCZLQVOkLRPiW8gAwnGNrAdZrYOeB9nfE4EhgN9gYXADcC/gXMk1UtET6cgons5/nV6OTAYuB3nzzwN2AW4xPtwi9J2BeBMv99J0qXAMqA3Lon08Wb2o6Q+uN5utZLfUb5Uwf2oXQnMBTbi3hxeBWbjepS9kiR7G/L8+FQE2koa4VeWXuN1y/V14+6B+nZ7AIdLOh/395Tr27sDONPMvpPUDbjOl5c5Qm6EwDZIyvK9qCXAT0AT4ALgOTMbLmkkziD1x/k0LzOzTUnQY2egNfChpCO9rL+AR8zsVd/7a4z7Gz4cqAcskaR4erhm9pekcpL+xPWwjjeznyUNB1oCx0uaizPs/zKzFUm4R5nZN5KOBx4GNprZbf7cNbh8qjWB7sCkeO+tGHpUMrN1ZrbZG7zawPtm1lfSvriVCy4FdgNWAbcXRQ/f7jfAC76tq/z1V0qqBbwmaTxwJHCtmc1M5P1lCiE3QmALkS+zHwm/DzgBZ/COBX4GRpjZPF93T2CwmV2SJF2uxA0SvQ2cjetd1gReAs4zs5ej6l6Ge+0/LZ7X7aj7rAp8iEsc3cAnI2kGtAHOAFYCY8zs7UQbuigdjsK5QkYCTwITzey6qHqHAk8Ah5vZt4mSH9V+DZyhvxO34MHLwC/AD8AzwIdmliupNc747wNcDayO53lEPzf/9nAoMA54z8y+9uX9gd98mx8n60cl3QQ3QmAL/svfFRgKvGlmy8xsMjAa2Ak4RdJuvnoroI+k2okc1Ij4gM3sTtwX/ihgqZlNNbPRQD/gAUmnRl32P9yIdqFvalFGroKZrTGzTsD9wEJJTc1sPvC1mQ0wswuSYWj9/ZmkTrge4yQzm4P7Uekl6V9R9SYCE9g212oiKQd8DvwLuBk40swOYKu/uJekHDP7DngdaAHsUhRDK6mdpHo44z0YN/B4nKSdJXUAFpnZRDP7GMpu+FcwtoG8ZON6dq39Kx5m9g7wDs7gRpiP+2L+lqgvh6SKQBdJ1SS18jLnADtLOsS/7k7A9TqfkItMqIjz/11lbu2oWO1HvvxHA/dLGub9zjfjeo/TJPUD3vI9Ofz9J+PVvS5wDlDXzGZ4ObOBIbhBoht8vd1wP2wLEiy/ope5HPdj+hru7SCyyOHduOVujsf5jbNwboR2uIHJwtrPinrWLwB/x/n6qwPXAs1x/v8ppCmeOeWYWdh24I2trqRmQE2/3w54DzgfqBZVd6foaxKsRw5QAbgY9yq7GGjiz92AG7Q6GKjky+oUU05vXE+uJfAZzqB39ecuBZ4Hjkjms/b75YBDcPlT/wmUizrXAdjX71cAaiRYjyzcwOeFOLfAw/7zvxoYAxzg61XFuW/aRl3bsJC2qwHZfr8zLil3fZyBneU/27Y4o9sd6Jauv/1Ub2lXIGzp34BjgI+Ap4BrcL7RDrg4z0ujDW6S5NcGnsb5Tnvhek5PRBn3bNxr7lM4n18WkOXPxTT8uN7YSX4/BxiG68EdAUwDHgI+Afb2dSrG024x7jHyo3YQLo73WH/cy+twJZCT55qsJDzrWv7/qsB3OL/0Hr5sF9wP7JvAQdE65NWtgLZrALfiojyygT1wYXSH4n7Y9vWf4XigR37PpyxvwY2wg+NjGq/F+edWAqf442U4A3A8Li4ymZTHRT78H25wphewFLhQ0u7mwssexA3SLTGzzeYHwsx/U2NQH3hc0unmoiauxN3bFbge7AW4H5eLJNU0s/VxtlskzLYMht3r7/cGSdea2SRcKFR7r1v0NQmNrfUxsmMlXW9ma4Avcb7Z4728n3BLeL+DixSIxMVi8UWcrAdW4AY2T8D5vj/H9WCvMrNpOPfTQuD36AsT/bwzknRb+7ClZ2Nrj+VIXE+vD/Aprpc7BngcZ6iqpkifhjgjPwIXxtUGuAfX074QeBTn3yxKm5He5IE4o3KGP66B611FIgHewPdsk3h/9b3M3XBhc9P88/6PP38I0CEFz3kPXPzuWf64NjAZuMsf74ZztTQo5rOuiAsVHAYMwEU43O7vtTfOB981lX/rmbKlXYGwpfgD3/qlqJPn+H6gi98fBjwLtE6FLlHHNXE+whHeOLX2xvYj4IQS3m9Pb3AH+uMhuLCyH3ADfcl+7uW9IeuM61HW9D8Ca4A7U/TZR3ype+AmUFzlj1sA03Hug5nAPiV81hGDex9b3SX/h3MVHZeKe83ELcTZ7oBI6o17jZ6C83/egIvxbOr378HFsk5Pog6RyIDDca+dG3ADNeVwI9etgb+b2UK52WO/FzcEKzJRQ1JPnM/w7+YmaNTF9ZbnJOq+omRG7q8T7p5Wmtn3kg7Gxcz+XdJhuB+BcWb2QaJ1yEeX2rg39pVyeSBeB54ws7sk1QQuAqaYC/crqayKuDCvNrjZiP/FGftNZTWOtlDSbe3DltoN6Ap8hfMRPoJzGQhndJ8ARpGi3gfuNf4znOviA5zvsoLfbsfNx69CAgaK2Oo26YnzCw9Owf1FXpv/BmzCDRb1wL2234bzU3f3dZMyQMTW3uZx/rMeC/T3Za3938L1SZJZEZdH40Ggfir+pjJ5Cz3bHQxJhwB1cYMU9+JG6hdIamFm8yRVM7PVye59+BjeYbhA+j1wUQ8/4UbJj8WNZjcys++L2f52+kf1ug6CLQlWEo6f5FEfF0Z2Li6sahhwoJn9Kml/3CSFX80NkCUV/5nfhvPP3+z/v9XMHpHUFjd7rTfwY0k+c22d6p23h1vPzBaW+EZKOcHY7mD4GWJvAKtxsZyr/OtsX5wPb3UKdWmAi3R4HtfLzcL5DmcDhxXlix/15d4ZN9K92cy2S2iSn0FIwK3kp095XK9uLW4Sxunm3AgnAlPNbFky5ObRIfJMTsf5puvgXDSP40LpHjWzOyRVNrM/i9Hu3rh42XJmNsafyzafnCjPVN0d03UQRUhEs+MxE+c+2B1oKakKbl78v5JpaKO+oAfgBodyzWyM9xVOM7Olkg7E+Y7fLuoX07d9NG5SRC4wRdI7ZvZJXlW8PhVxr7mrSnJfMcjGDYDtgxvZ3yCpM27A7yxc+FlSiDJs1YA/zOx5H/b1MjDUzGb63n0fSS+YS20YN/5Z9wbuwkVYdJfUz8zONJdHISI/C8iVVB3oJ+lZS0LSolJDuv0YYUv9hhsVH4Ib5X8VOMaXJzWwHJedazYuv8FmXHB/c1xC8gdw00MPLWbbLYBvgD1xQfSX4CYL7BZVJzIaXxMXetU8SfcZeWOshRv1fxA3VfUL/Oh8Cj7jI3ErTtyKC+vLwkWc3IcLMxtDMaIOcD9WFXC+/cjfTTbuR/z2Ap71hyQ5tK40bGlXIGxJ/oBjGFBcz65cYfUSoQPudfNN3KDMwbiBsYb+fGPcigRxf/kjX+ao45a4Uf3IcWvgRaCXP87x/9fAzYw7MMnPPWJsavkftjNJ8mBYlOx9ga9xORU+8Ea3Em5w7j7ctNmji9BeRWBXv9/I39OjRM0Cww3+PeY/68hgZE3/rA9I5v2Wli24EcoY+fkuKTgZ81/mvxWR/xOtR1Tbf0j6AucbPgoYYGZLvD9xjplNLULb5YGTJU3AhRYdC/wDKC/pfDN72Fwy6qW4qItJ5kKOauFieG8wsw8TeLvRumWZm+GW6/2XK3FGKJXsjhsIq40zlNeZ2TpJ35vZUEm7mNlP8fhR/WDfHrgEQXVxbyeH4AZYH5e0t5mtAnbGhQ5WNrO1kirjZqPdkqxnXepIt7UPW+I34GhcWr6xuCQn273CsbXnVZEEJzrJ036DqP2bcfG0df1xJ1yAf3FeZ0/A5UD9jq15DY7B+aMfwuUgmAvsF3XN5cDBCbq/iKtgb5zb4oioc3l73YXmFSihLll5jg/BuYi+wM8EwyWe+Q/ulb9IPWvc28ALuB/vq6LK7/Ey7sK5h46MOtcWaJfM+y5tW4hGKGNIaoHzp52M6220w71S32VmP/o62eZ6XjVxBvk0M/shQfJb4rJEjfS5AO7BZRD7yszul/QSblR8LrAfcKOZvVWE9iM99yxcasD2QE9zS9jUwoVcXQasAyaY2ahkjYTnHSTC9dAjS+1E9Iw86+o4X3XCBon8IN9G3/4+uM/7O1z+gedw7oIROBfOk8A/zeztIrQfHU1wDC55z8/AjEg7civk/g5sMrNPQtRBDNJt7cNWso0M813i/LGbcfkM7sb1+o7GDRJd4+sciIvrjKQ2jKunRdTAU1TZQOB7tqYk3JWonl7UNQnzk5IBg0S4H6xbcHkteuGWMXoI19vvhPPX3oybvTWardNmi/qsu+DcCM39Pf7Tf677AR2Bk9P591+atrQrELYSfHhuvv0ZuNR4PXG9yEq40f3zo+rdiQv5iRzXAiaR4IELtg6MHILr7bzqjyviBmcewM0Mq1iMtiNf/mNwM8seZWsawLNwPeWLcdnCOifhWWfUIBFuZt1D3vA9iOvdgxuIWxl5Bl5+7ehnWAQZR+F6x9fi3oAO9n9z1+DyHPwG9E7nd6A0bWlXIGwl/ADT7LvMR5+IkemFm6J6oj8u57+sD1LMBDe+zc9x0QujceFbp0fd800UM3SsELkCuuGSq1yP84dWxg3KfcfWpOuH43zlVfxxZdx6Wwcm6RlXwYWUfQicB5T35YNwbxcHlUBGG/98G+Fy3H6Bi2w4wp9vCuyZ6r/30rylXYGwFfOD29rTy/K9jv/hY0pxva52uFwH9+PDfIrasymBbhFj0Ac3U62fPy5HlAsg3naijs/HvdYeiUv4fZU3CINxPfqEJ9uOkp1Rg0RRz7gyzp1wD+7VPuK6GIybhVfc9pvh/OE9/A9cM1wPdy7Ox5/270Bp28IAWSkkavCllrnQIiQNxH0ZzjCzaZJ2xS2kl3euekoGMLQ109ZhuN7dADN7tQjXV8AltX4N5+PtZGb/5wf1ngQuNjfrbBLOdXC1mS1Jwn1k7CBR1DOuiutxZ+HyHEyxfKbMFtJW5O9jN9zkknVmtlHS+bhBuCckRRZrfMH84oyB+AlxtqWMqC/FMcBZkn4CXjGzZyXlAM9Kuh/nVzsaN2hD5AuXLCOQ90vtjUCWmU2QdCTutTZuzOwvSXVwPfaVOL8swJ+40fXTJUUylt2XTEMrt7T7BlzPdTRura6DJf0W0cd8bgCve0p6MFHPeI3cApH/xrmVZuGeWdy6+Ps8HOeLHQOsl/QPXL7doZIMNzh2siUx9WZZJvRsSyGSeuFeWyO+2drAQ+bmwB+De9X+0Nwy2MnSIWmJX6LaroxboqUOzj+4zp/vjvsxaYzL6RB36FhR8eFrt+F62PvjBhun4PzerXATKk4xs3HJ0qEAvaKfa3QPt5GZfVuEdiLPugbOTTMVl4JyCG7tuSG+R7sb8ImZjUr83ewYBGNbCoj+Yvnj83GrltYDrsMlge6Ly+b0Mm5mWELXrypAr20SvwDbJX6JijOtiItCWFVIm5Evfx1ckpiquF7t6cDx5uJpdzWXVLyBdyUkK462Da6n1w/3lnAu8AcuvGuMpKa4CSFfJlp2lA7xZtgqdjYzSYfi/ODNcakuf8T5aC/GLV9/ofkkRSGOtviEBR8zHO+77C8pW9LBki43s4eBebhBkL5mdgfudfYgXJhPKgxtC+AO3CKFd+NeNwd6n1+kTvTkifdwX9yYeMPSG5cg5wm2JpR5ERjhfdNTJLU2n60qiV/+v4Cz2Zq4py8u2uBeSaeZ2YJkGlrY5nk8iYtNvl7S0/5criT5qpFsZtWBwd6lVCh+MsStuIGv3XBuiMrmJsA8hPvBaxatTyLua0ck+GwznEzwXcK2vahIEbAwYmwk/Q8XHtUM+FFSjrl8BDVwKzBcbXHMUpNbruUBXLxoNdzKEo+Z2emSVuOyeg0xs+8SeX9edt5BosVRg0QPmtl8uXwLE3A/dknFG9LyuAki/zA3Ky8bmC7pdjO72usb/aM2CrjC4pilJjeIejduVttDkqbi3CSbJT1iLv/u3yPum0AJsQwIiQhb/htb3TyVcbGdc4FKUee74wZsZpHE1H0kefJE5D79/l7Aw34/Cxfn+Qx+8gB+QkT0NQm+18Nx0Q1P4Ix+dZwLYwbuh+5HoFsSn3XKJk/gVjR+Gpefopkv2x3nt72aJIbS7Yhb6NlmKPn4Lo/AfdmnSTre3GveIjM7Mtm+S3OJr9fi1tP6FRdetk7SvcARkh7C9V6PxQXURxiMW34lZtYnf5/743rF5XCJpkeZ800ulrQONw35AzNbH7kmUfeXZ5CoE26p8cgg0V3mBonK4V6zL7Ekjcb7nmzSMmxF3Wcr3I/IXJxRPRv4j6SrzOwr35OvaClwR+1IhAGyDMb76q4EFuGSi9yBWwF1AG5Nq1uAQywJr9RROiQt8UtU2/vhfJIzcTGsB+FCrZ7GhVs9iFvtd1oy7tHrkhGDRN7gP4gbkLvVnD8eSffgnss7uMkiV5nZaH+uLe67XOAqwVHP+mjcsuLf4HrN9+JcIsfiMphdbGbzk3FvOzrB2GYo3nf5Ftv6LluY812ehws7mmhmY5OoQ9InT0jqhkv9d42Zfez9pcfgZkPVxvXqRpnZm0m5SbYMEt2Hc1dcCDyL89GulctidjFuye9ZSdQhKZMnJJUzH5LnoyfuxEVTzJQL6eqGc1Msxv3IjDCzz5Nxjzs6wY2QQeT58lTAGdMPfa9yFnCLpB7mVkWtaGbrk9XLijKayZ48UQM3JfRg4GNcL/5HnL/y5LxGPHF36MiEQaKoZ53QyRP+czpJ0g+4aJHTcM+7ETDTzJ7yveIrzewUSTeZ2V/JuMdACP3KKCK+S0mn4Ubd+0k6wlzm/8W4V/WWvm7CfZf56NILuBHnumgE3CbpdDN7ErgCtyT6QDObWQI5E3HTcgdLGuB7Yb/jpujW8X7MpN0nLlnOd8AQSc3MRVdcjgvzukgufjWpo/H+WR8FPIXr1T+Au/87cT7yc3CDkauK2O4mnOF+Azd49gLwX6CNf3MCN713pY9oCIY2iQQ3QgaQKb5LpXHyhPclvogLq9qMm38/MhFt55GT3yBRJdwg0Z44X+gCSXvgBomSPjVVSZw8Ibd68njcZzgQ5/u/HjdZ5BdcGsUrLYmz8AIey4CQiLAZON/Ze/glYnAj35fipom+gzPCxyVRfgXcwFs27pX+cl9eE2dkI8urTAKexy/WmGAdjsFl0LrSH4sEJ/32/x+NM7Jv4dIGHo+LAvgX8DY+DCqFn31SM2zhfky6A1/h88/iflxuArpEP5uwJW8LPtvMIa2+S8uAyRPmgvbXA09J+sHM/puIdiODRGZmvpd4Bi4LWWSQ6DBcj+8RXJxrzUTIjaFPSidPmHODTJF0DfCgpBdxxvdiM5vt64RX3GSTbmsftq0bLvxmHs4QgPPbzcDFVSZ1qXH/f1onT0TJOxSfmzcBbeUApwL7AB1wK0VMiL4PnG/0Jb9fIUWfdVomT+CWOX8CODwV9xm2rVvw2WYYqfJdRsnLmMQvyUJSR1yCdXCGvDvuTeJtM5st6QDcAplDbdspyYnWIyMybGnrVOpS9TmWdoKxzUB8uNVNwItmdmeyR+SVAZMnkkkmDRJlyuSJQOoJoV8ZiO/JXgVcIjc115JoaCOJX27ADcaBS/xyJ27+fdISv6QKM1uL69GeiQvg39PMzgMm4+JPTzGztyI/aslCIcPWDk3o2WYwvhf0g/8yJrLd6NlKewHnmNn5fvJEA1xP9ikz+yDZkydSjY9nHYZz1WwzSJRkubviwuVeNLMHJe2J8xVPAB4xt9pCJQsZtsosoWebwZjZxEQbWt9uxkyeSDXmpr6ehvtR+U8qDK0n7ZMnAukl9Gx3IDJl8kQmkOxBokycPBFIL8HY7mAoAxK/lHWiDG3IsBXYQpjUsOOR1skTZZlMmzwRyCyCz3YHw9Kf+KVMEpVhax9JHYDz2JphCzN7CliNCzH7FbjJQirDHYrQs90B8WFOm4EXJZ2Amzxxs5n9kmbVSi3e/zubbSdPLMBl2JrnB+JGAieHDFs7JqFnu4PiZyedBrTAJageKU+aVSvNfA9EcsdWxyW6aQZcI+lu3KDkhGTOUgtkLmGAbAdH0mG4PKpDLUGJX3ZkJFUCOgMP41wG4ySdDTQBRprZp8EfvmMSjG0gaZMndmTSNXkikLkEYxsIJAlJ++KS+gw3s/Hp1ieQXoKxDQSSSMiwFYgQjG0gEAikgBCNEAgEAikgGNtAIBBIAcHYBgKBQAoIxjYQCARSQDC2gbQiKVfSF5K+ljRcUuUStPWMpBP9/hOS2sWo29OnmiyqjAV+vba4yvPUWVNEWTdIuqKoOgYyk2BsA+lmnZl1NLMOuJy650Wf9AleioyZnW1mc2JU6YlLKxkIpIRgbAOZxIdAC9/r/FDSSGCOpGxJd0qaIWmWpHPBpYGU9ICk7yS9g1vyHX9usqQufr+3pM8kfSlpkk9/eB7wN9+rPkBSXUmvexkzJO3vr91J0gRJsyU9ARSaO0LSm5Jm+muG5Dl3jy+fJKmuL2suaZy/5kNJbRLyNAMZRcj6FcgIfA+2DzDOF+0FdDCz+d5g/W5mXSVVAKZKmgB0AloD7XAr587B5XmIbrcu8DjQw7dV28x+k/QIsMbM7vL1XgLuMbMpkprgVuNti1uFd4qZ3STpSNyMsMIY7GVUAmZIet3MVgBVgE/N7G+SrvNtX4RbWPM8M/te0t64xR8PLsZjDGQwwdgG0k0lSV/4/Q9xmbH2A6ZHrWJwGLBHxB+LyxPbEpcE/WWfRWuppHfzaX8f4INIW2b2WwF6HAK0i0p6Vl1SVS/jeH/taEkr47inoZL6+v3GXtcVuFSWr/ryF4D/ehn7AcOjZFeIQ0aglBGMbSDdrDOzjtEF3uisjS7CJXIZn6feEQnUIwvYJ7LAZR5d4kZST5zh3tfM/pQ0GbcqQ36Yl7sq7zMIlD2CzzZQGhgPnC+pHICkVpKqAB8A/b1Ptz5u4cq8fAz0kNTMX1vbl68GqkXVmwBcHDmQ1NHvfgCc4sv64NYSi0UNYKU3tG1wPesIWUCkd34Kzj3xBzBfUj8vQ3LLnAfKGMHYBkoDT+D8sZ9J+hp4FPdW9gYuYfcc4Dlgu9WA/RI0Q3Cv7F+y9TV+FNA3MkAGDAW6+AG4OWyNirgRZ6xn49wJ/ytE13FAjqRvgNtxxj7CWqCbv4eDgZt8+anAWV6/2bgFIQNljJCIJhAIBFJA6NkGAoFACgjGNhAIBFJAMLaBQCCQAoKxDQQCgRQQjG0gEAikgGBsA4FAIAUEYxsIBAIp4P8BWX9nOLULCbkAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(conf_matrix, interpolation='nearest', cmap=plt.cm.Blues)\n",
"plt.title('Confusion Matrix')\n",
"plt.colorbar()\n",
"tick_marks = np.arange(len(conf_matrix_plot_lables))\n",
"plt.xticks(tick_marks, conf_matrix_plot_lables, rotation=45)\n",
"plt.yticks(tick_marks, conf_matrix_plot_lables)\n",
"\n",
"thresh = conf_matrix.max() / 2.\n",
"for i, j in itertools.product(range(conf_matrix.shape[0]), range(conf_matrix.shape[1])):\n",
" plt.text(j, i, conf_matrix[i, j],\n",
" horizontalalignment=\"center\",\n",
" color=\"white\" if conf_matrix[i, j] > thresh else \"black\")\n",
"\n",
"plt.tight_layout()\n",
"plt.ylabel('True label')\n",
"plt.xlabel('Predicted label')"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"execution": {
"iopub.execute_input": "2022-11-24T19:19:40.273155Z",
"iopub.status.busy": "2022-11-24T19:19:40.272759Z",
"iopub.status.idle": "2022-11-24T19:19:42.322339Z",
"shell.execute_reply": "2022-11-24T19:19:42.321286Z",
"shell.execute_reply.started": "2022-11-24T19:19:40.273123Z"
}
},
"outputs": [],
"source": [
"test_score = model.evaluate(test_ds,\n",
" batch_size=32,\n",
" verbose=0)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"execution": {
"iopub.execute_input": "2022-11-24T19:19:49.072514Z",
"iopub.status.busy": "2022-11-24T19:19:49.072155Z",
"iopub.status.idle": "2022-11-24T19:19:49.079467Z",
"shell.execute_reply": "2022-11-24T19:19:49.078525Z",
"shell.execute_reply.started": "2022-11-24T19:19:49.072484Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"[0.3646152913570404, 0.8999999761581421]"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_score"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.12"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment