Symulowanie-wizualne/sw_lab9-10_2.ipynb

2147 lines
342 KiB
Plaintext

{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### Aleksandra Jonas, Aleksandra Gronowska, Iwona Christop\n",
"# Zestaw 9-10/zadanie2 - AlexNet, VGG16, ResNet on village"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### Przygotowanie danych"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from IPython.display import Image, display"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import sys\n",
"import subprocess\n",
"import pkg_resources\n",
"import numpy as np\n",
"\n",
"required = { 'scikit-image'}\n",
"installed = {pkg.key for pkg in pkg_resources.working_set}\n",
"missing = required - installed\n",
"\n",
"if missing: \n",
" python = sys.executable\n",
" subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)\n",
"\n",
"def load_data(input_dir, img_size):\n",
" import numpy as np\n",
" import pandas as pd\n",
" import os\n",
" from skimage.io import imread\n",
" import cv2 as cv\n",
" from pathlib import Path\n",
" import random\n",
" from shutil import copyfile, rmtree\n",
" import json\n",
"\n",
" import seaborn as sns\n",
" import matplotlib.pyplot as plt\n",
"\n",
" import matplotlib\n",
" \n",
" image_dir = Path(input_dir)\n",
" categories_name = []\n",
" for file in os.listdir(image_dir):\n",
" d = os.path.join(image_dir, file)\n",
" if os.path.isdir(d):\n",
" categories_name.append(file)\n",
"\n",
" folders = [directory for directory in image_dir.iterdir() if directory.is_dir()]\n",
" \n",
" ds_img = []\n",
" categories_count=[]\n",
" labels=[]\n",
" for i, direc in enumerate(folders):\n",
" count = 0\n",
" for obj in direc.iterdir():\n",
" if os.path.isfile(obj) and os.path.basename(os.path.normpath(obj)) != 'desktop.ini':\n",
" labels.append(os.path.basename(os.path.normpath(direc)))\n",
" count += 1\n",
" img = imread(obj)#zwraca ndarry postaci xSize x ySize x colorDepth\n",
" img = img[:, :, :3]\n",
" img = cv.resize(img, img_size, interpolation=cv.INTER_AREA)# zwraca ndarray\n",
" img = img / 255 #normalizacja\n",
" ds_img.append(img)\n",
" categories_count.append(count)\n",
" X={}\n",
" X[\"values\"] = np.array(ds_img)\n",
" X[\"categories_name\"] = categories_name\n",
" X[\"categories_count\"] = categories_count\n",
" X[\"labels\"]=labels\n",
" return X"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def get_run_logdir(root_logdir):\n",
" import os\n",
" import time\n",
"\n",
" run_id = time.strftime(\"run_%Y_%m_%d-%H_%M_%S\")\n",
" return os.path.join(root_logdir, run_id)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def diagram_setup(model_name):\n",
" from tensorflow import keras\n",
" import os\n",
" \n",
" root_logdir = os.path.join(os.curdir, f\"logs\\\\fit\\\\{model_name}\\\\\")\n",
" \n",
" run_logdir = get_run_logdir(root_logdir)\n",
" tensorboard_cb = keras.callbacks.TensorBoard(run_logdir)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def prepare_data(path, img_size, test_size, val_size):\n",
" from sklearn.model_selection import train_test_split\n",
" from sklearn.preprocessing import LabelEncoder\n",
" import tensorflow as tf\n",
"\n",
" data = load_data(path, img_size)\n",
" values = data['values']\n",
" labels = data['labels']\n",
"\n",
" X_train, X_test, y_train, y_test = train_test_split(values, labels, test_size=test_size, random_state=42)\n",
" X_train, X_validate, y_train, y_validate = train_test_split(X_train, y_train, test_size=val_size, random_state=42)\n",
"\n",
" class_le = LabelEncoder()\n",
" y_train_enc = class_le.fit_transform(y_train)\n",
" y_validate_enc = class_le.fit_transform(y_validate)\n",
" y_test_enc = class_le.fit_transform(y_test)\n",
"\n",
" train_ds = tf.data.Dataset.from_tensor_slices((X_train, y_train_enc))\n",
" validation_ds = tf.data.Dataset.from_tensor_slices((X_validate, y_validate_enc))\n",
" test_ds = tf.data.Dataset.from_tensor_slices((X_test, y_test_enc))\n",
"\n",
" train_ds_size = tf.data.experimental.cardinality(train_ds).numpy()\n",
" test_ds_size = tf.data.experimental.cardinality(test_ds).numpy()\n",
" validation_ds_size = tf.data.experimental.cardinality(validation_ds).numpy()\n",
"\n",
" #Rozmiary zbiorów\n",
" print(\"Training:\", train_ds_size)\n",
" print(\"Test:\", test_ds_size)\n",
" print(\"Validation:\", validation_ds_size)\n",
"\n",
" # Mieszanie zriorów\n",
" train_ds = (train_ds.shuffle(buffer_size=train_ds_size).batch(batch_size=32, drop_remainder=True))\n",
" test_ds = (test_ds.shuffle(buffer_size=train_ds_size).batch(batch_size=32, drop_remainder=True))\n",
" validation_ds = (validation_ds.shuffle(buffer_size=train_ds_size).batch(batch_size=32, drop_remainder=True))\n",
"\n",
" return train_ds, test_ds, validation_ds\n",
"\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"# AlexNet"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING:absl:`lr` is deprecated, please use `learning_rate` instead, or use the legacy optimizer, e.g.,tf.keras.optimizers.legacy.SGD.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Model: \"sequential\"\n",
"_________________________________________________________________\n",
" Layer (type) Output Shape Param # \n",
"=================================================================\n",
" conv2d (Conv2D) (None, 55, 55, 96) 34944 \n",
" \n",
" max_pooling2d (MaxPooling2D (None, 27, 27, 96) 0 \n",
" ) \n",
" \n",
" conv2d_1 (Conv2D) (None, 27, 27, 256) 614656 \n",
" \n",
" max_pooling2d_1 (MaxPooling (None, 13, 13, 256) 0 \n",
" 2D) \n",
" \n",
" conv2d_2 (Conv2D) (None, 13, 13, 384) 885120 \n",
" \n",
" conv2d_3 (Conv2D) (None, 13, 13, 384) 1327488 \n",
" \n",
" conv2d_4 (Conv2D) (None, 13, 13, 256) 884992 \n",
" \n",
" max_pooling2d_2 (MaxPooling (None, 6, 6, 256) 0 \n",
" 2D) \n",
" \n",
" flatten (Flatten) (None, 9216) 0 \n",
" \n",
" dense (Dense) (None, 4096) 37752832 \n",
" \n",
" dense_1 (Dense) (None, 4096) 16781312 \n",
" \n",
" dense_2 (Dense) (None, 12) 49164 \n",
" \n",
"=================================================================\n",
"Total params: 58,330,508\n",
"Trainable params: 58,330,508\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n"
]
}
],
"source": [
"from tensorflow import keras\n",
"import tensorflow as tf\n",
"import os\n",
"import time\n",
"\n",
"model = keras.models.Sequential([\n",
" keras.layers.Conv2D(filters=96, kernel_size=(11,11), strides=(4,4), activation='relu', input_shape=(227,227,3)),\n",
" keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),\n",
" keras.layers.Conv2D(filters=256, kernel_size=(5,5), strides=(1,1), activation='relu', padding=\"same\"),\n",
" keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),\n",
" keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding=\"same\"),\n",
" keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding=\"same\"),\n",
" keras.layers.Conv2D(filters=256, kernel_size=(3,3), strides=(1,1), activation='relu', padding=\"same\"),\n",
" keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),\n",
" keras.layers.Flatten(),\n",
" keras.layers.Dense(4096, activation='relu'),\n",
" keras.layers.Dense(4096, activation='relu'),\n",
" keras.layers.Dense(12, activation='softmax')\n",
"])\n",
"\n",
"model.compile(loss='sparse_categorical_crossentropy', optimizer=tf.optimizers.SGD(lr=.001), metrics=['accuracy'])\n",
"model.summary()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Training: 2990\n",
"Test: 935\n",
"Validation: 748\n"
]
}
],
"source": [
"train_ds_a, test_ds_a, val_ds_a = prepare_data(\"./plantvillage/color\", (227, 227), 0.2, 0.2)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"WARNING:tensorflow:`period` argument is deprecated. Please use `save_freq` to specify the frequency in number of batches seen.\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING:tensorflow:`period` argument is deprecated. Please use `save_freq` to specify the frequency in number of batches seen.\n",
"/var/folders/3r/c8tg1h051m18qhsdccdysrt40000gn/T/ipykernel_14470/2397086753.py:6: UserWarning: `Model.fit_generator` is deprecated and will be removed in a future version. Please use `Model.fit`, which supports generators.\n",
" alex = model.fit_generator(\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/25\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2023-01-09 18:33:27.636772: W tensorflow/tsl/platform/profile_utils/cpu_utils.cc:128] Failed to get CPU frequency: 0 Hz\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"93/93 [==============================] - ETA: 0s - loss: 1.5758 - accuracy: 0.3474\n",
"Epoch 1: val_accuracy improved from -inf to 0.38179, saving model to alex_2.h5\n",
"93/93 [==============================] - 95s 1s/step - loss: 1.5758 - accuracy: 0.3474 - val_loss: 1.4164 - val_accuracy: 0.3818\n",
"Epoch 2/25\n",
"93/93 [==============================] - ETA: 0s - loss: 1.4061 - accuracy: 0.3609\n",
"Epoch 2: val_accuracy did not improve from 0.38179\n",
"93/93 [==============================] - 100s 1s/step - loss: 1.4061 - accuracy: 0.3609 - val_loss: 1.4139 - val_accuracy: 0.3098\n",
"Epoch 3/25\n",
"93/93 [==============================] - ETA: 0s - loss: 1.3158 - accuracy: 0.3999\n",
"Epoch 3: val_accuracy improved from 0.38179 to 0.38995, saving model to alex_2.h5\n",
"93/93 [==============================] - 102s 1s/step - loss: 1.3158 - accuracy: 0.3999 - val_loss: 1.2847 - val_accuracy: 0.3899\n",
"Epoch 4/25\n",
"93/93 [==============================] - ETA: 0s - loss: 1.2229 - accuracy: 0.4792\n",
"Epoch 4: val_accuracy improved from 0.38995 to 0.57201, saving model to alex_2.h5\n",
"93/93 [==============================] - 102s 1s/step - loss: 1.2229 - accuracy: 0.4792 - val_loss: 1.1064 - val_accuracy: 0.5720\n",
"Epoch 5/25\n",
"93/93 [==============================] - ETA: 0s - loss: 1.0983 - accuracy: 0.5625\n",
"Epoch 5: val_accuracy improved from 0.57201 to 0.64946, saving model to alex_2.h5\n",
"93/93 [==============================] - 104s 1s/step - loss: 1.0983 - accuracy: 0.5625 - val_loss: 0.9796 - val_accuracy: 0.6495\n",
"Epoch 6/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.9776 - accuracy: 0.6253\n",
"Epoch 6: val_accuracy did not improve from 0.64946\n",
"93/93 [==============================] - 105s 1s/step - loss: 0.9776 - accuracy: 0.6253 - val_loss: 1.1308 - val_accuracy: 0.5476\n",
"Epoch 7/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.8467 - accuracy: 0.6969\n",
"Epoch 7: val_accuracy improved from 0.64946 to 0.67663, saving model to alex_2.h5\n",
"93/93 [==============================] - 105s 1s/step - loss: 0.8467 - accuracy: 0.6969 - val_loss: 0.9045 - val_accuracy: 0.6766\n",
"Epoch 8/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.7437 - accuracy: 0.7312\n",
"Epoch 8: val_accuracy improved from 0.67663 to 0.77853, saving model to alex_2.h5\n",
"93/93 [==============================] - 105s 1s/step - loss: 0.7437 - accuracy: 0.7312 - val_loss: 0.5997 - val_accuracy: 0.7785\n",
"Epoch 9/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.6769 - accuracy: 0.7638\n",
"Epoch 9: val_accuracy improved from 0.77853 to 0.80978, saving model to alex_2.h5\n",
"93/93 [==============================] - 105s 1s/step - loss: 0.6769 - accuracy: 0.7638 - val_loss: 0.5234 - val_accuracy: 0.8098\n",
"Epoch 10/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.5742 - accuracy: 0.7950\n",
"Epoch 10: val_accuracy did not improve from 0.80978\n",
"93/93 [==============================] - 106s 1s/step - loss: 0.5742 - accuracy: 0.7950 - val_loss: 1.3374 - val_accuracy: 0.5068\n",
"Epoch 11/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.5694 - accuracy: 0.8041\n",
"Epoch 11: val_accuracy improved from 0.80978 to 0.84375, saving model to alex_2.h5\n",
"93/93 [==============================] - 107s 1s/step - loss: 0.5694 - accuracy: 0.8041 - val_loss: 0.5118 - val_accuracy: 0.8438\n",
"Epoch 12/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.4730 - accuracy: 0.8347\n",
"Epoch 12: val_accuracy did not improve from 0.84375\n",
"93/93 [==============================] - 106s 1s/step - loss: 0.4730 - accuracy: 0.8347 - val_loss: 0.6001 - val_accuracy: 0.7826\n",
"Epoch 13/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.4713 - accuracy: 0.8364\n",
"Epoch 13: val_accuracy did not improve from 0.84375\n",
"93/93 [==============================] - 106s 1s/step - loss: 0.4713 - accuracy: 0.8364 - val_loss: 0.5150 - val_accuracy: 0.8125\n",
"Epoch 14/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.3892 - accuracy: 0.8646\n",
"Epoch 14: val_accuracy improved from 0.84375 to 0.86821, saving model to alex_2.h5\n",
"93/93 [==============================] - 110s 1s/step - loss: 0.3892 - accuracy: 0.8646 - val_loss: 0.3537 - val_accuracy: 0.8682\n",
"Epoch 15/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.3787 - accuracy: 0.8632\n",
"Epoch 15: val_accuracy did not improve from 0.86821\n",
"93/93 [==============================] - 109s 1s/step - loss: 0.3787 - accuracy: 0.8632 - val_loss: 0.5223 - val_accuracy: 0.7880\n",
"Epoch 16/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.3409 - accuracy: 0.8770\n",
"Epoch 16: val_accuracy did not improve from 0.86821\n",
"93/93 [==============================] - 110s 1s/step - loss: 0.3409 - accuracy: 0.8770 - val_loss: 0.3797 - val_accuracy: 0.8451\n",
"Epoch 17/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.4428 - accuracy: 0.8508\n",
"Epoch 17: val_accuracy did not improve from 0.86821\n",
"93/93 [==============================] - 108s 1s/step - loss: 0.4428 - accuracy: 0.8508 - val_loss: 0.9765 - val_accuracy: 0.6304\n",
"Epoch 18/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.3638 - accuracy: 0.8740\n",
"Epoch 18: val_accuracy improved from 0.86821 to 0.88451, saving model to alex_2.h5\n",
"93/93 [==============================] - 108s 1s/step - loss: 0.3638 - accuracy: 0.8740 - val_loss: 0.2889 - val_accuracy: 0.8845\n",
"Epoch 19/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.2869 - accuracy: 0.8942\n",
"Epoch 19: val_accuracy improved from 0.88451 to 0.89674, saving model to alex_2.h5\n",
"93/93 [==============================] - 109s 1s/step - loss: 0.2869 - accuracy: 0.8942 - val_loss: 0.2879 - val_accuracy: 0.8967\n",
"Epoch 20/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.2724 - accuracy: 0.9015\n",
"Epoch 20: val_accuracy improved from 0.89674 to 0.91168, saving model to alex_2.h5\n",
"93/93 [==============================] - 108s 1s/step - loss: 0.2724 - accuracy: 0.9015 - val_loss: 0.2781 - val_accuracy: 0.9117\n",
"Epoch 21/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.5926 - accuracy: 0.8021\n",
"Epoch 21: val_accuracy did not improve from 0.91168\n",
"93/93 [==============================] - 107s 1s/step - loss: 0.5926 - accuracy: 0.8021 - val_loss: 0.3587 - val_accuracy: 0.8709\n",
"Epoch 22/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.2875 - accuracy: 0.8978\n",
"Epoch 22: val_accuracy did not improve from 0.91168\n",
"93/93 [==============================] - 108s 1s/step - loss: 0.2875 - accuracy: 0.8978 - val_loss: 0.2895 - val_accuracy: 0.9035\n",
"Epoch 23/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.2233 - accuracy: 0.9267\n",
"Epoch 23: val_accuracy did not improve from 0.91168\n",
"93/93 [==============================] - 108s 1s/step - loss: 0.2233 - accuracy: 0.9267 - val_loss: 0.3617 - val_accuracy: 0.8723\n",
"Epoch 24/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.2837 - accuracy: 0.9005\n",
"Epoch 24: val_accuracy did not improve from 0.91168\n",
"93/93 [==============================] - 107s 1s/step - loss: 0.2837 - accuracy: 0.9005 - val_loss: 0.3122 - val_accuracy: 0.8981\n",
"Epoch 25/25\n",
"93/93 [==============================] - ETA: 0s - loss: 0.2049 - accuracy: 0.9368\n",
"Epoch 25: val_accuracy did not improve from 0.91168\n",
"93/93 [==============================] - 109s 1s/step - loss: 0.2049 - accuracy: 0.9368 - val_loss: 0.3776 - val_accuracy: 0.8750\n"
]
}
],
"source": [
"from keras.callbacks import ModelCheckpoint, EarlyStopping\n",
"\n",
"checkpoint = ModelCheckpoint(\"alex_2.h5\", monitor='val_accuracy', verbose=1, save_best_only=True, save_weights_only=False, mode='auto', period=1)\n",
"early = EarlyStopping(monitor='val_accuracy', min_delta=0, patience=20, verbose=1, mode='auto')\n",
"\n",
"alex = model.fit_generator(\n",
" steps_per_epoch=len(train_ds_a), \n",
" generator=train_ds_a, \n",
" validation_data= val_ds_a, \n",
" validation_steps=len(val_ds_a), \n",
" epochs=25, \n",
" callbacks=[checkpoint,early])"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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eDjh4eEMGTIk1zWSkpLo1q0bLi4uHDlyhLVr17Jt2zZzYmGyY8cOrl69yo4dO/j5559ZunRprqTvXlevXuXAgQMMHjyYwYMHs2fPHm7cuGF+PSwsjPbt22NlZcV///3HsWPHGDNmjHkU5ttvv2XixIlMmDCB06dP89dff1G9evV8fQ+ze/vtt/noo484f/489evXJzExkZ49e7J9+3ZOnDhB9+7dCQgIICQka8VxYGAgK1euZP78+Zw/f57vv/8ee3t7JElizJgxLFmyJMc9lixZQvv27QsV36PQPNa7CfSv0Z9vT37Ltbhr7A3bS/sK7S0dkiAIJVFGMszxscy937kFOrt8HTpmzBg+/fRTdu3aRceOHQHlB96AAQNwcnLCycmJ119/3Xz8Sy+9xObNm1mzZg3Nmzd/6PW3bdvGhQsX2Lx5Mz4+yvdjzpw5uepupk+fbv68cuXKvP7666xatYo333wTGxsb7O3t0Wg0eHl53fdeK1asIDU1lWXLlmFnp7z/hQsXEhAQwMcff4ynpycALi4uLFy4ELVaTe3atenVqxfbt29n/Pjx97324sWL6dGjBy4uLgB069aNJUuWMGvWLAC+/vprnJycWLVqFVqtFoCaNWuaz//ggw947bXXeOWVV8zPNWvW7KHfv3u99957PPXUU+avXV1dadCggfnr999/n3Xr1vHXX38xadIkLl26xJo1a9i6dStdu3YFoGrVqubjR40axbvvvsvhw4dp3rw5GRkZrFixIteoz+MgRngeMwedAwNrDAREI0JBEEq/2rVr07p1axYvXgzAlStX2LNnD2PHjgXAYDDw/vvv4+/vj6urK/b29mzevDnHCMKDnD9/Hl9fX3OyA9CqVatcx61evZo2bdrg5eWFvb0906dPz/c9st+rQYMG5mQHoE2bNhiNRi5evGh+rm7dujk2FPX29ub27dv3va7BYODnn39m+PDh5ueGDx/O0qVLMRqVmYCgoCDatWtnTnayu337Nrdu3aJLly4Fej95adq0aY6vExMTef311/Hz88PZ2Rl7e3vOnz9v/t4FBQWhVqvp0KFDntfz8fGhV69e5j//v//+m7S0NAYNGvTIsRaUGOGxgOF1hvPr+V85HHGYczHnqONWx9IhCYJQ0mhtlZEWS927AMaOHctLL73E119/zZIlS6hWrZr5B+Snn37KV199xZdffom/vz92dnZMnjyZ9PT0Igv3wIEDPPfcc8yePZtu3bqZR0rmzZtXZPfI7t6kRJIkc+KSl82bNxMWFpZrGs1gMLB9+3aeeuopbGxs7nv+g14DUKmUsY3s04r3qynKnswBvP7662zdupXPPvuM6tWrY2Njw8CBA81/Pg+7N8C4ceMYMWIEX3zxBUuWLGHIkCGPreg8OzHCYwFedl48XflpQIzyCIJQSJKkTCtZ4iFJBQp18ODBqFQqVqxYwbJlyxgzZgxS5jX27dtHnz59GD58OA0aNKBq1apcunQp39f28/Pj5s2bhIeHm587ePBgjmP2799PpUqVmDZtGk2bNqVGjRo56mMAdDodBoPhofc6efIkSUlJ5uf27duHSqWiVq1a+Y75XosWLeLZZ58lKCgox+PZZ581Fy/Xr1+fPXv25JmoODg4ULlyZbZv357n9T08PAByfI+yFzA/yL59+xg1ahT9+vXD398fLy8vrl+/bn7d398fo9HIrl277nuNnj17Ymdnx7fffsu///7LmDFj8nXvoiYSHgsxLVHffH0z4YnhDzlaEASh5LK3t2fIkCFMnTqV8PBwRo0aZX6tRo0abN26lf3793P+/Hmef/55IiMj833trl27UrNmTUaOHMnJkyfZs2cP06ZNy3FMjRo1CAkJYdWqVVy9epX58+ezbt26HMdUrlyZ4OBggoKCiI6OzrMPznPPPYe1tTUjR47kzJkz7Nixg5deeokRI0aY63cKKioqir///puRI0dSr169HI/AwEDWr19PbGwskyZNIj4+nmeffZajR49y+fJlfvnlF/NU2qxZs5g3bx7z58/n8uXLHD9+nAULFgDKKEzLli3Nxci7du3KUdP0IDVq1OCPP/4gKCiIkydPMmzYsByjVZUrV2bkyJGMGTOG9evXExwczM6dO1mzZo35GLVazahRo5g6dSo1atTIc8rxcRAJj4XUcatDC68WGGQDy88vt3Q4giAIxWrs2LHcuXOHbt265ai3mT59Oo0bN6Zbt2507NgRLy8v+vbtm+/rqlQq1q1bR0pKCs2bN2fcuHF8+OGHOY555plnePXVV5k0aRINGzZk//79zJgxI8cxAwYMoHv37nTq1AkPD488l8bb2tqyefNmYmNjadasGQMHDqRLly4sXLiwYN+MbEwF0HnV33Tp0gUbGxuWL1+Om5sb//33H4mJ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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"plt.plot(alex.history[\"accuracy\"])\n",
"plt.plot(alex.history['val_accuracy'])\n",
"plt.plot(alex.history['loss'])\n",
"plt.plot(alex.history['val_loss'])\n",
"plt.title(\"Model accuracy\")\n",
"plt.ylabel(\"Value\")\n",
"plt.xlabel(\"Epoch\")\n",
"plt.legend([\"Accuracy\",\"Validation Accuracy\",\"Loss\",\"Validation Loss\"])\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"29/29 [==============================] - 10s 306ms/step - loss: 0.3675 - accuracy: 0.8631\n"
]
},
{
"data": {
"text/plain": [
"[0.367510586977005, 0.8631465435028076]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.evaluate(test_ds_a)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"# VGG16"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Training: 2990\n",
"Test: 935\n",
"Validation: 748\n"
]
}
],
"source": [
"train_ds_v, test_ds_v, val_ds_v = prepare_data('./plantvillage/color', (224, 224), 0.2, 0.2)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Model: \"model_1\"\n",
"_________________________________________________________________\n",
" Layer (type) Output Shape Param # \n",
"=================================================================\n",
" input_2 (InputLayer) [(None, 224, 224, 3)] 0 \n",
" \n",
" block1_conv1 (Conv2D) (None, 224, 224, 64) 1792 \n",
" \n",
" block1_conv2 (Conv2D) (None, 224, 224, 64) 36928 \n",
" \n",
" block1_pool (MaxPooling2D) (None, 112, 112, 64) 0 \n",
" \n",
" block2_conv1 (Conv2D) (None, 112, 112, 128) 73856 \n",
" \n",
" block2_conv2 (Conv2D) (None, 112, 112, 128) 147584 \n",
" \n",
" block2_pool (MaxPooling2D) (None, 56, 56, 128) 0 \n",
" \n",
" block3_conv1 (Conv2D) (None, 56, 56, 256) 295168 \n",
" \n",
" block3_conv2 (Conv2D) (None, 56, 56, 256) 590080 \n",
" \n",
" block3_conv3 (Conv2D) (None, 56, 56, 256) 590080 \n",
" \n",
" block3_pool (MaxPooling2D) (None, 28, 28, 256) 0 \n",
" \n",
" block4_conv1 (Conv2D) (None, 28, 28, 512) 1180160 \n",
" \n",
" block4_conv2 (Conv2D) (None, 28, 28, 512) 2359808 \n",
" \n",
" block4_conv3 (Conv2D) (None, 28, 28, 512) 2359808 \n",
" \n",
" block4_pool (MaxPooling2D) (None, 14, 14, 512) 0 \n",
" \n",
" block5_conv1 (Conv2D) (None, 14, 14, 512) 2359808 \n",
" \n",
" block5_conv2 (Conv2D) (None, 14, 14, 512) 2359808 \n",
" \n",
" block5_conv3 (Conv2D) (None, 14, 14, 512) 2359808 \n",
" \n",
" block5_pool (MaxPooling2D) (None, 7, 7, 512) 0 \n",
" \n",
" flatten_2 (Flatten) (None, 25088) 0 \n",
" \n",
" dense_4 (Dense) (None, 5) 125445 \n",
" \n",
"=================================================================\n",
"Total params: 14,840,133\n",
"Trainable params: 125,445\n",
"Non-trainable params: 14,714,688\n",
"_________________________________________________________________\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/var/folders/3r/c8tg1h051m18qhsdccdysrt40000gn/T/ipykernel_14470/2199093522.py:50: UserWarning: `Model.fit_generator` is deprecated and will be removed in a future version. Please use `Model.fit`, which supports generators.\n",
" vggr = model.fit_generator(\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/25\n",
"93/93 [==============================] - 389s 4s/step - loss: 0.3938 - accuracy: 0.8753 - val_loss: 0.1230 - val_accuracy: 0.9647\n",
"Epoch 2/25\n",
"93/93 [==============================] - 417s 4s/step - loss: 0.0512 - accuracy: 0.9909 - val_loss: 0.0867 - val_accuracy: 0.9715\n",
"Epoch 3/25\n",
"93/93 [==============================] - 424s 5s/step - loss: 0.0243 - accuracy: 0.9990 - val_loss: 0.0692 - val_accuracy: 0.9769\n",
"Epoch 4/25\n",
"93/93 [==============================] - 431s 5s/step - loss: 0.0148 - accuracy: 1.0000 - val_loss: 0.0614 - val_accuracy: 0.9769\n",
"Epoch 5/25\n",
"93/93 [==============================] - 439s 5s/step - loss: 0.0107 - accuracy: 1.0000 - val_loss: 0.0607 - val_accuracy: 0.9810\n",
"Epoch 6/25\n",
"93/93 [==============================] - 445s 5s/step - loss: 0.0073 - accuracy: 1.0000 - val_loss: 0.0670 - val_accuracy: 0.9755\n",
"Epoch 7/25\n",
"93/93 [==============================] - 448s 5s/step - loss: 0.0058 - accuracy: 1.0000 - val_loss: 0.0559 - val_accuracy: 0.9783\n",
"Epoch 8/25\n",
"93/93 [==============================] - 451s 5s/step - loss: 0.0046 - accuracy: 1.0000 - val_loss: 0.0530 - val_accuracy: 0.9796\n",
"Epoch 9/25\n",
"93/93 [==============================] - 482s 5s/step - loss: 0.0038 - accuracy: 1.0000 - val_loss: 0.0538 - val_accuracy: 0.9783\n",
"Epoch 10/25\n",
"93/93 [==============================] - 488s 5s/step - loss: 0.0032 - accuracy: 1.0000 - val_loss: 0.0494 - val_accuracy: 0.9810\n",
"Epoch 11/25\n",
"93/93 [==============================] - 494s 5s/step - loss: 0.0028 - accuracy: 1.0000 - val_loss: 0.0502 - val_accuracy: 0.9796\n",
"Epoch 12/25\n",
"93/93 [==============================] - 491s 5s/step - loss: 0.0024 - accuracy: 1.0000 - val_loss: 0.0503 - val_accuracy: 0.9837\n",
"Epoch 13/25\n",
"93/93 [==============================] - 494s 5s/step - loss: 0.0021 - accuracy: 1.0000 - val_loss: 0.0485 - val_accuracy: 0.9810\n",
"Epoch 14/25\n",
"93/93 [==============================] - 486s 5s/step - loss: 0.0019 - accuracy: 1.0000 - val_loss: 0.0448 - val_accuracy: 0.9851\n",
"Epoch 15/25\n",
"93/93 [==============================] - 485s 5s/step - loss: 0.0017 - accuracy: 1.0000 - val_loss: 0.0474 - val_accuracy: 0.9810\n",
"Epoch 16/25\n",
"93/93 [==============================] - 503s 5s/step - loss: 0.0015 - accuracy: 1.0000 - val_loss: 0.0430 - val_accuracy: 0.9823\n",
"Epoch 17/25\n",
"93/93 [==============================] - 472s 5s/step - loss: 0.0013 - accuracy: 1.0000 - val_loss: 0.0481 - val_accuracy: 0.9796\n",
"Epoch 18/25\n",
"93/93 [==============================] - 474s 5s/step - loss: 0.0012 - accuracy: 1.0000 - val_loss: 0.0503 - val_accuracy: 0.9783\n",
"Epoch 19/25\n",
"93/93 [==============================] - 9356s 102s/step - loss: 0.0011 - accuracy: 1.0000 - val_loss: 0.0496 - val_accuracy: 0.9783\n",
"Epoch 20/25\n",
"93/93 [==============================] - 10544s 115s/step - loss: 0.0010 - accuracy: 1.0000 - val_loss: 0.0466 - val_accuracy: 0.9837\n",
"Epoch 21/25\n",
"93/93 [==============================] - 10648s 116s/step - loss: 9.2169e-04 - accuracy: 1.0000 - val_loss: 0.0457 - val_accuracy: 0.9837\n",
"Epoch 22/25\n",
"93/93 [==============================] - 11629s 116s/step - loss: 8.5353e-04 - accuracy: 1.0000 - val_loss: 0.0462 - val_accuracy: 0.9837\n",
"Epoch 23/25\n",
"93/93 [==============================] - 4931s 54s/step - loss: 7.7390e-04 - accuracy: 1.0000 - val_loss: 0.0466 - val_accuracy: 0.9837\n",
"Epoch 24/25\n",
"93/93 [==============================] - 419s 5s/step - loss: 7.1216e-04 - accuracy: 1.0000 - val_loss: 0.0456 - val_accuracy: 0.9823\n",
"Epoch 25/25\n",
"93/93 [==============================] - 444s 5s/step - loss: 6.6600e-04 - accuracy: 1.0000 - val_loss: 0.0463 - val_accuracy: 0.9837\n"
]
}
],
"source": [
"import keras,os\n",
"from keras.models import Sequential\n",
"from keras.layers import Dense, Conv2D, MaxPool2D , Flatten\n",
"from keras.preprocessing.image import ImageDataGenerator\n",
"import numpy as np\n",
"from keras.applications import VGG16\n",
"from keras.layers import Input, Lambda, Dense, Flatten\n",
"from keras.models import Model\n",
"from keras.preprocessing import image\n",
"from keras.preprocessing.image import ImageDataGenerator\n",
"from keras.models import Sequential\n",
"import numpy as np\n",
"from glob import glob\n",
"import matplotlib.pyplot as plt\n",
"import ssl\n",
"ssl._create_default_https_context = ssl._create_unverified_context\n",
"\n",
"IMAGE_SIZE = [224, 224]\n",
"\n",
"# add preprocessing layer to the front of resnet\n",
"vgg2 = VGG16(input_shape=IMAGE_SIZE + [3], weights='imagenet', include_top=False)\n",
"\n",
"# don't train existing weights\n",
"for layer in vgg2.layers:\n",
" layer.trainable = False\n",
" \n",
" # useful for getting number of classes\n",
"classes = 5\n",
" \n",
"\n",
"# our layers - you can add more if you want\n",
"x = Flatten()(vgg2.output)\n",
"# x = Dense(1000, activation='relu')(x)\n",
"prediction = Dense(5, activation='softmax')(x)\n",
"\n",
"# create a model object\n",
"model = Model(inputs=vgg2.input, outputs=prediction)\n",
"\n",
"# view the structure of the model\n",
"model.summary()\n",
"# tell the model what cost and optimization method to use\n",
"model.compile(\n",
" loss='sparse_categorical_crossentropy',\n",
" optimizer='adam',\n",
" metrics=['accuracy']\n",
")\n",
"\n",
"#train_ds_vgg_sw, test_ds_vgg_sw, validation_ds_vgg_sw\n",
"# fit the model\n",
"vggr = model.fit_generator(\n",
" train_ds_v,\n",
" validation_data=val_ds_v,\n",
" epochs=25,\n",
" steps_per_epoch=len(train_ds_v),\n",
" validation_steps=len(val_ds_v))\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAAHHCAYAAAC7soLdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABlsElEQVR4nO3dd3xT9f4/8NdJ2qQ7nXRA6WDP4mUJKEOqZfWyFESgjAIXBQTqQC5br6DiQAXl4mVc7o8lIogLhMoSEBC+ZcgQSqGMtlCge6RJPr8/0oSmA1poetr09fSRR5JzPuecdw6x55XPWZIQQoCIiIjIhinkLoCIiIjI2hh4iIiIyOYx8BAREZHNY+AhIiIim8fAQ0RERDaPgYeIiIhsHgMPERER2TwGHiIiIrJ5DDxERERk8xh4iKjSSJKE+fPnV3i6K1euQJIkrFmzptJrIiICGHiIbM6aNWsgSRIkScJvv/1WYrwQAoGBgZAkCf369ZOhQiKiqsfAQ2SjHBwcsH79+hLD9+3bh+vXr0OtVstQFRGRPBh4iGxUnz59sHnzZuh0Oovh69evR9u2beHn5ydTZbVHdna23CUQUSEGHiIbNWzYMNy5cwe7du0yD9Nqtfjmm2/w0ksvlTpNdnY2XnvtNQQGBkKtVqNJkyb48MMPIYSwaJefn4/p06fDx8cHrq6u+Pvf/47r16+XOs8bN25g7Nix8PX1hVqtRosWLbBq1apH+kx3797F66+/jlatWsHFxQVubm7o3bs3Tp48WaJtXl4e5s+fj8aNG8PBwQH+/v4YNGgQ4uPjzW0MBgM+/fRTtGrVCg4ODvDx8UGvXr3wxx9/AHjwsUXFj1eaP38+JEnC2bNn8dJLL8HDwwNPPfUUAODUqVMYPXo0QkND4eDgAD8/P4wdOxZ37twpdX1FR0cjICAAarUaISEhePnll6HVanH58mVIkoRPPvmkxHSHDh2CJEnYsGFDRVcrUa1gJ3cBRGQdwcHB6NSpEzZs2IDevXsDAH7++Wekp6fjxRdfxGeffWbRXgiBv//979izZw+io6PRpk0b7Ny5E2+88QZu3LhhsZEdN24c/t//+3946aWX0LlzZ/z666/o27dviRpSUlLw5JNPQpIkTJ48GT4+Pvj5558RHR2NjIwMTJs2rUKf6fLly9i2bRteeOEFhISEICUlBf/+97/RrVs3nD17FgEBAQAAvV6Pfv36ITY2Fi+++CKmTp2KzMxM7Nq1C2fOnEGDBg0AANHR0VizZg169+6NcePGQafT4cCBA/j999/Rrl27CtVm8sILL6BRo0ZYuHChOSju2rULly9fxpgxY+Dn54c///wTK1aswJ9//onff/8dkiQBAG7evIkOHTogLS0NEyZMQNOmTXHjxg188803yMnJQWhoKLp06YJ169Zh+vTpFstdt24dXF1d0b9//0eqm8jmCSKyKatXrxYAxLFjx8TSpUuFq6uryMnJEUII8cILL4gePXoIIYQICgoSffv2NU+3bds2AUD861//spjf888/LyRJEpcuXRJCCBEXFycAiFdeecWi3UsvvSQAiHnz5pmHRUdHC39/f5GammrR9sUXXxQajcZcV0JCggAgVq9e/cDPlpeXJ/R6vcWwhIQEoVarxdtvv20etmrVKgFAfPzxxyXmYTAYhBBC/PrrrwKAePXVV8ts86C6in/WefPmCQBi2LBhJdqaPmdRGzZsEADE/v37zcOioqKEQqEQx44dK7Omf//73wKAOHfunHmcVqsV3t7eYtSoUSWmIyIj7tIismFDhgxBbm4ufvjhB2RmZuKHH34oc3fWTz/9BKVSiVdffdVi+GuvvQYhBH7++WdzOwAl2hXvrRFCYMuWLYiMjIQQAqmpqeZHREQE0tPTceLEiQp9HrVaDYXC+GdLr9fjzp07cHFxQZMmTSzmtWXLFnh7e2PKlCkl5mHqTdmyZQskScK8efPKbPMoJk6cWGKYo6Oj+XVeXh5SU1Px5JNPAoC5boPBgG3btiEyMrLU3iVTTUOGDIGDgwPWrVtnHrdz506kpqZixIgRj1w3ka1j4CGyYT4+PggPD8f69evx7bffQq/X4/nnny+17dWrVxEQEABXV1eL4c2aNTOPNz0rFArzbiGTJk2aWLy/ffs20tLSsGLFCvj4+Fg8xowZAwC4detWhT6PwWDAJ598gkaNGkGtVsPb2xs+Pj44deoU0tPTze3i4+PRpEkT2NmVvdc+Pj4eAQEB8PT0rFANDxMSElJi2N27dzF16lT4+vrC0dERPj4+5namum/fvo2MjAy0bNnygfN3d3dHZGSkxRl469atQ926dfHMM89U4ichsi08hofIxr300ksYP348kpOT0bt3b7i7u1fJcg0GAwBgxIgRGDVqVKltWrduXaF5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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"plt.plot(vggr.history[\"accuracy\"])\n",
"plt.plot(vggr.history['val_accuracy'])\n",
"plt.plot(vggr.history['loss'])\n",
"plt.plot(vggr.history['val_loss'])\n",
"plt.title(\"Model accuracy\")\n",
"plt.ylabel(\"Value\")\n",
"plt.xlabel(\"Epoch\")\n",
"plt.legend([\"Accuracy\",\"Validation Accuracy\",\"Loss\",\"Validation Loss\"])\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"29/29 [==============================] - 112s 4s/step - loss: 0.0430 - accuracy: 0.9860\n"
]
},
{
"data": {
"text/plain": [
"[0.043045952916145325, 0.985991358757019]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.evaluate(test_ds_v)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"# ResNet101V2"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"from keras.layers import Input, Lambda, Dense, Flatten\n",
"from keras.models import Model\n",
"from keras.preprocessing import image\n",
"from keras.preprocessing.image import ImageDataGenerator\n",
"from keras.models import Sequential\n",
"import numpy as np\n",
"from glob import glob\n",
"import matplotlib.pyplot as plt\n",
"import ssl\n",
"ssl._create_default_https_context = ssl._create_unverified_context\n",
"from keras.applications import ResNet101V2\n",
"\n",
"# re-size all the images to this\n",
"IMAGE_SIZE = [224, 224]\n",
"\n",
"# add preprocessing layer to the front of resnet\n",
"resnet = ResNet101V2(input_shape=IMAGE_SIZE + [3], weights='imagenet', include_top=False)\n",
"\n",
"# don't train existing weights\n",
"for layer in resnet.layers:\n",
" layer.trainable = False\n",
" \n",
" # useful for getting number of classes\n",
"classes = 5\n",
" \n",
"\n",
"# our layers - you can add more if you want\n",
"x = Flatten()(resnet.output)\n",
"# x = Dense(1000, activation='relu')(x)\n",
"prediction = Dense(5, activation='softmax')(x)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Model: \"model_2\"\n",
"__________________________________________________________________________________________________\n",
" Layer (type) Output Shape Param # Connected to \n",
"==================================================================================================\n",
" input_3 (InputLayer) [(None, 224, 224, 3 0 [] \n",
" )] \n",
" \n",
" conv1_pad (ZeroPadding2D) (None, 230, 230, 3) 0 ['input_3[0][0]'] \n",
" \n",
" conv1_conv (Conv2D) (None, 112, 112, 64 9472 ['conv1_pad[0][0]'] \n",
" ) \n",
" \n",
" pool1_pad (ZeroPadding2D) (None, 114, 114, 64 0 ['conv1_conv[0][0]'] \n",
" ) \n",
" \n",
" pool1_pool (MaxPooling2D) (None, 56, 56, 64) 0 ['pool1_pad[0][0]'] \n",
" \n",
" conv2_block1_preact_bn (BatchN (None, 56, 56, 64) 256 ['pool1_pool[0][0]'] \n",
" ormalization) \n",
" \n",
" conv2_block1_preact_relu (Acti (None, 56, 56, 64) 0 ['conv2_block1_preact_bn[0][0]'] \n",
" vation) \n",
" \n",
" conv2_block1_1_conv (Conv2D) (None, 56, 56, 64) 4096 ['conv2_block1_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv2_block1_1_bn (BatchNormal (None, 56, 56, 64) 256 ['conv2_block1_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv2_block1_1_relu (Activatio (None, 56, 56, 64) 0 ['conv2_block1_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv2_block1_2_pad (ZeroPaddin (None, 58, 58, 64) 0 ['conv2_block1_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv2_block1_2_conv (Conv2D) (None, 56, 56, 64) 36864 ['conv2_block1_2_pad[0][0]'] \n",
" \n",
" conv2_block1_2_bn (BatchNormal (None, 56, 56, 64) 256 ['conv2_block1_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv2_block1_2_relu (Activatio (None, 56, 56, 64) 0 ['conv2_block1_2_bn[0][0]'] \n",
" n) \n",
" \n",
" conv2_block1_0_conv (Conv2D) (None, 56, 56, 256) 16640 ['conv2_block1_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv2_block1_3_conv (Conv2D) (None, 56, 56, 256) 16640 ['conv2_block1_2_relu[0][0]'] \n",
" \n",
" conv2_block1_out (Add) (None, 56, 56, 256) 0 ['conv2_block1_0_conv[0][0]', \n",
" 'conv2_block1_3_conv[0][0]'] \n",
" \n",
" conv2_block2_preact_bn (BatchN (None, 56, 56, 256) 1024 ['conv2_block1_out[0][0]'] \n",
" ormalization) \n",
" \n",
" conv2_block2_preact_relu (Acti (None, 56, 56, 256) 0 ['conv2_block2_preact_bn[0][0]'] \n",
" vation) \n",
" \n",
" conv2_block2_1_conv (Conv2D) (None, 56, 56, 64) 16384 ['conv2_block2_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv2_block2_1_bn (BatchNormal (None, 56, 56, 64) 256 ['conv2_block2_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv2_block2_1_relu (Activatio (None, 56, 56, 64) 0 ['conv2_block2_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv2_block2_2_pad (ZeroPaddin (None, 58, 58, 64) 0 ['conv2_block2_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv2_block2_2_conv (Conv2D) (None, 56, 56, 64) 36864 ['conv2_block2_2_pad[0][0]'] \n",
" \n",
" conv2_block2_2_bn (BatchNormal (None, 56, 56, 64) 256 ['conv2_block2_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv2_block2_2_relu (Activatio (None, 56, 56, 64) 0 ['conv2_block2_2_bn[0][0]'] \n",
" n) \n",
" \n",
" conv2_block2_3_conv (Conv2D) (None, 56, 56, 256) 16640 ['conv2_block2_2_relu[0][0]'] \n",
" \n",
" conv2_block2_out (Add) (None, 56, 56, 256) 0 ['conv2_block1_out[0][0]', \n",
" 'conv2_block2_3_conv[0][0]'] \n",
" \n",
" conv2_block3_preact_bn (BatchN (None, 56, 56, 256) 1024 ['conv2_block2_out[0][0]'] \n",
" ormalization) \n",
" \n",
" conv2_block3_preact_relu (Acti (None, 56, 56, 256) 0 ['conv2_block3_preact_bn[0][0]'] \n",
" vation) \n",
" \n",
" conv2_block3_1_conv (Conv2D) (None, 56, 56, 64) 16384 ['conv2_block3_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv2_block3_1_bn (BatchNormal (None, 56, 56, 64) 256 ['conv2_block3_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv2_block3_1_relu (Activatio (None, 56, 56, 64) 0 ['conv2_block3_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv2_block3_2_pad (ZeroPaddin (None, 58, 58, 64) 0 ['conv2_block3_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv2_block3_2_conv (Conv2D) (None, 28, 28, 64) 36864 ['conv2_block3_2_pad[0][0]'] \n",
" \n",
" conv2_block3_2_bn (BatchNormal (None, 28, 28, 64) 256 ['conv2_block3_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv2_block3_2_relu (Activatio (None, 28, 28, 64) 0 ['conv2_block3_2_bn[0][0]'] \n",
" n) \n",
" \n",
" max_pooling2d_3 (MaxPooling2D) (None, 28, 28, 256) 0 ['conv2_block2_out[0][0]'] \n",
" \n",
" conv2_block3_3_conv (Conv2D) (None, 28, 28, 256) 16640 ['conv2_block3_2_relu[0][0]'] \n",
" \n",
" conv2_block3_out (Add) (None, 28, 28, 256) 0 ['max_pooling2d_3[0][0]', \n",
" 'conv2_block3_3_conv[0][0]'] \n",
" \n",
" conv3_block1_preact_bn (BatchN (None, 28, 28, 256) 1024 ['conv2_block3_out[0][0]'] \n",
" ormalization) \n",
" \n",
" conv3_block1_preact_relu (Acti (None, 28, 28, 256) 0 ['conv3_block1_preact_bn[0][0]'] \n",
" vation) \n",
" \n",
" conv3_block1_1_conv (Conv2D) (None, 28, 28, 128) 32768 ['conv3_block1_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv3_block1_1_bn (BatchNormal (None, 28, 28, 128) 512 ['conv3_block1_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv3_block1_1_relu (Activatio (None, 28, 28, 128) 0 ['conv3_block1_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv3_block1_2_pad (ZeroPaddin (None, 30, 30, 128) 0 ['conv3_block1_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv3_block1_2_conv (Conv2D) (None, 28, 28, 128) 147456 ['conv3_block1_2_pad[0][0]'] \n",
" \n",
" conv3_block1_2_bn (BatchNormal (None, 28, 28, 128) 512 ['conv3_block1_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv3_block1_2_relu (Activatio (None, 28, 28, 128) 0 ['conv3_block1_2_bn[0][0]'] \n",
" n) \n",
" \n",
" conv3_block1_0_conv (Conv2D) (None, 28, 28, 512) 131584 ['conv3_block1_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv3_block1_3_conv (Conv2D) (None, 28, 28, 512) 66048 ['conv3_block1_2_relu[0][0]'] \n",
" \n",
" conv3_block1_out (Add) (None, 28, 28, 512) 0 ['conv3_block1_0_conv[0][0]', \n",
" 'conv3_block1_3_conv[0][0]'] \n",
" \n",
" conv3_block2_preact_bn (BatchN (None, 28, 28, 512) 2048 ['conv3_block1_out[0][0]'] \n",
" ormalization) \n",
" \n",
" conv3_block2_preact_relu (Acti (None, 28, 28, 512) 0 ['conv3_block2_preact_bn[0][0]'] \n",
" vation) \n",
" \n",
" conv3_block2_1_conv (Conv2D) (None, 28, 28, 128) 65536 ['conv3_block2_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv3_block2_1_bn (BatchNormal (None, 28, 28, 128) 512 ['conv3_block2_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv3_block2_1_relu (Activatio (None, 28, 28, 128) 0 ['conv3_block2_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv3_block2_2_pad (ZeroPaddin (None, 30, 30, 128) 0 ['conv3_block2_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv3_block2_2_conv (Conv2D) (None, 28, 28, 128) 147456 ['conv3_block2_2_pad[0][0]'] \n",
" \n",
" conv3_block2_2_bn (BatchNormal (None, 28, 28, 128) 512 ['conv3_block2_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv3_block2_2_relu (Activatio (None, 28, 28, 128) 0 ['conv3_block2_2_bn[0][0]'] \n",
" n) \n",
" \n",
" conv3_block2_3_conv (Conv2D) (None, 28, 28, 512) 66048 ['conv3_block2_2_relu[0][0]'] \n",
" \n",
" conv3_block2_out (Add) (None, 28, 28, 512) 0 ['conv3_block1_out[0][0]', \n",
" 'conv3_block2_3_conv[0][0]'] \n",
" \n",
" conv3_block3_preact_bn (BatchN (None, 28, 28, 512) 2048 ['conv3_block2_out[0][0]'] \n",
" ormalization) \n",
" \n",
" conv3_block3_preact_relu (Acti (None, 28, 28, 512) 0 ['conv3_block3_preact_bn[0][0]'] \n",
" vation) \n",
" \n",
" conv3_block3_1_conv (Conv2D) (None, 28, 28, 128) 65536 ['conv3_block3_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv3_block3_1_bn (BatchNormal (None, 28, 28, 128) 512 ['conv3_block3_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv3_block3_1_relu (Activatio (None, 28, 28, 128) 0 ['conv3_block3_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv3_block3_2_pad (ZeroPaddin (None, 30, 30, 128) 0 ['conv3_block3_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv3_block3_2_conv (Conv2D) (None, 28, 28, 128) 147456 ['conv3_block3_2_pad[0][0]'] \n",
" \n",
" conv3_block3_2_bn (BatchNormal (None, 28, 28, 128) 512 ['conv3_block3_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv3_block3_2_relu (Activatio (None, 28, 28, 128) 0 ['conv3_block3_2_bn[0][0]'] \n",
" n) \n",
" \n",
" conv3_block3_3_conv (Conv2D) (None, 28, 28, 512) 66048 ['conv3_block3_2_relu[0][0]'] \n",
" \n",
" conv3_block3_out (Add) (None, 28, 28, 512) 0 ['conv3_block2_out[0][0]', \n",
" 'conv3_block3_3_conv[0][0]'] \n",
" \n",
" conv3_block4_preact_bn (BatchN (None, 28, 28, 512) 2048 ['conv3_block3_out[0][0]'] \n",
" ormalization) \n",
" \n",
" conv3_block4_preact_relu (Acti (None, 28, 28, 512) 0 ['conv3_block4_preact_bn[0][0]'] \n",
" vation) \n",
" \n",
" conv3_block4_1_conv (Conv2D) (None, 28, 28, 128) 65536 ['conv3_block4_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv3_block4_1_bn (BatchNormal (None, 28, 28, 128) 512 ['conv3_block4_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv3_block4_1_relu (Activatio (None, 28, 28, 128) 0 ['conv3_block4_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv3_block4_2_pad (ZeroPaddin (None, 30, 30, 128) 0 ['conv3_block4_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv3_block4_2_conv (Conv2D) (None, 14, 14, 128) 147456 ['conv3_block4_2_pad[0][0]'] \n",
" \n",
" conv3_block4_2_bn (BatchNormal (None, 14, 14, 128) 512 ['conv3_block4_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv3_block4_2_relu (Activatio (None, 14, 14, 128) 0 ['conv3_block4_2_bn[0][0]'] \n",
" n) \n",
" \n",
" max_pooling2d_4 (MaxPooling2D) (None, 14, 14, 512) 0 ['conv3_block3_out[0][0]'] \n",
" \n",
" conv3_block4_3_conv (Conv2D) (None, 14, 14, 512) 66048 ['conv3_block4_2_relu[0][0]'] \n",
" \n",
" conv3_block4_out (Add) (None, 14, 14, 512) 0 ['max_pooling2d_4[0][0]', \n",
" 'conv3_block4_3_conv[0][0]'] \n",
" \n",
" conv4_block1_preact_bn (BatchN (None, 14, 14, 512) 2048 ['conv3_block4_out[0][0]'] \n",
" ormalization) \n",
" \n",
" conv4_block1_preact_relu (Acti (None, 14, 14, 512) 0 ['conv4_block1_preact_bn[0][0]'] \n",
" vation) \n",
" \n",
" conv4_block1_1_conv (Conv2D) (None, 14, 14, 256) 131072 ['conv4_block1_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv4_block1_1_bn (BatchNormal (None, 14, 14, 256) 1024 ['conv4_block1_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv4_block1_1_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block1_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv4_block1_2_pad (ZeroPaddin (None, 16, 16, 256) 0 ['conv4_block1_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv4_block1_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block1_2_pad[0][0]'] \n",
" \n",
" conv4_block1_2_bn (BatchNormal (None, 14, 14, 256) 1024 ['conv4_block1_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv4_block1_2_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block1_2_bn[0][0]'] \n",
" n) \n",
" \n",
" conv4_block1_0_conv (Conv2D) (None, 14, 14, 1024 525312 ['conv4_block1_preact_relu[0][0]'\n",
" ) ] \n",
" \n",
" conv4_block1_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block1_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block1_out (Add) (None, 14, 14, 1024 0 ['conv4_block1_0_conv[0][0]', \n",
" ) 'conv4_block1_3_conv[0][0]'] \n",
" \n",
" conv4_block2_preact_bn (BatchN (None, 14, 14, 1024 4096 ['conv4_block1_out[0][0]'] \n",
" ormalization) ) \n",
" \n",
" conv4_block2_preact_relu (Acti (None, 14, 14, 1024 0 ['conv4_block2_preact_bn[0][0]'] \n",
" vation) ) \n",
" \n",
" conv4_block2_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block2_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv4_block2_1_bn (BatchNormal (None, 14, 14, 256) 1024 ['conv4_block2_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv4_block2_1_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block2_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv4_block2_2_pad (ZeroPaddin (None, 16, 16, 256) 0 ['conv4_block2_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv4_block2_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block2_2_pad[0][0]'] \n",
" \n",
" conv4_block2_2_bn (BatchNormal (None, 14, 14, 256) 1024 ['conv4_block2_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv4_block2_2_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block2_2_bn[0][0]'] \n",
" n) \n",
" \n",
" conv4_block2_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block2_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block2_out (Add) (None, 14, 14, 1024 0 ['conv4_block1_out[0][0]', \n",
" ) 'conv4_block2_3_conv[0][0]'] \n",
" \n",
" conv4_block3_preact_bn (BatchN (None, 14, 14, 1024 4096 ['conv4_block2_out[0][0]'] \n",
" ormalization) ) \n",
" \n",
" conv4_block3_preact_relu (Acti (None, 14, 14, 1024 0 ['conv4_block3_preact_bn[0][0]'] \n",
" vation) ) \n",
" \n",
" conv4_block3_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block3_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv4_block3_1_bn (BatchNormal (None, 14, 14, 256) 1024 ['conv4_block3_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv4_block3_1_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block3_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv4_block3_2_pad (ZeroPaddin (None, 16, 16, 256) 0 ['conv4_block3_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv4_block3_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block3_2_pad[0][0]'] \n",
" \n",
" conv4_block3_2_bn (BatchNormal (None, 14, 14, 256) 1024 ['conv4_block3_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv4_block3_2_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block3_2_bn[0][0]'] \n",
" n) \n",
" \n",
" conv4_block3_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block3_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block3_out (Add) (None, 14, 14, 1024 0 ['conv4_block2_out[0][0]', \n",
" ) 'conv4_block3_3_conv[0][0]'] \n",
" \n",
" conv4_block4_preact_bn (BatchN (None, 14, 14, 1024 4096 ['conv4_block3_out[0][0]'] \n",
" ormalization) ) \n",
" \n",
" conv4_block4_preact_relu (Acti (None, 14, 14, 1024 0 ['conv4_block4_preact_bn[0][0]'] \n",
" vation) ) \n",
" \n",
" conv4_block4_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block4_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv4_block4_1_bn (BatchNormal (None, 14, 14, 256) 1024 ['conv4_block4_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv4_block4_1_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block4_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv4_block4_2_pad (ZeroPaddin (None, 16, 16, 256) 0 ['conv4_block4_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv4_block4_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block4_2_pad[0][0]'] \n",
" \n",
" conv4_block4_2_bn (BatchNormal (None, 14, 14, 256) 1024 ['conv4_block4_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv4_block4_2_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block4_2_bn[0][0]'] \n",
" n) \n",
" \n",
" conv4_block4_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block4_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block4_out (Add) (None, 14, 14, 1024 0 ['conv4_block3_out[0][0]', \n",
" ) 'conv4_block4_3_conv[0][0]'] \n",
" \n",
" conv4_block5_preact_bn (BatchN (None, 14, 14, 1024 4096 ['conv4_block4_out[0][0]'] \n",
" ormalization) ) \n",
" \n",
" conv4_block5_preact_relu (Acti (None, 14, 14, 1024 0 ['conv4_block5_preact_bn[0][0]'] \n",
" vation) ) \n",
" \n",
" conv4_block5_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block5_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv4_block5_1_bn (BatchNormal (None, 14, 14, 256) 1024 ['conv4_block5_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv4_block5_1_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block5_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv4_block5_2_pad (ZeroPaddin (None, 16, 16, 256) 0 ['conv4_block5_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv4_block5_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block5_2_pad[0][0]'] \n",
" \n",
" conv4_block5_2_bn (BatchNormal (None, 14, 14, 256) 1024 ['conv4_block5_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv4_block5_2_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block5_2_bn[0][0]'] \n",
" n) \n",
" \n",
" conv4_block5_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block5_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block5_out (Add) (None, 14, 14, 1024 0 ['conv4_block4_out[0][0]', \n",
" ) 'conv4_block5_3_conv[0][0]'] \n",
" \n",
" conv4_block6_preact_bn (BatchN (None, 14, 14, 1024 4096 ['conv4_block5_out[0][0]'] \n",
" ormalization) ) \n",
" \n",
" conv4_block6_preact_relu (Acti (None, 14, 14, 1024 0 ['conv4_block6_preact_bn[0][0]'] \n",
" vation) ) \n",
" \n",
" conv4_block6_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block6_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv4_block6_1_bn (BatchNormal (None, 14, 14, 256) 1024 ['conv4_block6_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv4_block6_1_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block6_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv4_block6_2_pad (ZeroPaddin (None, 16, 16, 256) 0 ['conv4_block6_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv4_block6_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block6_2_pad[0][0]'] \n",
" \n",
" conv4_block6_2_bn (BatchNormal (None, 14, 14, 256) 1024 ['conv4_block6_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv4_block6_2_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block6_2_bn[0][0]'] \n",
" n) \n",
" \n",
" conv4_block6_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block6_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block6_out (Add) (None, 14, 14, 1024 0 ['conv4_block5_out[0][0]', \n",
" ) 'conv4_block6_3_conv[0][0]'] \n",
" \n",
" conv4_block7_preact_bn (BatchN (None, 14, 14, 1024 4096 ['conv4_block6_out[0][0]'] \n",
" ormalization) ) \n",
" \n",
" conv4_block7_preact_relu (Acti (None, 14, 14, 1024 0 ['conv4_block7_preact_bn[0][0]'] \n",
" vation) ) \n",
" \n",
" conv4_block7_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block7_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv4_block7_1_bn (BatchNormal (None, 14, 14, 256) 1024 ['conv4_block7_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv4_block7_1_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block7_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv4_block7_2_pad (ZeroPaddin (None, 16, 16, 256) 0 ['conv4_block7_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv4_block7_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block7_2_pad[0][0]'] \n",
" \n",
" conv4_block7_2_bn (BatchNormal (None, 14, 14, 256) 1024 ['conv4_block7_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv4_block7_2_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block7_2_bn[0][0]'] \n",
" n) \n",
" \n",
" conv4_block7_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block7_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block7_out (Add) (None, 14, 14, 1024 0 ['conv4_block6_out[0][0]', \n",
" ) 'conv4_block7_3_conv[0][0]'] \n",
" \n",
" conv4_block8_preact_bn (BatchN (None, 14, 14, 1024 4096 ['conv4_block7_out[0][0]'] \n",
" ormalization) ) \n",
" \n",
" conv4_block8_preact_relu (Acti (None, 14, 14, 1024 0 ['conv4_block8_preact_bn[0][0]'] \n",
" vation) ) \n",
" \n",
" conv4_block8_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block8_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv4_block8_1_bn (BatchNormal (None, 14, 14, 256) 1024 ['conv4_block8_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv4_block8_1_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block8_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv4_block8_2_pad (ZeroPaddin (None, 16, 16, 256) 0 ['conv4_block8_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv4_block8_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block8_2_pad[0][0]'] \n",
" \n",
" conv4_block8_2_bn (BatchNormal (None, 14, 14, 256) 1024 ['conv4_block8_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv4_block8_2_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block8_2_bn[0][0]'] \n",
" n) \n",
" \n",
" conv4_block8_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block8_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block8_out (Add) (None, 14, 14, 1024 0 ['conv4_block7_out[0][0]', \n",
" ) 'conv4_block8_3_conv[0][0]'] \n",
" \n",
" conv4_block9_preact_bn (BatchN (None, 14, 14, 1024 4096 ['conv4_block8_out[0][0]'] \n",
" ormalization) ) \n",
" \n",
" conv4_block9_preact_relu (Acti (None, 14, 14, 1024 0 ['conv4_block9_preact_bn[0][0]'] \n",
" vation) ) \n",
" \n",
" conv4_block9_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block9_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv4_block9_1_bn (BatchNormal (None, 14, 14, 256) 1024 ['conv4_block9_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv4_block9_1_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block9_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv4_block9_2_pad (ZeroPaddin (None, 16, 16, 256) 0 ['conv4_block9_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv4_block9_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block9_2_pad[0][0]'] \n",
" \n",
" conv4_block9_2_bn (BatchNormal (None, 14, 14, 256) 1024 ['conv4_block9_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv4_block9_2_relu (Activatio (None, 14, 14, 256) 0 ['conv4_block9_2_bn[0][0]'] \n",
" n) \n",
" \n",
" conv4_block9_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block9_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block9_out (Add) (None, 14, 14, 1024 0 ['conv4_block8_out[0][0]', \n",
" ) 'conv4_block9_3_conv[0][0]'] \n",
" \n",
" conv4_block10_preact_bn (Batch (None, 14, 14, 1024 4096 ['conv4_block9_out[0][0]'] \n",
" Normalization) ) \n",
" \n",
" conv4_block10_preact_relu (Act (None, 14, 14, 1024 0 ['conv4_block10_preact_bn[0][0]']\n",
" ivation) ) \n",
" \n",
" conv4_block10_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block10_preact_relu[0][0]\n",
" '] \n",
" \n",
" conv4_block10_1_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block10_1_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block10_1_relu (Activati (None, 14, 14, 256) 0 ['conv4_block10_1_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block10_2_pad (ZeroPaddi (None, 16, 16, 256) 0 ['conv4_block10_1_relu[0][0]'] \n",
" ng2D) \n",
" \n",
" conv4_block10_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block10_2_pad[0][0]'] \n",
" \n",
" conv4_block10_2_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block10_2_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block10_2_relu (Activati (None, 14, 14, 256) 0 ['conv4_block10_2_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block10_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block10_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block10_out (Add) (None, 14, 14, 1024 0 ['conv4_block9_out[0][0]', \n",
" ) 'conv4_block10_3_conv[0][0]'] \n",
" \n",
" conv4_block11_preact_bn (Batch (None, 14, 14, 1024 4096 ['conv4_block10_out[0][0]'] \n",
" Normalization) ) \n",
" \n",
" conv4_block11_preact_relu (Act (None, 14, 14, 1024 0 ['conv4_block11_preact_bn[0][0]']\n",
" ivation) ) \n",
" \n",
" conv4_block11_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block11_preact_relu[0][0]\n",
" '] \n",
" \n",
" conv4_block11_1_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block11_1_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block11_1_relu (Activati (None, 14, 14, 256) 0 ['conv4_block11_1_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block11_2_pad (ZeroPaddi (None, 16, 16, 256) 0 ['conv4_block11_1_relu[0][0]'] \n",
" ng2D) \n",
" \n",
" conv4_block11_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block11_2_pad[0][0]'] \n",
" \n",
" conv4_block11_2_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block11_2_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block11_2_relu (Activati (None, 14, 14, 256) 0 ['conv4_block11_2_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block11_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block11_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block11_out (Add) (None, 14, 14, 1024 0 ['conv4_block10_out[0][0]', \n",
" ) 'conv4_block11_3_conv[0][0]'] \n",
" \n",
" conv4_block12_preact_bn (Batch (None, 14, 14, 1024 4096 ['conv4_block11_out[0][0]'] \n",
" Normalization) ) \n",
" \n",
" conv4_block12_preact_relu (Act (None, 14, 14, 1024 0 ['conv4_block12_preact_bn[0][0]']\n",
" ivation) ) \n",
" \n",
" conv4_block12_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block12_preact_relu[0][0]\n",
" '] \n",
" \n",
" conv4_block12_1_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block12_1_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block12_1_relu (Activati (None, 14, 14, 256) 0 ['conv4_block12_1_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block12_2_pad (ZeroPaddi (None, 16, 16, 256) 0 ['conv4_block12_1_relu[0][0]'] \n",
" ng2D) \n",
" \n",
" conv4_block12_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block12_2_pad[0][0]'] \n",
" \n",
" conv4_block12_2_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block12_2_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block12_2_relu (Activati (None, 14, 14, 256) 0 ['conv4_block12_2_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block12_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block12_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block12_out (Add) (None, 14, 14, 1024 0 ['conv4_block11_out[0][0]', \n",
" ) 'conv4_block12_3_conv[0][0]'] \n",
" \n",
" conv4_block13_preact_bn (Batch (None, 14, 14, 1024 4096 ['conv4_block12_out[0][0]'] \n",
" Normalization) ) \n",
" \n",
" conv4_block13_preact_relu (Act (None, 14, 14, 1024 0 ['conv4_block13_preact_bn[0][0]']\n",
" ivation) ) \n",
" \n",
" conv4_block13_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block13_preact_relu[0][0]\n",
" '] \n",
" \n",
" conv4_block13_1_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block13_1_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block13_1_relu (Activati (None, 14, 14, 256) 0 ['conv4_block13_1_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block13_2_pad (ZeroPaddi (None, 16, 16, 256) 0 ['conv4_block13_1_relu[0][0]'] \n",
" ng2D) \n",
" \n",
" conv4_block13_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block13_2_pad[0][0]'] \n",
" \n",
" conv4_block13_2_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block13_2_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block13_2_relu (Activati (None, 14, 14, 256) 0 ['conv4_block13_2_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block13_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block13_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block13_out (Add) (None, 14, 14, 1024 0 ['conv4_block12_out[0][0]', \n",
" ) 'conv4_block13_3_conv[0][0]'] \n",
" \n",
" conv4_block14_preact_bn (Batch (None, 14, 14, 1024 4096 ['conv4_block13_out[0][0]'] \n",
" Normalization) ) \n",
" \n",
" conv4_block14_preact_relu (Act (None, 14, 14, 1024 0 ['conv4_block14_preact_bn[0][0]']\n",
" ivation) ) \n",
" \n",
" conv4_block14_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block14_preact_relu[0][0]\n",
" '] \n",
" \n",
" conv4_block14_1_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block14_1_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block14_1_relu (Activati (None, 14, 14, 256) 0 ['conv4_block14_1_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block14_2_pad (ZeroPaddi (None, 16, 16, 256) 0 ['conv4_block14_1_relu[0][0]'] \n",
" ng2D) \n",
" \n",
" conv4_block14_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block14_2_pad[0][0]'] \n",
" \n",
" conv4_block14_2_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block14_2_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block14_2_relu (Activati (None, 14, 14, 256) 0 ['conv4_block14_2_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block14_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block14_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block14_out (Add) (None, 14, 14, 1024 0 ['conv4_block13_out[0][0]', \n",
" ) 'conv4_block14_3_conv[0][0]'] \n",
" \n",
" conv4_block15_preact_bn (Batch (None, 14, 14, 1024 4096 ['conv4_block14_out[0][0]'] \n",
" Normalization) ) \n",
" \n",
" conv4_block15_preact_relu (Act (None, 14, 14, 1024 0 ['conv4_block15_preact_bn[0][0]']\n",
" ivation) ) \n",
" \n",
" conv4_block15_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block15_preact_relu[0][0]\n",
" '] \n",
" \n",
" conv4_block15_1_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block15_1_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block15_1_relu (Activati (None, 14, 14, 256) 0 ['conv4_block15_1_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block15_2_pad (ZeroPaddi (None, 16, 16, 256) 0 ['conv4_block15_1_relu[0][0]'] \n",
" ng2D) \n",
" \n",
" conv4_block15_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block15_2_pad[0][0]'] \n",
" \n",
" conv4_block15_2_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block15_2_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block15_2_relu (Activati (None, 14, 14, 256) 0 ['conv4_block15_2_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block15_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block15_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block15_out (Add) (None, 14, 14, 1024 0 ['conv4_block14_out[0][0]', \n",
" ) 'conv4_block15_3_conv[0][0]'] \n",
" \n",
" conv4_block16_preact_bn (Batch (None, 14, 14, 1024 4096 ['conv4_block15_out[0][0]'] \n",
" Normalization) ) \n",
" \n",
" conv4_block16_preact_relu (Act (None, 14, 14, 1024 0 ['conv4_block16_preact_bn[0][0]']\n",
" ivation) ) \n",
" \n",
" conv4_block16_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block16_preact_relu[0][0]\n",
" '] \n",
" \n",
" conv4_block16_1_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block16_1_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block16_1_relu (Activati (None, 14, 14, 256) 0 ['conv4_block16_1_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block16_2_pad (ZeroPaddi (None, 16, 16, 256) 0 ['conv4_block16_1_relu[0][0]'] \n",
" ng2D) \n",
" \n",
" conv4_block16_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block16_2_pad[0][0]'] \n",
" \n",
" conv4_block16_2_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block16_2_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block16_2_relu (Activati (None, 14, 14, 256) 0 ['conv4_block16_2_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block16_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block16_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block16_out (Add) (None, 14, 14, 1024 0 ['conv4_block15_out[0][0]', \n",
" ) 'conv4_block16_3_conv[0][0]'] \n",
" \n",
" conv4_block17_preact_bn (Batch (None, 14, 14, 1024 4096 ['conv4_block16_out[0][0]'] \n",
" Normalization) ) \n",
" \n",
" conv4_block17_preact_relu (Act (None, 14, 14, 1024 0 ['conv4_block17_preact_bn[0][0]']\n",
" ivation) ) \n",
" \n",
" conv4_block17_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block17_preact_relu[0][0]\n",
" '] \n",
" \n",
" conv4_block17_1_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block17_1_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block17_1_relu (Activati (None, 14, 14, 256) 0 ['conv4_block17_1_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block17_2_pad (ZeroPaddi (None, 16, 16, 256) 0 ['conv4_block17_1_relu[0][0]'] \n",
" ng2D) \n",
" \n",
" conv4_block17_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block17_2_pad[0][0]'] \n",
" \n",
" conv4_block17_2_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block17_2_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block17_2_relu (Activati (None, 14, 14, 256) 0 ['conv4_block17_2_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block17_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block17_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block17_out (Add) (None, 14, 14, 1024 0 ['conv4_block16_out[0][0]', \n",
" ) 'conv4_block17_3_conv[0][0]'] \n",
" \n",
" conv4_block18_preact_bn (Batch (None, 14, 14, 1024 4096 ['conv4_block17_out[0][0]'] \n",
" Normalization) ) \n",
" \n",
" conv4_block18_preact_relu (Act (None, 14, 14, 1024 0 ['conv4_block18_preact_bn[0][0]']\n",
" ivation) ) \n",
" \n",
" conv4_block18_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block18_preact_relu[0][0]\n",
" '] \n",
" \n",
" conv4_block18_1_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block18_1_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block18_1_relu (Activati (None, 14, 14, 256) 0 ['conv4_block18_1_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block18_2_pad (ZeroPaddi (None, 16, 16, 256) 0 ['conv4_block18_1_relu[0][0]'] \n",
" ng2D) \n",
" \n",
" conv4_block18_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block18_2_pad[0][0]'] \n",
" \n",
" conv4_block18_2_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block18_2_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block18_2_relu (Activati (None, 14, 14, 256) 0 ['conv4_block18_2_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block18_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block18_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block18_out (Add) (None, 14, 14, 1024 0 ['conv4_block17_out[0][0]', \n",
" ) 'conv4_block18_3_conv[0][0]'] \n",
" \n",
" conv4_block19_preact_bn (Batch (None, 14, 14, 1024 4096 ['conv4_block18_out[0][0]'] \n",
" Normalization) ) \n",
" \n",
" conv4_block19_preact_relu (Act (None, 14, 14, 1024 0 ['conv4_block19_preact_bn[0][0]']\n",
" ivation) ) \n",
" \n",
" conv4_block19_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block19_preact_relu[0][0]\n",
" '] \n",
" \n",
" conv4_block19_1_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block19_1_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block19_1_relu (Activati (None, 14, 14, 256) 0 ['conv4_block19_1_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block19_2_pad (ZeroPaddi (None, 16, 16, 256) 0 ['conv4_block19_1_relu[0][0]'] \n",
" ng2D) \n",
" \n",
" conv4_block19_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block19_2_pad[0][0]'] \n",
" \n",
" conv4_block19_2_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block19_2_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block19_2_relu (Activati (None, 14, 14, 256) 0 ['conv4_block19_2_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block19_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block19_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block19_out (Add) (None, 14, 14, 1024 0 ['conv4_block18_out[0][0]', \n",
" ) 'conv4_block19_3_conv[0][0]'] \n",
" \n",
" conv4_block20_preact_bn (Batch (None, 14, 14, 1024 4096 ['conv4_block19_out[0][0]'] \n",
" Normalization) ) \n",
" \n",
" conv4_block20_preact_relu (Act (None, 14, 14, 1024 0 ['conv4_block20_preact_bn[0][0]']\n",
" ivation) ) \n",
" \n",
" conv4_block20_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block20_preact_relu[0][0]\n",
" '] \n",
" \n",
" conv4_block20_1_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block20_1_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block20_1_relu (Activati (None, 14, 14, 256) 0 ['conv4_block20_1_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block20_2_pad (ZeroPaddi (None, 16, 16, 256) 0 ['conv4_block20_1_relu[0][0]'] \n",
" ng2D) \n",
" \n",
" conv4_block20_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block20_2_pad[0][0]'] \n",
" \n",
" conv4_block20_2_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block20_2_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block20_2_relu (Activati (None, 14, 14, 256) 0 ['conv4_block20_2_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block20_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block20_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block20_out (Add) (None, 14, 14, 1024 0 ['conv4_block19_out[0][0]', \n",
" ) 'conv4_block20_3_conv[0][0]'] \n",
" \n",
" conv4_block21_preact_bn (Batch (None, 14, 14, 1024 4096 ['conv4_block20_out[0][0]'] \n",
" Normalization) ) \n",
" \n",
" conv4_block21_preact_relu (Act (None, 14, 14, 1024 0 ['conv4_block21_preact_bn[0][0]']\n",
" ivation) ) \n",
" \n",
" conv4_block21_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block21_preact_relu[0][0]\n",
" '] \n",
" \n",
" conv4_block21_1_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block21_1_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block21_1_relu (Activati (None, 14, 14, 256) 0 ['conv4_block21_1_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block21_2_pad (ZeroPaddi (None, 16, 16, 256) 0 ['conv4_block21_1_relu[0][0]'] \n",
" ng2D) \n",
" \n",
" conv4_block21_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block21_2_pad[0][0]'] \n",
" \n",
" conv4_block21_2_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block21_2_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block21_2_relu (Activati (None, 14, 14, 256) 0 ['conv4_block21_2_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block21_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block21_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block21_out (Add) (None, 14, 14, 1024 0 ['conv4_block20_out[0][0]', \n",
" ) 'conv4_block21_3_conv[0][0]'] \n",
" \n",
" conv4_block22_preact_bn (Batch (None, 14, 14, 1024 4096 ['conv4_block21_out[0][0]'] \n",
" Normalization) ) \n",
" \n",
" conv4_block22_preact_relu (Act (None, 14, 14, 1024 0 ['conv4_block22_preact_bn[0][0]']\n",
" ivation) ) \n",
" \n",
" conv4_block22_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block22_preact_relu[0][0]\n",
" '] \n",
" \n",
" conv4_block22_1_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block22_1_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block22_1_relu (Activati (None, 14, 14, 256) 0 ['conv4_block22_1_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block22_2_pad (ZeroPaddi (None, 16, 16, 256) 0 ['conv4_block22_1_relu[0][0]'] \n",
" ng2D) \n",
" \n",
" conv4_block22_2_conv (Conv2D) (None, 14, 14, 256) 589824 ['conv4_block22_2_pad[0][0]'] \n",
" \n",
" conv4_block22_2_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block22_2_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block22_2_relu (Activati (None, 14, 14, 256) 0 ['conv4_block22_2_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block22_3_conv (Conv2D) (None, 14, 14, 1024 263168 ['conv4_block22_2_relu[0][0]'] \n",
" ) \n",
" \n",
" conv4_block22_out (Add) (None, 14, 14, 1024 0 ['conv4_block21_out[0][0]', \n",
" ) 'conv4_block22_3_conv[0][0]'] \n",
" \n",
" conv4_block23_preact_bn (Batch (None, 14, 14, 1024 4096 ['conv4_block22_out[0][0]'] \n",
" Normalization) ) \n",
" \n",
" conv4_block23_preact_relu (Act (None, 14, 14, 1024 0 ['conv4_block23_preact_bn[0][0]']\n",
" ivation) ) \n",
" \n",
" conv4_block23_1_conv (Conv2D) (None, 14, 14, 256) 262144 ['conv4_block23_preact_relu[0][0]\n",
" '] \n",
" \n",
" conv4_block23_1_bn (BatchNorma (None, 14, 14, 256) 1024 ['conv4_block23_1_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block23_1_relu (Activati (None, 14, 14, 256) 0 ['conv4_block23_1_bn[0][0]'] \n",
" on) \n",
" \n",
" conv4_block23_2_pad (ZeroPaddi (None, 16, 16, 256) 0 ['conv4_block23_1_relu[0][0]'] \n",
" ng2D) \n",
" \n",
" conv4_block23_2_conv (Conv2D) (None, 7, 7, 256) 589824 ['conv4_block23_2_pad[0][0]'] \n",
" \n",
" conv4_block23_2_bn (BatchNorma (None, 7, 7, 256) 1024 ['conv4_block23_2_conv[0][0]'] \n",
" lization) \n",
" \n",
" conv4_block23_2_relu (Activati (None, 7, 7, 256) 0 ['conv4_block23_2_bn[0][0]'] \n",
" on) \n",
" \n",
" max_pooling2d_5 (MaxPooling2D) (None, 7, 7, 1024) 0 ['conv4_block22_out[0][0]'] \n",
" \n",
" conv4_block23_3_conv (Conv2D) (None, 7, 7, 1024) 263168 ['conv4_block23_2_relu[0][0]'] \n",
" \n",
" conv4_block23_out (Add) (None, 7, 7, 1024) 0 ['max_pooling2d_5[0][0]', \n",
" 'conv4_block23_3_conv[0][0]'] \n",
" \n",
" conv5_block1_preact_bn (BatchN (None, 7, 7, 1024) 4096 ['conv4_block23_out[0][0]'] \n",
" ormalization) \n",
" \n",
" conv5_block1_preact_relu (Acti (None, 7, 7, 1024) 0 ['conv5_block1_preact_bn[0][0]'] \n",
" vation) \n",
" \n",
" conv5_block1_1_conv (Conv2D) (None, 7, 7, 512) 524288 ['conv5_block1_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv5_block1_1_bn (BatchNormal (None, 7, 7, 512) 2048 ['conv5_block1_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv5_block1_1_relu (Activatio (None, 7, 7, 512) 0 ['conv5_block1_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv5_block1_2_pad (ZeroPaddin (None, 9, 9, 512) 0 ['conv5_block1_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv5_block1_2_conv (Conv2D) (None, 7, 7, 512) 2359296 ['conv5_block1_2_pad[0][0]'] \n",
" \n",
" conv5_block1_2_bn (BatchNormal (None, 7, 7, 512) 2048 ['conv5_block1_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv5_block1_2_relu (Activatio (None, 7, 7, 512) 0 ['conv5_block1_2_bn[0][0]'] \n",
" n) \n",
" \n",
" conv5_block1_0_conv (Conv2D) (None, 7, 7, 2048) 2099200 ['conv5_block1_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv5_block1_3_conv (Conv2D) (None, 7, 7, 2048) 1050624 ['conv5_block1_2_relu[0][0]'] \n",
" \n",
" conv5_block1_out (Add) (None, 7, 7, 2048) 0 ['conv5_block1_0_conv[0][0]', \n",
" 'conv5_block1_3_conv[0][0]'] \n",
" \n",
" conv5_block2_preact_bn (BatchN (None, 7, 7, 2048) 8192 ['conv5_block1_out[0][0]'] \n",
" ormalization) \n",
" \n",
" conv5_block2_preact_relu (Acti (None, 7, 7, 2048) 0 ['conv5_block2_preact_bn[0][0]'] \n",
" vation) \n",
" \n",
" conv5_block2_1_conv (Conv2D) (None, 7, 7, 512) 1048576 ['conv5_block2_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv5_block2_1_bn (BatchNormal (None, 7, 7, 512) 2048 ['conv5_block2_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv5_block2_1_relu (Activatio (None, 7, 7, 512) 0 ['conv5_block2_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv5_block2_2_pad (ZeroPaddin (None, 9, 9, 512) 0 ['conv5_block2_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv5_block2_2_conv (Conv2D) (None, 7, 7, 512) 2359296 ['conv5_block2_2_pad[0][0]'] \n",
" \n",
" conv5_block2_2_bn (BatchNormal (None, 7, 7, 512) 2048 ['conv5_block2_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv5_block2_2_relu (Activatio (None, 7, 7, 512) 0 ['conv5_block2_2_bn[0][0]'] \n",
" n) \n",
" \n",
" conv5_block2_3_conv (Conv2D) (None, 7, 7, 2048) 1050624 ['conv5_block2_2_relu[0][0]'] \n",
" \n",
" conv5_block2_out (Add) (None, 7, 7, 2048) 0 ['conv5_block1_out[0][0]', \n",
" 'conv5_block2_3_conv[0][0]'] \n",
" \n",
" conv5_block3_preact_bn (BatchN (None, 7, 7, 2048) 8192 ['conv5_block2_out[0][0]'] \n",
" ormalization) \n",
" \n",
" conv5_block3_preact_relu (Acti (None, 7, 7, 2048) 0 ['conv5_block3_preact_bn[0][0]'] \n",
" vation) \n",
" \n",
" conv5_block3_1_conv (Conv2D) (None, 7, 7, 512) 1048576 ['conv5_block3_preact_relu[0][0]'\n",
" ] \n",
" \n",
" conv5_block3_1_bn (BatchNormal (None, 7, 7, 512) 2048 ['conv5_block3_1_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv5_block3_1_relu (Activatio (None, 7, 7, 512) 0 ['conv5_block3_1_bn[0][0]'] \n",
" n) \n",
" \n",
" conv5_block3_2_pad (ZeroPaddin (None, 9, 9, 512) 0 ['conv5_block3_1_relu[0][0]'] \n",
" g2D) \n",
" \n",
" conv5_block3_2_conv (Conv2D) (None, 7, 7, 512) 2359296 ['conv5_block3_2_pad[0][0]'] \n",
" \n",
" conv5_block3_2_bn (BatchNormal (None, 7, 7, 512) 2048 ['conv5_block3_2_conv[0][0]'] \n",
" ization) \n",
" \n",
" conv5_block3_2_relu (Activatio (None, 7, 7, 512) 0 ['conv5_block3_2_bn[0][0]'] \n",
" n) \n",
" \n",
" conv5_block3_3_conv (Conv2D) (None, 7, 7, 2048) 1050624 ['conv5_block3_2_relu[0][0]'] \n",
" \n",
" conv5_block3_out (Add) (None, 7, 7, 2048) 0 ['conv5_block2_out[0][0]', \n",
" 'conv5_block3_3_conv[0][0]'] \n",
" \n",
" post_bn (BatchNormalization) (None, 7, 7, 2048) 8192 ['conv5_block3_out[0][0]'] \n",
" \n",
" post_relu (Activation) (None, 7, 7, 2048) 0 ['post_bn[0][0]'] \n",
" \n",
" flatten_3 (Flatten) (None, 100352) 0 ['post_relu[0][0]'] \n",
" \n",
" dense_5 (Dense) (None, 5) 501765 ['flatten_3[0][0]'] \n",
" \n",
"==================================================================================================\n",
"Total params: 43,128,325\n",
"Trainable params: 501,765\n",
"Non-trainable params: 42,626,560\n",
"__________________________________________________________________________________________________\n"
]
}
],
"source": [
"# create a model object\n",
"model = Model(inputs=resnet.input, outputs=prediction)\n",
"\n",
"# view the structure of the model\n",
"model.summary()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/25\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/var/folders/3r/c8tg1h051m18qhsdccdysrt40000gn/T/ipykernel_14470/2541214992.py:10: UserWarning: `Model.fit_generator` is deprecated and will be removed in a future version. Please use `Model.fit`, which supports generators.\n",
" r = model.fit_generator(\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"93/93 [==============================] - 197s 2s/step - loss: 1.1542 - accuracy: 0.8938 - val_loss: 0.2841 - val_accuracy: 0.9742\n",
"Epoch 2/25\n",
"93/93 [==============================] - 202s 2s/step - loss: 0.1366 - accuracy: 0.9819 - val_loss: 0.5596 - val_accuracy: 0.9524\n",
"Epoch 3/25\n",
"93/93 [==============================] - 208s 2s/step - loss: 0.0817 - accuracy: 0.9913 - val_loss: 0.7281 - val_accuracy: 0.9416\n",
"Epoch 4/25\n",
"93/93 [==============================] - 213s 2s/step - loss: 0.0254 - accuracy: 0.9953 - val_loss: 0.2856 - val_accuracy: 0.9769\n",
"Epoch 5/25\n",
"93/93 [==============================] - 216s 2s/step - loss: 0.0513 - accuracy: 0.9916 - val_loss: 0.7943 - val_accuracy: 0.9511\n",
"Epoch 6/25\n",
"93/93 [==============================] - 219s 2s/step - loss: 0.0716 - accuracy: 0.9919 - val_loss: 0.4567 - val_accuracy: 0.9715\n",
"Epoch 7/25\n",
"93/93 [==============================] - 221s 2s/step - loss: 0.0669 - accuracy: 0.9916 - val_loss: 0.5951 - val_accuracy: 0.9688\n",
"Epoch 8/25\n",
"93/93 [==============================] - 222s 2s/step - loss: 0.0294 - accuracy: 0.9966 - val_loss: 0.3915 - val_accuracy: 0.9769\n",
"Epoch 9/25\n",
"93/93 [==============================] - 223s 2s/step - loss: 0.0047 - accuracy: 0.9990 - val_loss: 0.5019 - val_accuracy: 0.9688\n",
"Epoch 10/25\n",
"93/93 [==============================] - 224s 2s/step - loss: 0.0159 - accuracy: 0.9976 - val_loss: 0.5905 - val_accuracy: 0.9715\n",
"Epoch 11/25\n",
"93/93 [==============================] - 225s 2s/step - loss: 0.0134 - accuracy: 0.9976 - val_loss: 0.3234 - val_accuracy: 0.9810\n",
"Epoch 12/25\n",
"93/93 [==============================] - 227s 2s/step - loss: 0.1011 - accuracy: 0.9899 - val_loss: 0.5499 - val_accuracy: 0.9728\n",
"Epoch 13/25\n",
"93/93 [==============================] - 225s 2s/step - loss: 0.0076 - accuracy: 0.9983 - val_loss: 0.4216 - val_accuracy: 0.9728\n",
"Epoch 14/25\n",
"93/93 [==============================] - 226s 2s/step - loss: 0.0643 - accuracy: 0.9926 - val_loss: 0.8745 - val_accuracy: 0.9511\n",
"Epoch 15/25\n",
"93/93 [==============================] - 226s 2s/step - loss: 0.0199 - accuracy: 0.9966 - val_loss: 0.4947 - val_accuracy: 0.9715\n",
"Epoch 16/25\n",
"93/93 [==============================] - 226s 2s/step - loss: 5.7203e-04 - accuracy: 0.9997 - val_loss: 0.4923 - val_accuracy: 0.9810\n",
"Epoch 17/25\n",
"93/93 [==============================] - 227s 2s/step - loss: 0.0131 - accuracy: 0.9970 - val_loss: 0.6881 - val_accuracy: 0.9647\n",
"Epoch 18/25\n",
"93/93 [==============================] - 225s 2s/step - loss: 0.0345 - accuracy: 0.9960 - val_loss: 0.4938 - val_accuracy: 0.9823\n",
"Epoch 19/25\n",
"93/93 [==============================] - 228s 2s/step - loss: 0.0126 - accuracy: 0.9987 - val_loss: 0.5642 - val_accuracy: 0.9688\n",
"Epoch 20/25\n",
"93/93 [==============================] - 226s 2s/step - loss: 0.0056 - accuracy: 0.9997 - val_loss: 0.4294 - val_accuracy: 0.9783\n",
"Epoch 21/25\n",
"93/93 [==============================] - 225s 2s/step - loss: 2.7678e-05 - accuracy: 1.0000 - val_loss: 0.4342 - val_accuracy: 0.9783\n",
"Epoch 22/25\n",
"93/93 [==============================] - 226s 2s/step - loss: 5.2474e-07 - accuracy: 1.0000 - val_loss: 0.4337 - val_accuracy: 0.9783\n",
"Epoch 23/25\n",
"93/93 [==============================] - 227s 2s/step - loss: 4.2286e-07 - accuracy: 1.0000 - val_loss: 0.4334 - val_accuracy: 0.9783\n",
"Epoch 24/25\n",
"93/93 [==============================] - 227s 2s/step - loss: 3.5546e-07 - accuracy: 1.0000 - val_loss: 0.4332 - val_accuracy: 0.9783\n",
"Epoch 25/25\n",
"93/93 [==============================] - 227s 2s/step - loss: 3.0831e-07 - accuracy: 1.0000 - val_loss: 0.4024 - val_accuracy: 0.9796\n"
]
}
],
"source": [
"# tell the model what cost and optimization method to use\n",
"model.compile(\n",
" loss='sparse_categorical_crossentropy',\n",
" optimizer='adam',\n",
" metrics=['accuracy']\n",
")\n",
"\n",
"#train_ds_vgg_sw, test_ds_vgg_sw, validation_ds_vgg_sw\n",
"# fit the model\n",
"r = model.fit_generator(\n",
" train_ds_v,\n",
" validation_data=val_ds_v,\n",
" epochs=25,\n",
" steps_per_epoch=len(train_ds_v),\n",
" validation_steps=len(val_ds_v)\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGfCAYAAAB1KinVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABwTklEQVR4nO3deXxTVfo/8E+SNum+0R1aWva9IAVEwGWoIiruisvI4vL96YCjMm44CjrOyIwr6qDOuDsjgjiCGy6IooBsgmUtWym0QFeg+5I2ub8/Tm+Sli5ZbnJv2s/79eort8lNckhL8+Q5z3mOTpIkCUREREQaold7AEREREStMUAhIiIizWGAQkRERJrDAIWIiIg0hwEKERERaQ4DFCIiItIcBihERESkOQxQiIiISHMYoBAREZHmMEAhIiIizQlw9Q4///wznnvuOWzfvh2FhYVYuXIlrr766nbP//TTT/H6668jOzsbDQ0NGDp0KJ588klMmTLF6ee0Wq04efIkwsPDodPpXB0yERERqUCSJFRVVSE5ORl6vWs5EZcDlJqaGmRkZOD222/Htdde2+n5P//8My6++GI888wziIqKwrvvvotp06Zhy5YtGDVqlFPPefLkSaSkpLg6VCIiItKAgoIC9OrVy6X76DzZLFCn03WaQWnL0KFDMX36dCxYsMCp8ysqKhAVFYWCggJERES4MVIiIiLytcrKSqSkpKC8vByRkZEu3dflDIqnrFYrqqqqEBMT0+45DQ0NaGhosH1fVVUFAIiIiGCAQkRE5GfcKc/weZHs888/j+rqatx4443tnrNo0SJERkbavji9Q0RE1L34NEBZunQpnnrqKXz88ceIj49v97z58+ejoqLC9lVQUODDURIREZHafDbFs2zZMtx5551YsWIFsrKyOjzXZDLBZDL5aGRERESkNT4JUD766CPcfvvtWLZsGS6//HJfPCUREfkJSZLQ1NQEi8Wi9lDIRQaDAQEBAV5pAeJygFJdXY3Dhw/bvs/Ly0N2djZiYmKQmpqK+fPn48SJE/jggw8AiGmdmTNn4uWXX8a4ceNQVFQEAAgODna5opeIiLoWs9mMwsJC1NbWqj0UclNISAiSkpJgNBoVfVyXlxmvW7cOF1100VnXz5w5E++99x5mzZqFo0ePYt26dQCACy+8ED/99FO75zujsrISkZGRqKio4CoeIqIuwmq14tChQzAYDIiLi4PRaGQzTj8iSRLMZjNKS0thsVjQv3//s5qxefL+7VEfFF9hgEJE1PXU19cjLy8PvXv3RkhIiNrDITfV1tbi2LFjSE9PR1BQUIvbPHn/5l48RESkKldboJO2eOvnx98KIiIi0hwGKERERKQ5DFCIiIhUlpaWhsWLF6v+GFri8714iIiI/N2FF16IkSNHKhYQbNu2DaGhoYo8VlfRrQOUdzbk4UhZNWaOT0P/hHC1h0NERF2IJEmwWCwICOj8rTYuLs4HI/Iv3XqK58tdJ/Hfzfk4Ulaj9lCIiAjiTb3W3KTKl7NdN2bNmoWffvoJL7/8MnQ6HXQ6na3/l06nw9dff43Ro0fDZDJhw4YNyM3NxVVXXYWEhASEhYVhzJgx+P7771s8ZuvpGZ1Oh7feegvXXHMNQkJC0L9/f3z++ecuvZb5+fm46qqrEBYWhoiICNx4440oLi623b5z505cdNFFCA8PR0REBEaPHo1ff/0VAHDs2DFMmzYN0dHRCA0NxdChQ7F69WqXnt9T3TqDEhEcCACorGtUeSRERAQAdY0WDFnwrSrPve8vUxBi7Pxt8eWXX8bBgwcxbNgw/OUvfwEgMiBHjx4FADz66KN4/vnn0adPH0RHR6OgoACXXXYZ/va3v8FkMuGDDz7AtGnTcODAAaSmprb7PE899RSeffZZPPfcc3j11Vdx66234tixY4iJiel0jFar1Rac/PTTT2hqasKcOXMwffp0WyPVW2+9FaNGjcLrr78Og8GA7OxsBAaK98U5c+bAbDbj559/RmhoKPbt24ewsLBOn1dJ3TtACWoOUOqbVB4JERH5i8jISBiNRoSEhCAxMfGs2//yl7/g4osvtn0fExODjIwM2/dPP/00Vq5cic8//xxz585t93lmzZqFm2++GQDwzDPP4JVXXsHWrVtx6aWXdjrGtWvXYvfu3cjLy0NKSgoA4IMPPsDQoUOxbds2jBkzBvn5+XjooYcwaNAgAED//v1t98/Pz8d1112H4cOHAwD69OnT6XMqrXsHKMHin1/BDAoRkSYEBxqw7y9TVHtuJWRmZrb4vrq6Gk8++SS++uorFBYWoqmpCXV1dcjPz+/wcUaMGGE7Dg0NRUREBEpKSpwaQ05ODlJSUmzBCQAMGTIEUVFRyMnJwZgxYzBv3jzceeed+M9//oOsrCzccMMN6Nu3LwDgj3/8I+655x589913yMrKwnXXXddiPL7QrWtQbBkUBihERJqg0+kQYgxQ5UupfYBar8Z58MEHsXLlSjzzzDNYv349srOzMXz4cJjN5g4fR55ucXxtrFarImMEgCeffBJ79+7F5Zdfjh9++AFDhgzBypUrAQB33nknjhw5gttuuw27d+9GZmYmXn31VcWe2xndOkCJlGtQ6hmgEBGR84xGIywWi1Pnbty4EbNmzcI111yD4cOHIzEx0Vav4i2DBw9GQUEBCgoKbNft27cP5eXlGDJkiO26AQMG4IEHHsB3332Ha6+9Fu+++67ttpSUFNx999349NNP8ac//QlvvvmmV8fcWrcOUOxFsqxBISIi56WlpWHLli04evQoysrKOsxs9O/fH59++imys7Oxc+dO3HLLLYpmQtqSlZWF4cOH49Zbb8WOHTuwdetWzJgxAxdccAEyMzNRV1eHuXPnYt26dTh27Bg2btyIbdu2YfDgwQCA+++/H99++y3y8vKwY8cO/Pjjj7bbfKV7Byic4iEiIjc8+OCDMBgMGDJkCOLi4jqsJ3nxxRcRHR2N8847D9OmTcOUKVNwzjnneHV8Op0On332GaKjo3H++ecjKysLffr0wfLlywEABoMBp06dwowZMzBgwADceOONmDp1Kp566ikAgMViwZw5czB48GBceumlGDBgAF577TWvjvmsf4Pk7MJvFXmyXXNH1h8qxW1vb8WgxHB8c//5ij0uERF1rr6+Hnl5eUhPT0dQUJDawyE3dfRz9OT9u1tnUCLZB4WIiEiTunWAwj4oRERE2tS9A5TmDEp1QxOaLN4tWCIiIiLndesAJTzI3qeuilkUIiIizejWAUqgQY9Qo+gcyF4oRERE2tGtAxSAvVCIiIi0iAFKELvJEhERaQ0DFG4YSEREpDndPkBhLxQiIlJDWloaFi9e3O7ts2bNwtVXX+2z8WhNtw9QOMVDRESkPQxQWCRLRESkOQxQgliDQkREzvv3v/+N5OTks3Ykvuqqq3D77bcDAHJzc3HVVVchISEBYWFhGDNmDL7//nuPnrehoQF//OMfER8fj6CgIEycOBHbtm2z3X7mzBnceuutiIuLQ3BwMPr37493330XAGA2mzF37lwkJSUhKCgIvXv3xqJFizwaj7cFdH5K12bLoHCKh4hIfZIENNaq89yBIYBO1+lpN9xwA+699178+OOPmDx5MgDg9OnT+Oabb7B69WoAQHV1NS677DL87W9/g8lkwgcffIBp06bhwIEDSE1NdWt4Dz/8MP73v//h/fffR+/evfHss89iypQpOHz4MGJiYvDEE09g3759+PrrrxEbG4vDhw+jrq4OAPDKK6/g888/x8cff4zU1FQUFBSgoKDArXH4CgMUFskSEWlHYy3wTLI6z/3YScAY2ulp0dHRmDp1KpYuXWoLUD755BPExsbioosuAgBkZGQgIyPDdp+nn34aK1euxOeff465c+e6PLSamhq8/vrreO+99zB16lQAwJtvvok1a9bg7bffxkMPPYT8/HyMGjUKmZmZAEQRriw/Px/9+/fHxIkTodPp0Lt3b5fH4Guc4uGGgURE5KJbb70V//vf/9DQ0AAA+PDDD3HTTTdBrxdvq9XV1XjwwQcxePBgREVFISwsDDk5OcjPz3fr+XJzc9HY2IgJEybYrgsMDMTYsWORk5MDALjnnnuwbNkyjBw5Eg8//DB++eUX27mzZs1CdnY2Bg4ciD/+8Y/47rvv3P2n+wwzKOyDQkSkHYEhIpOh1nM7adq0aZAkCV999RXGjBmD9evX46WXXrLd/uCDD2LNmjV4/vnn0a9fPwQHB+P666+H2Wz2xsgBAFOnTsWxY8ewevVqrFmzBpMnT8acOXPw/PPP45xzzkFeXh6+/vprfP/997jxxhuRlZWFTz75xGvj8RQDlCBO8RARaYZO59Q0i9qCgoJw7bXX4sMPP8Thw4cxcOBAnHPOObbbN27ciFmzZuGaa64BIDIqR48edfv5+vbtC6PRiI0bN9qmZxobG7Ft2zbcf//9tvPi4uIwc+ZMzJw5E5MmTcJDDz2E559/HgAQERGB6dOnY/r06bj++utx6aWX4vTp04iJiXF7XN7U7QOUSBbJEhGRG2699VZcccUV2Lt3L37/+9+3uK1///749NNPMW3aNOh0OjzxxBNnrfpxRWhoKO655x489NBDiImJQWpqKp599lnU1tbijjvuAAAsWLAAo0ePxtChQ9HQ0IAvv/wSgwcPBgC8+OKLSEpKwqhRo6DX67FixQokJiYiKirK7TF5W7cPUOQi2fpGKxqaLDAFGFQeERER+YPf/e53iImJwYEDB3DLLbe0uO3FF1/E7bffjvPOOw+xsbF45JFHUFlZ6dHz/f3vf4fVasVtt92GqqoqZGZm4ttvv0V0dDQAwGg0Yv78+Th69CiCg4MxadIkLFu2DAAQHh6OZ599FocOHYLBYMCYMWOwevVqW82MFukkSZLUHkRnKisrERkZiYqKCkRERCj62FarhL5/Xg1JArb9OQtx4SZFH5+IiNpWX1+PvLw8pKenIygoSO3hkJs6+jl68v6t3dDJR/R6HcJMIpHEaR4iIiJt6PYBCsANA4mIiLSGAQrYC4WIiEhrGKDA3guFGRQiIiJtYIACewaFzdqIiIi0gQEK2AuFiEhNfrCYlDrgrZ8fAxQ4bhjIGhQiIl8JDBR/e2trVdq9mBQh//zkn6dSun2jNsCxSJYZFCIiXzEYDIiKikJJSQkAICQkBDqdTuVRkbMkSUJtbS1KSkoQFRUFg0HZRqcMUMANA4mI1JKYmAgAtiCF/E9UVJTt56gkBijghoFERGrR6XRISkpCfHw8Ghv5N9jfBAYGKp45kTFAgWORLGtQiIjUYDAYvPZGR/6JRbKwF8lWMYNCRESkCS4HKD///DOmTZuG5ORk6HQ6rFq1qtP7rFu3Dueccw5MJhP69euH9957z42heg9rUIiIiLTF5QClpqYGGRkZWLJkiVPn5+Xl4fLLL8dFF12E7Oxs3H///bjzzjvx7bffujxYb3FcxcP1+EREROpzuQZl6tSpmDp1qtPnv/HGG0hPT8cLL7wAABg8eDA2bNiAl156CVOmTHH16b1CrkFptEiob7Qi2Mh5UCIiIjV5vQZl06ZNyMrKanHdlClTsGnTpnbv09DQgMrKyhZf3hRiNMCgF2vv2QuFiIhIfV4PUIqKipCQkNDiuoSEBFRWVqKurq7N+yxatAiRkZG2r5SUFK+OUafTISKIdShERERaoclVPPPnz0dFRYXtq6CgwOvPaW93zwCFiIhIbV7vg5KYmIji4uIW1xUXFyMiIgLBwcFt3sdkMsFkMnl7aC1ww0AiIiLt8HoGZfz48Vi7dm2L69asWYPx48d7+6ldYu8my2ZtREREanM5QKmurkZ2djays7MBiGXE2dnZyM/PByCmZ2bMmGE7/+6778aRI0fw8MMPY//+/Xjttdfw8ccf44EHHlDmX6AQuRcKMyhERETqczlA+fXXXzFq1CiMGjUKADBv3jyMGjUKCxYsAAAUFhbaghUASE9Px1dffYU1a9YgIyMDL7zwAt566y3NLDGWyRmUiloGKERERGpzuQblwgsv7LCZWVtdYi+88EL89ttvrj6VT7EGhYiISDs0uYpHDfZVPKxBISIiUhsDlGZyHxRmUIiIiNTHAKWZnEFhozYiIiL1MUBp5rhhIBEREamLAUoz1qAQERFpBwOUZpHsg0JERKQZDFCa2TvJNsJqbX8ZNREREXkfA5Rm8hSPVQJqzJzmISIiUhMDlGZBgQYYA8TLUVnPAIWIiEhNDFAcOE7zEBERkXoYoDiQNwxkLxQiIiJ1MUBxwAwKERGRNjBAcWDfMJA1KERERGpigOLA3qyNGRQiIiI1MUBxwA0DiYiItIEBigNuGEhERKQNDFAcRHI/HiIiIk1ggOKAOxoTERFpAwMUB3IfFBbJEhERqYsBigM5g8IaFCIiInUxQHEgF8lWsQ8KERGRqhigOIhkHxQiIiJNYIDiQO6DUtXQBItVUnk0RERE3RcDFAfhzTUoAFDFlTxERESqYYDiwBigR3CgAQB7oRAREamJAUor9g0DmUEhIiJSCwOUVtgLhYiISH0MUFphLxQiIiL1MUBpJYJTPET+y1yj9giISCEMUFrhhoFEfmrXCuCZnsBvH6o9EiJSAAOUVuReKMygEPmZ3B8ASMCh79QeCREpgAFKKxHsJkvkn07nisvS/eqOg4gUwQClFRbJEvmp00fE5anDQJNZ3bEQkccYoLRi74PCGhQiv1FfCdSUimNrkwhSiMivMUBphX1QiPyQnD2RlexTZxxEpBgGKK3IUzwskiXyI3L9iYx1KER+jwFKK3KRLGtQiPyInEHRib20UJKj3liISBEMUFqxZVDYB4XIf5xqDlDSJohLBihEfo8BSitykWxdowXmJqvKoyEip8gZlEFX2L9vrFNvPETkMQYorYQ1N2oDgCrWoRD5B7kGJWUsENIDgASUHVR1SETkGQYorRj0OoSbRJDCOhQiP+C4xDimLxA3WBxzmofIrzFAaUMEe6EQ+Q95eic0DgiKAOIZoBB1BQxQ2sB290R+RA5QYvqIy/hB4pIBCpFfY4DSBm4YSORH5PqTmL7iMn6IuCxlgELkzxigtIG9UIj8yOk8cSlnUOKaMyjl+UBDtTpjIiKPMUBpA3uhEPmRU80ZlB7NAUpIDBCWKI5LD6gzJiLyGAOUNtg3DGQGhUjzWtegAA51KNyTh8hfuRWgLFmyBGlpaQgKCsK4ceOwdevWDs9fvHgxBg4ciODgYKSkpOCBBx5AfX29WwP2BW4YSOQn6iuBmhJx3CJAketQuCcPkb9yOUBZvnw55s2bh4ULF2LHjh3IyMjAlClTUFJS0ub5S5cuxaOPPoqFCxciJycHb7/9NpYvX47HHnvM48F7i33DQE7xEGnameb6k5BYICjSfn0cMyhE/s7lAOXFF1/EXXfdhdmzZ2PIkCF44403EBISgnfeeafN83/55RdMmDABt9xyC9LS0nDJJZfg5ptv7jTroiYWyRL5CVv9Sd+W18sZlBJmUIj8lUsBitlsxvbt25GVlWV/AL0eWVlZ2LRpU5v3Oe+887B9+3ZbQHLkyBGsXr0al112mQfD9q5I9kEh8g9t1Z8AQNxAcVl1Eqg749sxEZEiAjo/xa6srAwWiwUJCQktrk9ISMD+/W1/UrnllltQVlaGiRMnQpIkNDU14e677+5wiqehoQENDQ227ysrK10ZpsfYB4XIT9gClFYZlKAIIDIFqCgQWZTe430/NiLyiNdX8axbtw7PPPMMXnvtNezYsQOffvopvvrqKzz99NPt3mfRokWIjIy0faWkpHh7mC3YO8myBsXm2C/AhzfYU+pEWmALUNLPvk2uQ2HDNiK/5FKAEhsbC4PBgOLi4hbXFxcXIzExsc37PPHEE7jttttw5513Yvjw4bjmmmvwzDPPYNGiRbBarW3eZ/78+aioqLB9FRQUuDJMjzm2upckyafPrVlb/gUc+g747T9qj4TIrr0aFIB78hD5OZcCFKPRiNGjR2Pt2rW266xWK9auXYvx49tOodbW1kKvb/k0BoMBANp98zeZTIiIiGjx5UvyFI/ZYkVDU9tBVLdTfkxcFu5SdxxEsoYq+xLj6DYyKAxQiPyaSzUoADBv3jzMnDkTmZmZGDt2LBYvXoyamhrMnj0bADBjxgz07NkTixYtAgBMmzYNL774IkaNGoVx48bh8OHDeOKJJzBt2jRboKI1YaYA6HWAVRJZlKBAbY7Tp8rzxWXRLkCSAJ1O3fEQydM7IT2A4Kizb2eAQuTXXA5Qpk+fjtLSUixYsABFRUUYOXIkvvnmG1vhbH5+fouMyeOPPw6dTofHH38cJ06cQFxcHKZNm4a//e1vyv0rFKbT6RARHIjy2kZU1jciPiJI7SGpq6EaqD0ljmtKgaoiICJJ3TERtVcgK4sdCEAH1JYB1aVAWJzPhkZEnnM5QAGAuXPnYu7cuW3etm7dupZPEBCAhQsXYuHChe48lWoigkSAwl4osGdPZEW7GKCQ+uT6k9ZLjGXGECA6TTRzK81hgELkZ7gXTzvs7e65ksdWfyJjHQppgbyLcVsFsjLbNA8bthH5GwYo7eCGgQ7OyqDsVGccRI7aa9LmyBagsOU9kb9hgNIO2348nOIBzjRnUBJHiEtmUEgLTncyxQMAcc0BCjcNJPI7DFDaIQcorEGBfYpn0BX27+vKVRsOERqqgermfkzOZlDY04jIrzBAaYetBoU7GtsDlKQMIDJVHBfvUW88RJ0tMZbF9gd0BqC+Qqw+IyK/wQClHdww0IFcgxLdG0jiNA9pgDP1JwAQYLIX0bIOhcivMEBpRwSLZIW6cvHpExCbr8l1KEUMUEhFtvqTDlbwyGx78rAOhcifMEBph71ItptP8cjZk5BYwBTGDAppg7MZFACIHyIumUEh8isMUNoh16B0+yJZuf4kqrn2RM6glO4HGuvVGRPRqeYApaMeKLL45gwKe6EQ+RUGKO1gH5RmjvUnABCRLAoTJQs/kZJ6bBmUNjYJbE3OoJTu50oeIj/CAKUd7IPSTA5Q5AyKTsc6FFJXQzVQ3bwix5kpnpg+gD4QMFcDFQXeHRsRKYYBSjvsRbJNkLrzpy65SVtUb/t1rEMhNZ1pbnEfHAMER3d+viEQiB0gjrmzMZHfYIDSDjmDYrFKqDFbVB6NimwZFIcAhRkUUpO8SaAz9ScyWx0KAxQif8EApR1BgXoEGnQAVJjm2bsKOJnt2+dsiyTZi2SjHTMoGeKyeC9g7cbBG6nDlRU8MltHWQYoRP6CAUo7dDqdOoWyR34CVswEVszy3XO2p+6MmLcHRA8UWUwfIDAEaKwFTh1WZ2zUfbnSA0Vm25OHAQqRv2CA0gFVeqHs+EBcnskDzDW+e962nDkqLsMSgcAg+/V6A5AwTByzDoV87XRzDYo7GZTSA8z6EfkJBigdCA/28YaBdWeAnC/s38upbLW0XsHjSC6ULdrpu/EQAQ41KC4EKNFpQEAQ0FRvD7yJSNMYoHQgIqh5w0BfBSi7PwEsDfbv1Z4+ad2kzVEiV/KQCsw1ri0xlukNQNxAccw6FCK/wAClAz6vQfntv+IyoHk6Rf6kqJbWTdocJTms5OnOy7DJt+SsorNLjB2xDoXIrzBA6YCtF4ovalCKdgOF2aKhVObt4jq1p3jOdJBBiR8C6APEtFTFcd+Oi7ovd1bwyLiSh8ivMEDpgFwk65MalN8+FJeDLgN6ZYpj1ad42uiBIgsw2XeJZT8U8hV3eqDIbAEK9+Qh8gcMUDogbxjo9SmepgZg13JxPOo2oEc/cazmFI8kdVwkCzg0bNvtmzERKZFBKTsIWLr5FhZEfoABSgdsNSjezqAc+BqoOw2EJwN9f2f/41tbBtSVe/e521NTCjTVAdC17IHiiC3vyddsAYobGZTIFMAYBlgb1Z8+JaJOMUDpgK0PirczKHJx7MibxWoDUzgQliCuO61SFkWuP4lIBgKMbZ/Dlvfka55kUHQ6+7Qkd+Im0jwGKB3wSZFsxQkgd604Hnmr/XrbNI9Kn/TK29gksLXE4eKyogCoPe39MVH3Zq4BqgrFsSs9UBzZ9uRhHQqR1jFA6YDcB8WrRbI7PwIkK9B7QsvCP/kToloZlI56oMiCIoDodHHMLAp5m9xBNjja9SXGsvgh4tIfMyiN9cDHM4AfF6k9EiKfYIDSgQhv90GRJPv0zqjft7xNDlbUWsnTUQ8UR6xDIV9xZw+e1uQpnlI/zKAc/BrY9xnw87NAdYnaoyHyOgYoHZCLZKsbmmC1eqEZ2bFfxJ47xjBgyFUtb1N7JU9HPVAcsQ6FfMWT+hOZnEE5lSsyEv5k7ypxKVmBnM9VHQqRLzBA6UB48xSPJAFVDV6oQ5GzJ8OuBYyhLW+TPyWezlWnU2tHPVAcJWWIS2ZQyNs86YEiC08EgiIByQKcOqTMuHzBXAsc+s7+vRysEHVhDFA6YAowIChQvESKLzWurwT2rRLHo247+/aY5tqO+gqg9pSyz90Zq1UUvgJOZFCaC2VPHRJ/RIm8xZ1djFvT6RzqUPxomufw90BjLRDSQ3x/bCOneajLY4DSCa91k927UvzBiR0A9Bpz9u2Bwfb+I76e5qkuAixmQGcAInp2fG54IhAaL9LOxXt9Mz7qnmw1KB4EKIB/LjWWP8xk3Awkn8NpHuoWGKB0wmsbBjoWx+p0bZ+j1koeeXonsidgCOj8fNvGgTu9Nybq3hyXGHsaoMgZFH8plG2sAw5+K46HXgMMvVocc5qHujgGKJ3wSi+U0gPA8a0iQzHipvbPU2slzxkneqA4SuRKHvIyeXonKAoIifHsseL9LINyeC1grgYiegE9R9sL6o9tBKpL1R0bkRcxQOmE3AtF0RoUOXsyYAoQntD+eWqt5HG2QFaWxJU85GXyCh5PCmRlcgblzDGRmdG6fZ+JyyFXiWxrdBqQPIrTPNTlMUDphOK9UCyNwM5l4rh175PWHFfy+FL5UXHZWQ8UmZxBKd7HTdjIO5SqPwGA0FggJBaAJLKZWtbUIPbqAlq2IhhytbiUa1OIuiAGKJ1QfMPAQ2uAmhIgNA7of0nH59qmeI74dqlxZ7sYtxadDhjDAUuD2CmWSGmebBLYFnlnY63XoeT+AJirxEaijsX0ch3K0Q2c5qEuiwFKJ+wbBipUgyJP72TcBBgCOz43qreoU2msAaqKlHl+Z7hag6LX25cbsw6FvEGJJcaO5ABF63UotumdK8X/M1l0GpA0Ukzz7P9CjZEReR0DlE5EBCu4H09VMXDwG3E8spPpHUDsIixnMXw1zWNpAipPiGNnMygA61DIu5Ro0ubIFqBoOIPSZAb2rxbHrTtNA1zNQ10eA5RO2DIoSgQou5aJDpa9xthXEnTG1yt5qk4C1iZAHwiEJzl/P67kIW8x14rfS0C5DEqcHKDkKPN43nBkHdBQAYQlACnjzr5drkM5uh6oKfPlyIh8ggFKJxTrg9LRxoAd8fVKHlv9SUrLlHJnbBmU3eq05qeu64yCS4xl8geEyuOiq7MWydM7g68E9Iazb49JF1tNSFYgh9M81PUwQOmEYn1Qjm8TBaQBwcDQa52/n20lzxHPnt9Zzm4S2FrcIMBgFJ/4yo8pPy7qvpTYJLC14Gh7hlCLhbKWRmD/l+K4rekdGVfzUBfGAKUT9iJZDzMov/1HXA69GgiKcP5+PZr/KPtqisfVHigyQ6B9Xp/TPKQkpetPZPEanubJ+wmoLxer/Xqf1/55ch1K3nqgxsd7dhF5GQOUTihSJGuuAfZ8Ko5dmd4B7FM8p/PEJn7eVu5mBgWw16GwUJaU5I0MCqDtOhTb9M60tqd3ZDF9xP87ycLVPNTlMEDphJxBqTVb0GhxM0DY95loVR2dDvSe4Np9I1PE1ImlQcyXe5ucQYlOc/2+SRnikhkUUpLSPVBktl4oGgtQLI1AjhPTOzKu5qEuigFKJ8KD7JvlVbnbC8VWHHtr+xsDtkdvsAcLvpjmcbcGBWAGhbzDWxkUrU7xHN0A1J0GQnoAvSd2fr5ch5L3M6d5qEthgNKJAIMeYSYP9uM5lSs29YIOyLjFvUH4aiVPk9m+nNPVGhQASBgKQCd2nWV3S1KCudbel0fpGpS4geKyuhioPa3sY3tCnt4ZdIVzu4n36CsaJUoWe2EtURfAAMUJ8oaBbtWhZH8oLvtNBiJ7ujcA+ZOjt1fyVB4XSxYDgoCweNfvbwqzv4kU7VR2bNQ9nTkqLoMixcobJZnCgcjmTKFWsiiWJvuSYXnqxhlczUNdEAMUJ7i9YaDVAmQvFceuFsc68lWzNsc9eFydipKxYRspybZJYF/3fyc7orU6lPxfgNoyEYylTXL+fkOvEZdHftJWNojIA24FKEuWLEFaWhqCgoIwbtw4bN26tcPzy8vLMWfOHCQlJcFkMmHAgAFYvXq1WwNWg9u9UHJ/ENMdwdHAwMvcH4Cvpng8qT+RseU9Kclb9ScyuWGbVjIotumdyzvfq8tRj75AAqd5qGtxOUBZvnw55s2bh4ULF2LHjh3IyMjAlClTUFJS0ub5ZrMZF198MY4ePYpPPvkEBw4cwJtvvomePd2c7lCB271Q5N4nI6YDASb3ByCvXig/Jir8vcXdHiiOmEEhJXmrB4osfoi41MKePFYLsO9zcTzkGtfvz9U81MW4HKC8+OKLuOuuuzB79mwMGTIEb7zxBkJCQvDOO++0ef4777yD06dPY9WqVZgwYQLS0tJwwQUXICMjw+PB+4pbvVBqTtk3+vJkegcQHS8DgsUeOXIQ4Q2e9ECRyUuNT+cCDVWej4m6N29nUOLkDMo+9bdoyN8M1JSIepv0812/vzzNk8dpHuoaXApQzGYztm/fjqysLPsD6PXIysrCpk2b2rzP559/jvHjx2POnDlISEjAsGHD8Mwzz8BisbT7PA0NDaisrGzxpSa3Ngzc/TFgbRRv2InDPRuAXu9Qh+LFaR5bDxQPMiihsUB4sjgu2uP5mKh781YPFFncQAA6say3RuWVZ3KB66ArxE7mrpKneaxNwP6vFB0akRpcClDKyspgsViQkJDQ4vqEhAQUFRW1eZ8jR47gk08+gcViwerVq/HEE0/ghRdewF//+td2n2fRokWIjIy0faWkpLgyTMW5vGGgJAE7mqd3Rt2mzCBsK3m8GKAoUYMC+K4ORZKAb/8MrFmg/qdfUl5jnX2JsbcyKIHBYtM9QGRR1GK1OkzvONGcrT1Dm++7d6XnYyJSmddX8VitVsTHx+Pf//43Ro8ejenTp+PPf/4z3njjjXbvM3/+fFRUVNi+CgoKvD3MDrlcJFuYDZTsBQwmYNh1ygzC2yt5GuuB6uYgMyrNs8fyVR3K4bXApn8CG1/WTpGj0qqKgN8+FMtPu5vT8i7GkcrtYtwWLdShHN8q/v+ZIoA+F7r/OEM4zUNdh0sBSmxsLAwGA4qLi1tcX1xcjMTExDbvk5SUhAEDBsBgsO8nMXjwYBQVFcFsNrd5H5PJhIiIiBZfanK5D4rcOXbwFcr9YfX2Sp6K5jb6gaGej9mWQfFyL5SNi+3HXXHlgrkGeH8a8NkfgJ1L1R6N7znWn3hjibHMsQ5FLXJh68DLPCuoj+0HJAzjNA91CS4FKEajEaNHj8batWtt11mtVqxduxbjx49v8z4TJkzA4cOHYXXY6O7gwYNISkqC0ejGPKsKXOqD0lgH7F4hjj0tjnUkz8F7a4qn/Ki4jO7t+ZuBnEEp2S+603rD8V+Bo+vt3+d0wY3Svn4EKDsojo+sU3UoqnDsgeJNtl4oKmVQrFYgR4HpHRmbtlEX4fIUz7x58/Dmm2/i/fffR05ODu655x7U1NRg9uzZAIAZM2Zg/vz5tvPvuecenD59Gvfddx8OHjyIr776Cs888wzmzJmj3L/Cy2w1KM5kUPZ/BdRXiE3+0i9QbhDyFE95gZiOUZpjkzZPRaUCQVGiSNhbDbA2vCQuB1wK6PSi3kWuoekK9vzPvkwdAI790v3qbLy9gkfmuCePGq/xie2i1sYYDvT9neePJy83PrKO0zzk11wOUKZPn47nn38eCxYswMiRI5GdnY1vvvnGVjibn5+PwsJC2/kpKSn49ttvsW3bNowYMQJ//OMfcd999+HRRx9V7l/hZfY+KE7UAchvKiNv6XibdFeFxon5aUj29t9KshXIerCCR6bT2VcuFe32/PFaKz1oT19f/Bcg9Txx3FVS2meOAl/cL47HzwX0gaLh35k8NUfle97ugSLr0R/QBwANlUDlSe8+V1vkTMfAS4HAIM8fL7Y/ED9UTPMc8J+GmEStuVUkO3fuXBw7dgwNDQ3YsmULxo0bZ7tt3bp1eO+991qcP378eGzevBn19fXIzc3FY4891qImRevkPiidZlDOHBOtpgERoChJp/PuSh4lMyiAvR+KNwplf3kZgAQMvFwsEx18hbi+K9ShWBqB/90p3ix7jQWyngR6jha3HftF1aH5nFwk6+0MSoDRPo3k62JrSbJ3j1ViekfGpm3UBXAvHifINSgNTVbUN7bfvwU7PwIgiSZL0WnKD8SbK3nkJm2e9EBxlOilpcaVJ4Gdy8XxxPvF5aDLxeWxX/x/F+V1i4Dj2wBTJHDdW6Ldee/mDNGxtnsNdUmNdWLzSsD7NSiAenvynNgBVBSI4vR+WZ2f7yy5DuXIOqDujHKPS+RDDFCcEGYMsNWNtlsoa7WK5aCAcr1PWvPmSh6lMyiOUzwOBdIe27RE1LakngekjBXXRaU2Z2wk/05pH/kJWP+iOL7yZXuwaAtQNqozLjXI05gmLy8xljnWofiSPL0zYIroyaKUuAFi+bS10d7RmsjPMEBxgl6vc+gm204dytGfgYp88Qd18DTvDMS2kueIso9rrrF30VSiBgUAYgcAAUGAuVq52om6M8D298TxxAda3jao+TX312memjLg0/8DIAHnzLS3LQdEIKbTi9dRjRoJNdjqT7y8xFimRoDirekdma9W8xz6Hnj/SqB4r3efh7odBihOstWhtJdBkXufDL9O2U9CjrzV7r68uRGeKRIIjlLmMQ0B9gZYhQr1Q9n2tgh44ocC/S9ueZtch3JkHVCv7tYILpMkYNUfRKOu2IHApX9veXtQpD0j1V3qUHy1gkcW57DUWMmMX0cKs8XUamAI0P8S5R9frkPJ/RGoK1f+8QHg6AZg2S2iMdw38zs/n8gFDFCcJGdQ2mzW1tQA5DR/ch+pYO+T1uQ/1lUnRdZDKUpsEtgWJVveN9YBm18XxxPuO/tTddwgkWGymIHDazx/Pl/a8gZw6FvRefj6dwBjyNnn9J4gLrtNgCL3QPFRgBLTBzAYgcZa+/8Hb5OzJ/0vbvtn7qm4gSLwsjZ6Z+qzcCfw0c2ApUF8n/eT6E9EpBAGKE7qcMPAk9lAU51YCtzzHO8NIiQGCG6ej1dymkeJTQLbomTL++wPgdoyIDIVGHbt2bfrdPYsSo4fTfMU7hR7CQHAlL8BicPaPs9Wh9JdAhQvbxLYmiFATEsCvmnY1mJ652rvPY+3VvOcygX+e51YbdZ7IjDsenH9+heUfR7q1higOMm+YWAbNSj5zasrUs/1/ny5N6Z55IJExTMozUuNi3Z51gDL0gT88qo4Pm+uWNnSlsFXistDa0RWS+saqoFPbhdZn4GXA2PubP/c1OZOzaU52mi+tfVNYNcK7z3+KR9P8QAOdSg+aHlftFsEYQFB3pnekcnBT+4Pyk3zVBUB/7lG1K0lDgduXgpc+CgAncjUsBaFFMIAxUkd9kLJ3ywuU9tu968o20oeBZca21bwKJxBiR8iijtrSsUfNXftWyWCqJAeHa+QSj4HCE8CzFX2fjRa9vUj4ucYngxc9c+Og9vQWFGfAtgDYrUU7wVWPwh8ehdQekD5x3dcYuztJm2ObHvy+CCDImdP+mUBpjDvPU/8IPHvsjYCB772/PHqykXmpPwYEJ0O/P5TUSMV299e6CuvRCPyEAMUJ7U7xWO1AgVygHKu9wfijZU83qpBMYbY0+bu1qFIkn1TwLH/r+O5er3e3hNF3ttEq3Z/AmT/VwRw173p3FJarUzzHPqu+UACfvqH8o9vW2IcIYJSX7HtauzllTySZF9Z47hay1uUWs1jrgU+ugko3gOEJQC3rQTC4u23T/qTuNz7qfc2NaVuhQGKk9rdMLDsoFj+Ghhir7nwph7NKW8l/wB4qwYF8LwOJXetSIcHhgBj7+r8/EHNdSgHvgasHTTVU9PpPHsr+/MfAtImOnc/W6Gsyv1QDn1vP97zqfJv6L7axbi1+OYMStlBMa3oLSX7RObMYBL9T7zNtprnB7FPmDssjcAns0X2zhQpMicx6S3PSRohpqska8udxoncxADFSfYNA1v94ZLT7b0y26+NUJLSUzz1lfZOk0pnUACHlTxuLjXesFhcjp7lXJYhbaLYqLC2zD71piWWRuB/d4hpqNTxwPkPO3/f3s1TiIU7gYYq74yvM/WV9oxhz0x4JYtyyscreGRRaUBAsFiV4s19j1pM74R773lk8YPF9KDF7N40j9UKfH4vcPAbUTNzy7L2i7knPSgusz8CKo67P2YiMEBxWrt9UHxZfwLY/2jXlrn/aciRnD0JjvHOH0tPMijHtwNH14uN3MY7ufu1IVDscAxos2nbD38Vu9cGRQLXvilWjzgrspeoE5KsQMEW742xI0fWiU3oevQDpr0srtu7CihWsLBUzqD4sv4EEFOEcc11Pt6c5pFX1HijOVt73F3NI0nAmifENh46A3DD+/apxrakjhOreqyNwC//dHe0RAAYoDit3T4ojit4fMEULuZ/AWWmebxVfyKTG4yVH3N9FcHGl8Tl8BvFm7OzHJcbe7J6SGm5P9hT31f+E4hKcf0x1O6HIveY6Xex+BQ9+EoonkXxdZM2R96uQynZD5QdED1XBl7qnedoi201z1rXPthsXAxsag40rlri3JjPb65F2f6e/++NRapigOIkWw2KY4BSeVK88er0QK8xvhuMknvyeLP+BBDTMpHNwU/RbufvV3bI3s9kwn2uPWffySJVX5Gv/GaF7qouBVbeLY4zbweGXOne46hZKCtJ9vqT/s0b2134qLjct0q55aW+7oHiSK5D8damgfL0Tt/fiSyar8QPFgXrFjNw4Bvn7rPjA+D7J8XxJX8FRt7s3P36XAQkjxK9oTa/5tZwiQAGKE5rsw+KPL2TONw3c8ky+ZPlaQUClDNezqAA7nWU3fgyAAkYMNX+puEsYwjQb7I41kLTNqsVWHU3UF0sOntOecb9x5IDlBPbgcZ6ZcbnrJJ9ootxQLBI4wNAwlD7p/N1f2/3rk5rrLfXLnTFDIq8ksaX0zuAKDZ2ZTVPzpfAF80fDCbcD5x3r2vPJdeibHvLe232qctjgOIkx2XGkjxt4Ov6E5mSzdq81QPFkat1KJWFwK7l4rj1poDOkjds1EIdyubXgMPfiwLD69/xbK+mmD5iis9iFkGKLx1qnt5JnwQEBtmvl5t05XzuWpasLWeOApDEEuPQWM8eyx1yL5RTh4Ems7KPXXpQBHn6QGDgVGUf2xnykubDazverypvvWggKFmBUb8Hsp50/bkGXiaC8YZKYNubbg2XiAGKk+Qi2SarhLrG5uWrvq4/kSm5ksdWg+LNAKW5DsXZN6/Nr4k34NTxoujOHQOmiOLakn3q9mQ4+Zs9TT7lGSBhiGePp9OpN81zuHl6p1+rjRrjB9vf/DytRbFN76T7domxLLIXYAwXhcBKNkMEgJzm6Z0+FwLB0co+tjNs0zwNYkVOWxz31xl0BXDFy+79HPR6YNI8cbz5dWX3DqNugwGKk4IDDQjQi/+oFXWN4hNI8R5xY4qPAxRbs7Zcz4pAJcn7NSiAfYqndH/n0xJ15cCv74pjd7MngHgDkPuL5Hzh/uN4oqFKfBK1Noo/9pm3K/O4avRDqa+0B+Ry/YmjCx6ByKJ84dneS7ZNAlWoPwHEm7G36lD2ynvv+Hh6R+Y4zbN35dm3y/vrmKvEFN51b7u2yqy1odcC0WlA7Slg+/vuPw51WwxQnKTT6RwKZZuA49tECjQ6DYhI8u1g5AZJ9RWe7ctSXy5SsAAQ6caKEmdF9BTLmCVL5/uc/Pq2+AMZP8TzPUrkpm1qTfOsfkhkBCJ6AVe+qlxGQM6gFGwVfVV8Ie8nkVWI6dN2bUj8IPsmjp5kUdRcwSOz7cmjYIByKhco3i2yenK3YzXIy41bT/O0tb+O4zSeOwwBon4FEHtp+cP+WKQpDFBcEOnYTVat+hNA1DDIAYUnaWi5QDY03jvbvct0OucKZRvrRDoYECt3PH1Dl98Ijm8TdS2+tHN5c+8IF1rZOytusGhG11ijzE7RzjjksLy4PXIWZf+XYqrAHfJ0nK97oDiK80KAIq/eST9f2d8FV8UPAXr0bznNU3cG+M+1Z++vo4SRt4j9sapOiv8PRC5ggOKCiCCHDQPVqj+RKbGSx1Yg68UVPDJnCmWzl4pPcJEpwLDrPH/OiOTmbqcADnzl+eM56/QR4Kvm+fcLHu24sZU79Hp7YOyLaR5JEp+4AaB/BwFK3EBg+PXi2N0VPaebO7h2tQyKWqt3WtPpWjZtM9cCS28CSva2vb+OpwJM9hVAG17y7hYC1OUwQHGBbYqnphY4/qu4Uo0MCqDMSh65QNab9SeypAxx2V4GxdIE/PKKOB4/V7ltAxybtvmCJImpHXM1kHoecP6D3nkeOejxxc7GpfvF7sIBQZ3vG3T+wyJrdGA1cDLbtedprAcqCsSxWjUogD1AOZMnsnqeOp0nMko6AzBomueP5ym5DuXw98DHt4mtC9rbX0cJo2eJKd4zR9uufSFqhwcVUN2PvNQ4sGS3aEIUHGPfrdfX5D/gnkzxqJFBKd4rNvHTG1renvOZ+AMWHAOcc5tyzztomlhFc3S9SGV7e/XEwW/FH359IHDVP8/+dyrFsaOs1SqyKt4iT++kTex8iXTcAGDY9cDuj0UW5ZZlzj9P+TEAklhFo8YSY1lYgvg9qTsDfP2ImKIIDBYbVgYGNV8Gi6+AYIfbglteL/9M5OmdtIlAqA93Z25PwlCxEvDUYfvy94721/GUMRQ49w/Aj38F1r8gsqPe/H2lLoMBigvkDEpkaXP/idRz1VkKCdiXGnsyxWNr0uaDDEqPvuKPeGOt+MMo73kCiKyDvCnguP8n/qApJbafqCkozQEOfgdkTFfusVtragC+ae6sOv4P3q2jSBoBBIaKQufSHPGm4y2Hnag/cXTBI8CeT4CDXwMndgA9z3Hufrb6Ex/vYtyaTicyfkfWATs8WH1iMIlgpal55Zo8taI2eTXP+ued219HCWPvEs0XS3PE74WahcLkNxjGukDuhRJ35jdxhVr1J4DDFM8R95ca+zKDojcACc2f0FrXoeT+IKZ+AkOAsf+n/HPL0zz7vbzceNMSMS0QlgCc/5B3n8sQCKSMFcfe7IfSUAUck5cXOxmgxPYT+ycBrtWiaGEFj+zyF0WgNX4ukHkHkHGLeFPvP0UUuvYaI36fY/oA4cmiaNlgavkYlgYRQDbVi8ZzWpjekY37f6KZ4Y3v+2ZPoOAoYOyd4vjn57W1RxZpFjMoLhBTPBJ6VTWvUFCr/gQQWQ+dXqzkqCpyfamzJDnUoKQpPrw2JY0Ajm8FinYCI26wXy9voHfOTO+scBh0BfDzc2IfGXOtd1YsVRaKP7wAcPFffLP1Qe8JwJEfRaHs2Lu88xx5P4s+LtHprmWELnhYTPMc+lZ0vO05uvP7qN0DxVGPvsBFj7l+P6tFBCSNdSJb2FgnviKSgbA45cfprrB4YPp/ffuc584BNr8BnNwhslN9L/Lt85PfYQbFBRHBgUjXFSHMUi7mbeXCTzUEGO1TM+5M89SeEn9AAdd2CvZEWyt5TmwXb4L6AGD8HO88b1KG2LCwqU5ka7zh+4UiWOw1xp498DbHjrLe+kQq1584mz2R9egLjGieTnM2i6KlDIq79AYxRRkaKzKTcQOB5JHKrozxV2FxwOiZ4nj9C+qOhfwCAxQXRAYHIlN/QHzTc7RYQqcmT1byyPUn4Um++3c49kKR31Dl2pNh1wNRXmoWp9PZ57y90bQtf0vz3kE6YOo/fFcA2HM0YDCKTQjlN3clSVL77e2dcf5Dosbh0Hf2VW8dOdX8b1CzBwp513n3igLyo+vF/xuiDjBAcUFEUADG6JoDFDXrT2SerOTxxR48rcUPEZmSujNix9qyw/Y29BPu8+5zy3UoB75Wtvuq1QJ8/bA4HnWrc1MZSgkMsj+fN+pQSg+IZb8GU+fLi9vSoy+QcZM4Xreo43ObGhyWGPtxBoU6FtnL/jvBLAp1ggGKCyIcMyhq1p/IbCt53Pj0bAtQfFAgKwsw2XeLLdoF/PIyAAkYcKnnm+h1JnU8ENJDFC0q2dzst/8ChdmiCHLyQuUe11ne3DjwsMPyYnfrds5/UGRRDn8vWvO3R97F2BgOhGqoVoOUN/EBUT936FvfdUImv8QAxQXR1nL00RfBCp2oNVBbj+ZPmu5M8fhik8C2yHUoh74Ddjb3yPBkU0Bn6Q1iC3hAuaZtdeXA2r+I4wsfVafOwBageKGjrLv1J45i+gAjbxbHHdWiqL2LMflOj7723a83vKjuWEjTGKC4IOb0DgDAAWsKrCaF9qrwhG1X4yOiWZcrzqiQQQHsdSjb3wcsZrETtK+mywY3L/Pc/5Xrr1dbfvoHUFsmmvV5Y3m0M1LGiU+j5cfEtJlSGqrtXWrdqT9xNOlBMbWXu7b9LIoW9uAh35nYvBXE3lVA2SFVh0LaxQDFBaFF2wAA26wDUW3WwJ4SUami4MzSIFqRu8LWA8XXGZThzQfNRbIT7/fdc6dfABjDxMZlJ3/z7LFK9gNb/y2OL/27cq35XWUKt68mk/uVKCHvZxFARqd5HjTEpAMZzVmUH59p+5yusIKHnJc4DBgwFYBDk0aiVhiguCDguKg6/9U6QGwYqDa9wb53hivTPFarb5u0ObIFKBAdXvtP8d1zBwbZpytyPnf/cSQJ+OYRwNokpo36TVZmfO5K9cI0j2P3WCWmXM5/SGRRjvxo3wnckZZ6oJBvTPqTuNy1zP73iMgBAxRnmWtsW8j/ah2ICi0EKIB7K3lqSkTWRaf3XQ8UWVCkff+iCff5fk+OQXJX2S/d7x2y/yvRaMpgBKb8TbGhuU3pQllJEk3tAM/qTxxF9wZG3iqO28qiMIPS/aSMEV15rU3AxlfUHg1pEAMUZx3/FZAsKNbF4iRiUVmngSkewJ5+d2Ulj1x/EtFTnamJa94Arlhsb+TlS/0vEYHFqcNiGa2rGuuBb5s7jI6fq403VHlFWdkBoKbM88crOwhU5IvXyZ3lxe2Z9CeRRcn7qWUw1dRgr59hDUr3Mql5t+8dHwBVxeqOhTSHAYqzmtPSB4xiU7bKeo1kUNxp1qZW/Yms52ggc7Y6O5oGRYhaFMC9vXk2vSoKUsOT7ClqtYX2ENNlgL2w1RPy6p3eE5TduDG6NzDq9+LYsS/KmWOAZBX1QVxi3L2knw/0zBQZ3c1L1B4NaQwDFGc1/+E/GipWoWiiBgVwb4qn/Ki49HX9iVbITdtcXW5ccQJY37ws8uKnAVOYsuPyhJLTPIcVWF7cnkkPisLuvJ+Bo801M7b6Ey4x7nZ0OtErBwC2vS2aOBI1Y4DiDEsTcFys4DkZPhIAtFODIjdrKz8mxukMtXqgaMXAywHoRIO18gLn77dmgdi/KOVcYPj13hqde5Tqh2KusQc5ni4vbktUCnDObeJYzqLY6k84vdMt9Z8CxA8FzNXAln+rPRrSEAYozijeI/7zmCJREyUCgsp6jdSghCcBAcGi0EzuDtsZtVbwaEVYnL1uY/9Xzt3n2C/Ank9g229Ha5/05QClaDdQX+H+4+StF8uLo1KB2P7KjK21SX+y78eSt94+PamFeh7yPb0emNTcF2XL66IHDxGAALUH4BfkZZEpYxEREgRAQ1M8er34w16yV/yhd6bI8IwK+/BozeArgPxfxGqec+/u+FzH/XbOmSF2p9WaiGTRs+TMUdEMzd3pGaWXF7clspd4HX99W3SXlQu1WSDbfQ29BvjxbyKbtv1dsamgI0kS2cu6M0DtaaDutMPlmVbfO1w2Na9WtH3pWn3f+rYObofOfg4cznXqGGdfb7tEG9e1dRvst8nHxnBg5C3iA4rWPjQpgAGKM+TCw9RzESGJP6aaKZIFxB/2kr32ufyOWC32FRPdNYMCiOXG3z4mpkRqyoDQ2PbP3fG+yEyYIoHJC3w3Rlf1niAClGMb3QtQJEmZ9vbOmPQn4Lf/AMc2iM0IAWZQujO9QWx58fm9wIaXRJDdOhixNKg9Sm3K/q+Ydp70J/H/tgsFKgxQOiNJ9gxK6nhElDQHKFrJoACureSpKgSsjWK5Z0Syd8elZdG9RdO4ot1ih2O5LqK1ujPA2qfF8UXzOw5k1Nb7PCD7Q/c7yp46LKYJDUaxusKbInsC58wEtr1pf+NhDUr3NuImYN0/RFfs9hop6gOBkBggOKb5MrrV9w6XwdFAYDAASawSk+TLjr7QzvWW5r5JUvPjOB5bnTzG2deLK1s+ntO3ASjeC2QvBQo2A0tvABKGi+myIVeJoM/PMUDpzJmjQHWR+I/R8xxEVJYDgHb6oACureSR608ie3WJX2CPDJomApT9X7YfoPy4SHyCixsEjLnTt+NzlVyHcmI70FjX/MfZBbblxecpu7y4PZPmif4XlgaxxFiNzRZJOwKMwC3LgYNfA0FRIsBoHYAYw7pUhkARFz4KbPonsO0doHg38Mls8Z4w8QHRayrAqPYI3cYi2c7I2ZPkUUBgMCKDtTjF07ySx5kpHtaf2MnLjXN/BBqqzr69eB+w7S1xrOZ+O86KThdF09ZG0VjQVY71J74QkQyMniWOucSYALFHz/kPAWPvEivl+k0Wf3uje4t9p/g7crbwROCSvwIP7AEunC+Cu9O5wOdzgVdGApvfAMy1ao/SLQxQOuNQfwIAEcEi6aTJKZ7yAlEU1pHuvoLHUfwQ8aZuaQAOf9/yNnm/Hcki6lX6XqTOGF2h07nfD8Vca+9L4u36E0cXPAIMux644FHfPSdRVxQSI7IpD+wRAUtYIlB5QvwdWzwc+Pl5oK5c7VG6hAFKZxzqTwAgIkh8itZMHxRAdN80hgOQgNN5HZ8rL0Xurj1QHOl0wOBp4rh107acz0UzMYNJG/vtOEtePu1qP5Sj60WgFplq3yvJF0J7ANe/bc9mEZFnTOFiFdR9O4ErXhLZ8toy4IenRaDy/VNAdanao3SKWwHKkiVLkJaWhqCgIIwbNw5bt2516n7Lli2DTqfD1Vdf7c7T+l7NKbG/CQCkjAMARDRP8dSYLWiyWNUaWUs6ncOePJ1M86jd5l5r5ADl0HdAk1kcN9YB3z4ujif8USzf9Re9J4jLgq32f48zbKt3sphGJ+oKAoOAzNuBe3cA174p6ugaKoENL4pA5etH7Cs6NcrlAGX58uWYN28eFi5ciB07diAjIwNTpkxBSUlJh/c7evQoHnzwQUyaNMntwfpcwRZxGTtQfNIDEBFkryuu0kqzNsD5lTysQWmpZ6ZIhTZUiowJIHZWrcgXmylOfEDd8bkqbpAoLGyqs+2+3SlJ8n39CRH5hiEAGHEjcM8mYPqHQPI54u/DljeAlzOAz+YAZS5sleJDLgcoL774Iu666y7Mnj0bQ4YMwRtvvIGQkBC888477d7HYrHg1ltvxVNPPYU+ffyo10Gr+hMACDDoEWoUq180VSjrzEoeS5OYkwRYgyLT64FBl4nj/V+IOp4NL4nvL3naN6tZlKTXA6nNdSj5TtahnMoVq9V8sbyYiNSh14up1Lt+AG5bBaRNEh3If/sv8M9M4OOZ7u3w7kUuBShmsxnbt29HVlaW/QH0emRlZWHTpvZ7L/zlL39BfHw87rjjDqeep6GhAZWVlS2+VNGq/kQmT/Noqg7FtpLnSPvnVB4XRZ8GExCW4Jtx+YNBzfUP+78Cvvuz+HTRewIw9Fp1x+UuVwtl5exJ6nhtbYBIRMrT6UTR/6wvgTvWAAOmApCAfauA6mK1R9eCS31QysrKYLFYkJDQ8s0tISEB+/fvb/M+GzZswNtvv43s7Gynn2fRokV46qmnXBma8hrrgJO/iWOHDAogCmULK+q11QvFmSkeW/1JioimSUibJLrE1pQC+z4T7agv/bv/1mLYApRNonNwZ/1ufNU9loi0JWUscMsyoGiP+NuXpq0SDK++S1VVVeG2227Dm2++idhY5ztwzp8/HxUVFbavggIXdpxVyokdop9EWOJZRZK2pcaamuJpnjqrOil2pG2Lrf6E0zstBBiBAVPs34+eBSSNUG04HkscIRpaNVQAJfs6PtdcCxzdII77ZXV8LhF1TYnDgN/9WXMfylzKoMTGxsJgMKC4uGUaqLi4GImJiWedn5ubi6NHj2LatGm266xWsfIlICAABw4cQN++Z7e3NplMMJlMrgxNeY71J61+aLZmbVqa4pG7LdadFtM8icPPPocreNo35Epg98eiydFFj6s9Gs8YAsQno9wfxDRPW78LsqMbxPLiiF6iwJaISCNcyqAYjUaMHj0aa9eutV1ntVqxdu1ajB8//qzzBw0ahN27dyM7O9v2deWVV+Kiiy5CdnY2UlJSPP8XeEs79SeAvReKpjIoQOfTPOXMoLRr0BXA1OeA3//PtmLLr9mmeTrph3KYy4uJSJtc3otn3rx5mDlzJjIzMzF27FgsXrwYNTU1mD17NgBgxowZ6NmzJxYtWoSgoCAMGzasxf2joqIA4KzrNcVqEX0kgLPqTwCNFskCYiXP8W3tr+SRMyhs0nY2nQ4Y939qj0I5cj+UY7+IZcTtBR+HuLyYiLTJ5QBl+vTpKC0txYIFC1BUVISRI0fim2++sRXO5ufnQ+/vBZglOWL+3hgGJJwdSMm9UDRVJAt0vpKHPVC6j+RzxGqtmlKRUYvtd/Y5p3KBM3liI8w+F/h+jEREHXBrN+O5c+di7ty5bd62bt26Du/73nvvufOUviXXn/QaI+bzW4nQ4oaBANCjuVC2rSmepgagqlAcM0Dp+gKDgF6ZYorn2Ma2AxR5/6HUc0V7bCIiDfHzVIeXdFB/AjgEKFqc4gHanuKpOA5AAgJDgFDnV1SRH+usHwqXFxORhjFAaYstQDm7/gTQ6IaBgL1ItrYMqK9oeZtjgSyLIbsH28aBbQQojXVig0CA9SdEpEkMUForLxAdV3UGkSJvg70PisZqUEzh9g6xrad52AOl+0kZK36PK/LtBdKyoxuBpnqx31D8YHXGR0TUAQYorcnZk6SMdvdh0WQfFFlMO0uN2QOl+zGFi99jQHSVdWTbHJDLi4lImxigtGZr0NZ2/Qmg4T4ogH2a53R7AQozKN1Ke/1QWH9CRBrHAKW1TupPAHuRbH2jFQ1NFl+MynntNWuTa1DYA6V7kfuh5DtkUE4fEQGsPgBI5/JiItImBiiO6s7Y9y7pIEAJNwXYsuKa64XS3koeZlC6J/n3uOwgUF0qjg/Jy4vHA0ER6oyLiKgTDFAcFWwDIIk3+bD4dk/T63UIN2lww0DAoVlbruggCogVG/I22qxB6V5CYoD4oeI4v3k1j2P9CRGRRjFAceRE/YlMu71Q0sVlfQVQe1oclzfvBm0MB4Kj1RkXqae3w3Ljxnogr3l5MetPiEjDGKA4cqL+RKbZXiiBwWJnWsA+zeNYf8IVG92PY6HssQ1AUx0QngzED1F3XEREHWCAImtqAE5sF8dOZVA02gsFOHslD3cx7t5SmwOUoj3A7v+J436TGawSkaYxQJGdzAYsDUBIrP0NvgO2pcZay6AAZ6/k4SaB3VtEEhDTB4AE7FomruP0DhFpHAMUma3+5FynPllGanXDQODslTxcwUPyNI9kFcuL+1yo6nCIiDrDAEXWyQaBrdmLZLU4xeOwkgdgDxSy90MBgJRxQFCkemMhInICAxQAsFqBAhcDFK0WyQIOUzxHxFJjZlBIzqAAXF5MRH6BAQogmljVnQECgoGkEU7dxV4kq8EAJao3oNMDjTWiDqX2VPP1DFC6rajeQOwAsXngoMvVHg0RUacC1B6AJsj1J70yAUOgU3fR9IaBAUbxhnQmDzjyo7guKIpp/e5MpwN+/ylQWwbEDVR7NEREnWIGBXC5/gRw3DBQgzUogH2aJ/cHccnsCUWlAMmj1B4FEZFTGKAALVfwOEmznWRl8koeuWsoC2SJiMiPMECpPClWuej0QK8xTt/NVoOi1QBFXsljrhKX7IFCRER+hAGKPL2TMMylnV0d+6BI8qZ8WtKjT8vvGaAQEZEfYYDiRv0JYK9BabRIqG+0Kj0qz8W06obLGhQiIvIjDFDcqD8BgBCjAQa96DiryV4oUamA3mFFEmtQiIjIj3TvAKW+EijeI45dDFB0Oh0igjTcC0VvAGLS7d9Hpqg3FiIiIhd17wDl+DaxN0lUbyAi2eW7a7oXCmCf5gmJBUxh6o6FiIjIBd07QHGz/kQWoeUNAwF7LxTWnxARkZ/p5gGKe/UnMk3vxwMASSPFZcJQVYdBRETkqu7d6j6qNxB+2IMMitwLRaPdZIdeA5jCgZSxao+EiIjIJd07QLl6idjt1022dvdazaAYAoCBl6o9CiIiIpd17wAFEJuouSlS6zUoREREfqp716B4yL4fj0aneIiIiPwUAxQPyH1QNFskS0RE5KcYoHhA88uMiYiI/BQDFA8wQCEiIvIOBigesK/iYQ0KERGRkhigeCAymDUoRERE3sAAxQNyBqWqvhFWq/v9VIiIiKglBigekGtQrBJQY+Y0DxERkVIYoHggKNAAY4B4CSvrGaAQEREphQGKh2wbBtayDoWIiEgpDFA8ZNswkEuNiYiIFMMAxUOa3zCQiIjIDzFA8ZB9w0DWoBARESmFAYqH5JU87IVCRESkHAYoHpI3DOQUDxERkXIYoHiI+/EQEREpjwGKh2w1KNyPh4iISDFuBShLlixBWloagoKCMG7cOGzdurXdc998801MmjQJ0dHRiI6ORlZWVofn+xvbKh5mUIiIiBTjcoCyfPlyzJs3DwsXLsSOHTuQkZGBKVOmoKSkpM3z161bh5tvvhk//vgjNm3ahJSUFFxyySU4ceKEx4PXgghuGEhERKQ4lwOUF198EXfddRdmz56NIUOG4I033kBISAjeeeedNs//8MMP8Yc//AEjR47EoEGD8NZbb8FqtWLt2rUeD14L2AeFiIhIeS4FKGazGdu3b0dWVpb9AfR6ZGVlYdOmTU49Rm1tLRobGxETE9PuOQ0NDaisrGzxpVVyDUoV+6AQEREpxqUApaysDBaLBQkJCS2uT0hIQFFRkVOP8cgjjyA5OblFkNPaokWLEBkZaftKSUlxZZg+ZVvFwwwKERGRYny6iufvf/87li1bhpUrVyIoKKjd8+bPn4+KigrbV0FBgQ9H6Rq5D0pVQxMsVknl0RAREXUNAa6cHBsbC4PBgOLi4hbXFxcXIzExscP7Pv/88/j73/+O77//HiNGjOjwXJPJBJPJ5MrQVCNnUACgqr4RUSFGFUdDRETUNbiUQTEajRg9enSLAle54HX8+PHt3u/ZZ5/F008/jW+++QaZmZnuj1aDAg16hBgNANgLhYiISCkuZVAAYN68eZg5cyYyMzMxduxYLF68GDU1NZg9ezYAYMaMGejZsycWLVoEAPjHP/6BBQsWYOnSpUhLS7PVqoSFhSEsLEzBf4p6IoICUWu2sBcKERGRQlwOUKZPn47S0lIsWLAARUVFGDlyJL755htb4Wx+fj70enti5vXXX4fZbMb111/f4nEWLlyIJ5980rPRa0REcACKKtkLhYiISCkuBygAMHfuXMydO7fN29atW9fi+6NHj7rzFH6FvVCIiIiUxb14FMANA4mIiJTFAEUB3DCQiIhIWQxQFCD3QmENChERkTIYoCiAUzxERETKYoCiABbJEhERKYsBigJsNSjcMJCIiEgRDFAUEBEsalCYQSEiIlIGAxQFyFM8LJIlIiJSBgMUBbBIloiISFkMUBTAPihERETKYoCiAHmKp67RAnOTVeXREBER+T8GKAoICwqAQa8DALz3Sx4kSVJ5RERERP6NAYoCDHod7prUBwDwzOr9eHzVHjRZmEkhIiJyFwMUhTxy6UA8fvlg6HTAh1vyMfu9bSyaJSIichMDFIXodDrcOakP/vX70QgONGD9oTJc99ovKDhdq/bQiIiI/A4DFIVdMjQRK+4ej4QIEw6VVOOa1zZiR/4ZtYdFRETkVxigeMGwnpFYNWcChiRFoKzajJv+vRlf7Dyp9rCIiIj8BgMUL0mKDMaKu8cja3A8zE1W3PvRb/jnD4e4woeIiMgJDFC8KNQUgH/dlok7JqYDAJ7/7iD+tGInGposKo+MiIhI2xigeJlBr8MTVwzB01cPg0Gvw6c7TuC2t7fiTI1Z7aERERFpFgMUH7nt3N54Z9YYhJsCsDXvNK55bSOOlFarPSwiIiJNYoDiQxcMiMP//nAeekYF4+ipWlzz2i/YfOSU2sMicsnpGjOmvrwev39rC7d2ICKvYYDiYwMSwrFqzgSMTIlCRV0jbnt7C1b8WqD2sIicIkkSHlqxEzmFldhwuAyvrD2k9pCIqItigKKCuHATlv3fubh8RBIaLRIe+mQXnvt2P6xWrvAhbXt341Gs3V9i23vqtXWHsf0Y+/wQkfIYoKgkKNCAV28ahXt/1w8AsOTHXNz70W+ob+QKH9Km3ccrsOjrHADAwmlDcPXIZFgl4E8fZ6PW3KTy6Iioq2GAoiK9Xoc/XTIQz9+QgUCDDl/tLsRN/96M0qoGtYdG1EJVfSPmfrQDjRYJU4Ym4LZze+Opq4YhKTIIR0/V4pnVOWoPkYi6GAYoGnD96F74zx3jEBUSiOyCcly9ZCMOFFWpPSwiAKLu5PFVe3DsVC16RgXj2esyoNPpEBkciOeuzwAA/HdzPtYdKFF5pETUlTBA0Yhz+/TAyj9MQHpsKE6U1+H613/BxsNlag+LCJ9sP47Psk/CoNfhlZtHIjIk0HbbxP6xmHVeGgDg4U92obyW/X2ISBkMUDQkPTYUK/9wHsamx6CqoQkz39mKT7YfV3tY1I0dLqnCgs/2AgDmXTwAo3vHnHXOI5cOQp+4UJRUNeDxVXt8PUQi6qIYoGhMVIgR/7ljLK7MSEaTVcKDK3Zi8fcHu8wePharhC1HTmHZ1nx8vbsQm3JPIaewEkUV9SwQ1pj6RgvmLv0NdY0WTOwXi3su6NvmecFGA166cSQMeh2+3FWIz7kxJhEpIEDtAdDZTAEGLJ4+Er2ig/Haulws/v4Qjp+pwzPXDIcxwP9iyvpGCzYcKsN3+4rwfU4JTnfQ5j8oUI/oECMigwMRHWJEdGggIoONiA4JRFRIIKJCjIgOMSIqJLD5OiNiQozQNy97JeX87asc7C+qQmyYES9Oz+jwNc5IicLci/rh5bWH8PjK3RibFoPEyCAfjpaIuhqd5AcfzSsrKxEZGYmKigpERESoPRyfWrolH098tgcWq4QJ/Xrg9d+PRkRQYOd3VFlFXSN+3F+Cb/cW4aeDpag127MjkcGByEiJQk1DE8przSivbUR5XSMsbvaB6RkVjPmXDcLlw5Og0zFQUcLXuwtxz4c7AAAf3D4W5w+I6/Q+jRYrrnv9F+w6XoFJ/WPxwe1jffrzsFgl7DtZiUFJ4Qg0+F8gT9QVefL+zQDFD/x4oARzPtyBWrMFAxPC8e7sMUiOClZ7WGcpqqjHmn1F+G5fMTblnkKTQ8CRHBmES4Ym4pIhCRiTHnPWG4gkSahqaEJ5TSPO1JpRXtdoC17OyEFMrRlnmi/L6xpxpsaMynp7/41x6TFYOG0ohiR3v98RJRWcrsVlr6xHVX0T7r6gLx6dOsjp+x4uqcblr6xHQ5MVT181FLeNT/PeQB1U1TfiDx/uwPpDZRiaHIGXpo/EgIRwnzw3EbWPAUo3sOdEBW5/bxtKqhqQEGHCO7PGYGhypNrDwuGSany7VwQlOwvKW9w2ICEMlwxJxJShiRjWM8Irn6brzBb86+dcvL4uFw1NVuh1wE1jU/HgJQMRE2pU/Pm6ukaLFdP/tQk78ssxKjUKH/+/8S5nI97dmIenvtiHoEA9Vv9xEvrEhXlptEJRRT1mv7cNOYWVtuuMAXo8dMlA3D4x3db1loh8jwFKN3GivA6z392Kg8XVCDUasOTWc3DhwHifjsFqlbDzeDm+21eMb/cW4UhpTYvbz0mNwpShibhkaCLSY0N9Nq4T5XV4ZnUOvtpVCACICArAAxcPwO/P7c10vwue/WY/XluXi/CgAKz+4ySkxIS4/BhWq4Tb3tmCjYdPYWRKFD65ezwCvPQzOFhchVnvbMXJinrEhhnx3PUZ+M/mY/hhv+jJMjY9Bi/ckOHWv4OIPMcApRupqGvEPf/djl9yT8Gg1+FvVw/DTWNTvfqckiRhR345Vv52HGv2FaO40t7pNtCgw3l9Y3HJ0ARcPDgB8RHqFkZuPnIKT32xz/Zpun98GBZOG4qJ/WNVHZc/WH+oFDPe2QpJAl679RxcNjzJ7cc6WV6HKYt/RlV9E/508QDcO7m/giMVfsktw//7z3ZU1TehT1wo3p89FikxIZAkCcu3FeDpL/ehxmxBqNGAhdOG4obMXqxRIvIxBijdjLnJikc/3YVPd5wAAMy5qC8evGSg4n98K+sbseq3E1i6JR/7HTrbhhoNuHBQPKYMTcSFA+M0V7RrsUpYti0fz397AGdqGwEAFw9JwOOXD0bvHr7L6viTkqp6XPbyepRVm3HruFT87ZrhHj/mpzuOY97HOxGg12HVnAkY1lO5KcnPsk/gwRU70WiRkNk7Gm/OyER0qym9/FO1+NOKbGw7KjYzzBocj0XXjkBcuEmxcRBRxxigdEOSJOGl7w/Ztru/amQynr1+BEwBBo8fd+fxCizdcgxf7CxEXXNvElOAHpePSMK0Eck4r18Pj5/HFypqG/HS9wfxn83HYLFKMBr0uHNSOuZc1A+hJq6wl1mtEma+uxXrD5VhUGI4Vs2ZgKBAz3++kiThDx/uwNd7itA/Pgxf3DvR48eVJAmv/5SLZ785AAC4fHgSXrgxo93HtVglvLX+CF747iDMFitiQo3429XDMNWD7BAROY8BSjf28bYCPLZyN5qsEsalx+Dft2W2aEXurKr6RqzKPomPtuRjn0OxYf/4MNwyLhXXjurl1uNqwcHiKvzli33Y0Lx1QHy4CY9OHYSrR/Zk/xQAr607jGe/OYDgQAO+uHcC+sUrt/rldI0Zl7z0M8qqG3DnxHQ8fsUQtx+ryWLFk1/sxX835wMA7pyYjscuG+zUz3B/USUeWL7TNvV37aieWHjlUEQG++fvNJG/YIDSza0/VIp7/rsD1Q1N6BcfhndnjXG6KHDX8XIs3ZKPz3eetPUqMQbocfnwJNwyLhWZvaO7xLy9JElYs68Yf/0qB/mnawEAo1Kj8OS0ochIiVJ3cCrafuwMbvzXJlisEp69bgRuHJOi+HP8sL8Yt7/3K3Q6YOmd52J83x4uP0atuQn3Lv0Na/eXQKcDFlwxBLMnpLv0GOYmK15eexCvr8uFVQKSIoPw3PUZrE8i8iIGKIScwkrMfncbiirrERtmwjuzMjGiV1Sb51Y3NOHz7JNYuvUY9pywZ0v6xoXilnG9ce2onmfN53cV9Y0WvL0hD0t+PGwLyG4Y3QsPXToQ8eHdq/NpRW0jLntlPU6U1+HKjGS8fNNIrwWj8z/dhY+2FqBnVDC+vn+SS3VLpVUNuPP9bdh5vAKmAD1evmkkLh3m/hTN9mNn8KePs3H0lAhUZ52XhkcuHYRgo/anLZVgbrJiw+FS/HL4FPrEheHSYYlckk9ewwCFAACFFXWY/e427C+qQnCgAf+8ZRQmD06w3b7nRAWWbs3HZ7+dQI2cLTHoMXV4Im4Zm4qx6TFdIlvijOLKevzj6/349DdRaBxmCsC9v+uH2RPS/XI7AVc51of07hGCL++diHAvFjtXNzRh6ss/o+B0Ha4f3QvP35Dh1P2OlFZj5rtbUXC6DtEhgXhrZmabGxa6qtbchGdW59imi/rEheLFG0diZBfNpjU0ie0mvtpdiDX7ilHl0ODQoNdhYr9YXDEiCZcMTeS0FymKAQrZOHbU1OuAJ64YghCjAUu35GPn8QrbeX1iQ3Hz2FRcN7pXt/70tP3YGfzli7221yY2zIhrz+mFG0b3Qv8u3In0P5uP4YlVexBo0OF/95zXbrZNSduOnsaN/9oESQL+ddtoTBma2OH524+dxp3v/4oztY1IjQnBe7PHKN707aeDpXj4k50ormyAQa/DnIv64d7f9esSvXMamixYf7AMq3cXYk1Oy6AkPtyECwfGYc+JyhY1Z0aDHucPiMO0jCRMHpyAMBaTk4cYoFALjRYrHl+5B8t/LWhxfaBBhylDE3HLuFSM79Oj22RLOmO1SvjfjuN47tsDKKmy93gZmRKFGzNTcEVGkuaWUnsip7ASVy3ZCHOTFY9fPhh3Turjs+de9HUO/vXTEfQINeLbB85HbFjbS36/3l2I+5dno6HJioyUKLw9M7Pdcz1VXmvGgs/22nZhHtYzAi/dONIvA9T6RgvWHxJByff7ilHVYA9KEiJMmDosCZePSMLo1GhbcfGR0mp8uasQX+46iYPF1bbzTQF6/G5QPKZlJOOigfHdZgqMlMUAhc4iSRL++cNhvPj9QfSOCcHNY1Nx/ehe6OGlP/JdQaPFinUHSvHxrwX4YX+JbfPCoEA9LhuWhBsyUzAuPcavV/7Umpsw7dUNyC2tweRB8XhrZqZPA9WGJguu+udG7C+qQtbgBLw5Y/RZz//2hjz89at9kCTRu+SVm0chxOj9T/Jf7DyJx1ftQUVdI4wBejx4yQBMz0zV/Oo1OSj5atdJfJ9TgmongpL2HCiqwpe7TuLLXYXIK7N3iQ4xGpA1OAFXjEjCBQPj/KLNAGkDAxRqV0VdI8JNAX79pqqGkqp6rPrtBD7+9TgOl9g/VabGhOCG0b1w3ehePtmw8UyNGSfK6xAUqEdQoAHBgQYEGw0ICjC49TN9aMVOrNh+HAkRJnx93/mqTO/tO1mJq5ZsQKNFwrPXj8CNmWLlkNUq4a9f5eCdjXkAgNvO7Y0nrxzq0710iivr8cj/dmHdgVIAoj5jTFo0sgYn4HeD4r2+r5Cz6hst+PlgqciUtApKEiOCMHV4Ii4fnoRznAhK2iJJEvaerMQXu07iy52FOFFeZ7stPCgAlwxJxBUZSZjYL7ZLTIeR9zBAIfISSZLwW0E5VvxagC92FtreCHQ6YFL/ONyY2QsXD0nw+BNlndmCQyVV2F9UhYNFVThQXIUDRVUtppxaMwXoEWw0ICTQgCBjc/AiBzDNxyHysdGA6vom/GfzMeh1wNK7zsW5fVxf7quU19fl4h/f7EeYKQBf3zcJceEmzPs4G6t3FwEAHp06CP/v/D6qTENKkoRl2wrwzoY8HHIITgFRuzV5cDx+NygBmWnRPntzliQJBafrsOtEOdbsK8badoKSK0YkYVSKe0FJR8+dXVCOL3cV4qtdhSiqrLfdFhUSiKnDEjF1WBL6xYchPtzktX2XyD/5PEBZsmQJnnvuORQVFSEjIwOvvvoqxo4d2+75K1aswBNPPIGjR4+if//++Mc//oHLLrvM6edjgEJaUGtuwte7i7BiewE2Hzltuz4qJBBXj+yJGzJ7dbrDdJPFiqOnamyByP6iKhwsrsKx07Vo739ibJgJFqsVtWYLGpqsHv877s/qj/uzBnj8OJ6wWCVM/9cm/HrsDMakRUOSgF+PnYHRoMdzN4zAVSN7qjo+2bFTNVibU4If9pdgS94pNFrsP6SIoABcODAekwfH48IB8YpNBVmsEvLKqrHnRCX2nKjA3pOV2HuyApUORa6A6OMipm8SFQ9K2mO1Svj12Bl8ueskVu8uRFm1ucXteh0QF25CYmQwEiNMSIoMRmJkEJIig5AQYb9UolMx+QefBijLly/HjBkz8MYbb2DcuHFYvHgxVqxYgQMHDiA+/uyddX/55Recf/75WLRoEa644gosXboU//jHP7Bjxw4MGzbMqedkgEJac+xUDT7ZfhyfbD+Owgr7J8qhyRG4MTMFV2Yko7bRggNFlThQVC0ui6uRW1INs6XtIKNHqBEDE8MxICEcgxLDMaD52HElhdUqob7JgjqzBXWNFtQ3WlBntqKuUXxfZ25qvrQ63G6x3Z4YEYQ5F/Xz6bRJe46dqsHUl9fb+tFEBAXg3zMyVc3sdKSqvhE/HyzD2v3F+HF/iW2fJ0BMBWX2jsbkwfGYPDgBfWJDncr+mJusOFhchb0nRSCy50QFcgqrbFtMOAo06DAwMRxj03rg8hFJGJUSperUrcUqYcuRU/hiVyHWHypFUUU9mqzOvZ3EhBptAUtiZBCSIoKQ4BDIxIaZEBUcyKnpLsCnAcq4ceMwZswY/POf/wQAWK1WpKSk4N5778Wjjz561vnTp09HTU0NvvzyS9t15557LkaOHIk33njDqedkgEJaZbFK2HC4DB//WoA1e4vbDT4chRgN9iDEIRjx1ioVLVu+LR+P/G83kiOD8N7tYzHAT1bOWKwSfss/g7X7S7A2p7jF6hcASOsRgsmDEzB5cDzGpMUg0KBHrbkJOYXNwciJSuw5WYGDxVUtsjKy4EADhiRHYFhyBIYmR2Jozwj0jw/XdI8eq1VCWU0DiirqxVdlPQrlY9v3dahvdC4LqNcBMaEmxIYZ0SPMiB6hJvQIMyI2zIQeoUbEhBrRI0y+3YRQo4ErEzXIZwGK2WxGSEgIPvnkE1x99dW262fOnIny8nJ89tlnZ90nNTUV8+bNw/3332+7buHChVi1ahV27tzZ5vM0NDSgocE+915ZWYmUlBQGKKRpZ2rM+HznSXz8awH2nqxEgF6HvnFhGJgYLr4SxGXPqGB+MnSw72QlUmKCvdooztsKTtdibU4x1u4vweYjLaeCwoMCEB9uQl5ZDdpKMEQEBWBYz0gM6xmJoc0BSXpsqCayXEqTJAkVdY0tgpfCinoUV9SjsLIeRRV1KK5sQEVdY+cP1oopQC+ClzAjeoQqH7R0h9jn9gnpTm+T4ixPAhSX1u6VlZXBYrEgISGhxfUJCQnYv39/m/cpKipq8/yioqJ2n2fRokV46qmnXBkakeqiQ42YeV4aZp6XhtKqBkQGB2r6E69WDEn2/w8dKTEhmDUhHbMmpKO6oQnrD5bi+5wS/HigBKdrzLYmaXHhJgxLjmgRjPSKDu42n/x1Oh2iQoyICjFiUGL7P/dGixVnaswoqzbjVE0DTlWbUVbdgFM1Zpyqbv7e4biuUdRnnSiva7HiiFwzLSNZ8QDFE5psEzh//nzMmzfP9r2cQSHyF3Hh3W+6hoQwUwCmDk/C1OFJsFgl7Dxejsq6RgxJikB8RPfa78ldgQY94iOCnH69as1NOFVtbhHAlFY3oL6NWp7WnJlDkKD5xa6KSNDY76dLAUpsbCwMBgOKi4tbXF9cXIzExLbbVicmJrp0PgCYTCaYTPwDT0T+zaDX4ZzUaLWH0eWFGAMQEhOgqU//5DmX8s9GoxGjR4/G2rVrbddZrVasXbsW48ePb/M+48ePb3E+AKxZs6bd84mIiIhcnuKZN28eZs6ciczMTIwdOxaLFy9GTU0NZs+eDQCYMWMGevbsiUWLFgEA7rvvPlxwwQV44YUXcPnll2PZsmX49ddf8e9//1vZfwkRERF1GS4HKNOnT0dpaSkWLFiAoqIijBw5Et98842tEDY/Px96vT0xc95552Hp0qV4/PHH8dhjj6F///5YtWqV0z1QiIiIqPthq3siIiLyCk/ev7kGkoiIiDSHAQoRERFpDgMUIiIi0hwGKERERKQ5DFCIiIhIcxigEBERkeYwQCEiIiLNYYBCREREmsMAhYiIiDTH5Vb3apCb3VZWVqo8EiIiInKW/L7tTtN6vwhQqqqqAAApKSkqj4SIiIhcVVVVhcjISJfu4xd78VitVpw8eRLh4eHQ6XSKPW5lZSVSUlJQUFDAPX58iK+7Ovi6q4Ovuzr4uquj9esuSRKqqqqQnJzcYiNhZ/hFBkWv16NXr15ee/yIiAj+AquAr7s6+Lqrg6+7Ovi6q8PxdXc1cyJjkSwRERFpDgMUIiIi0pxuHaCYTCYsXLgQJpNJ7aF0K3zd1cHXXR183dXB110dSr7uflEkS0RERN1Lt86gEBERkTYxQCEiIiLNYYBCREREmsMAhYiIiDSnWwcoS5YsQVpaGoKCgjBu3Dhs3bpV7SF1aU8++SR0Ol2Lr0GDBqk9rC7n559/xrRp05CcnAydTodVq1a1uF2SJCxYsABJSUkIDg5GVlYWDh06pM5gu5DOXvdZs2ad9ft/6aWXqjPYLmLRokUYM2YMwsPDER8fj6uvvhoHDhxocU59fT3mzJmDHj16ICwsDNdddx2Ki4tVGnHX4MzrfuGFF571+3733Xe79DzdNkBZvnw55s2bh4ULF2LHjh3IyMjAlClTUFJSovbQurShQ4eisLDQ9rVhwwa1h9Tl1NTUICMjA0uWLGnz9meffRavvPIK3njjDWzZsgWhoaGYMmUK6uvrfTzSrqWz1x0ALr300ha//x999JEPR9j1/PTTT5gzZw42b96MNWvWoLGxEZdccglqamps5zzwwAP44osvsGLFCvz00084efIkrr32WhVH7f+ced0B4K677mrx+/7ss8+69kRSNzV27Fhpzpw5tu8tFouUnJwsLVq0SMVRdW0LFy6UMjIy1B5GtwJAWrlype17q9UqJSYmSs8995ztuvLycslkMkkfffSRCiPsmlq/7pIkSTNnzpSuuuoqVcbTXZSUlEgApJ9++kmSJPG7HRgYKK1YscJ2Tk5OjgRA2rRpk1rD7HJav+6SJEkXXHCBdN9993n0uN0yg2I2m7F9+3ZkZWXZrtPr9cjKysKmTZtUHFnXd+jQISQnJ6NPnz649dZbkZ+fr/aQupW8vDwUFRW1+N2PjIzEuHHj+LvvA+vWrUN8fDwGDhyIe+65B6dOnVJ7SF1KRUUFACAmJgYAsH37djQ2Nrb4fR80aBBSU1P5+66g1q+77MMPP0RsbCyGDRuG+fPno7a21qXH9YvNApVWVlYGi8WChISEFtcnJCRg//79Ko2q6xs3bhzee+89DBw4EIWFhXjqqacwadIk7NmzB+Hh4WoPr1soKioCgDZ/9+XbyDsuvfRSXHvttUhPT0dubi4ee+wxTJ06FZs2bYLBYFB7eH7ParXi/vvvx4QJEzBs2DAA4vfdaDQiKiqqxbn8fVdOW687ANxyyy3o3bs3kpOTsWvXLjzyyCM4cOAAPv30U6cfu1sGKKSOqVOn2o5HjBiBcePGoXfv3vj4449xxx13qDgyIu+76aabbMfDhw/HiBEj0LdvX6xbtw6TJ09WcWRdw5w5c7Bnzx7WtflYe6/7//3f/9mOhw8fjqSkJEyePBm5ubno27evU4/dLad4YmNjYTAYzqrkLi4uRmJiokqj6n6ioqIwYMAAHD58WO2hdBvy7zd/99XXp08fxMbG8vdfAXPnzsWXX36JH3/8Eb169bJdn5iYCLPZjPLy8hbn8/ddGe297m0ZN24cALj0+94tAxSj0YjRo0dj7dq1tuusVivWrl2L8ePHqziy7qW6uhq5ublISkpSeyjdRnp6OhITE1v87ldWVmLLli383fex48eP49SpU/z994AkSZg7dy5WrlyJH374Aenp6S1uHz16NAIDA1v8vh84cAD5+fn8ffdAZ697W7KzswHApd/3bjvFM2/ePMycOROZmZkYO3YsFi9ejJqaGsyePVvtoXVZDz74IKZNm4bevXvj5MmTWLhwIQwGA26++Wa1h9alVFdXt/iUkpeXh+zsbMTExCA1NRX3338//vrXv6J///5IT0/HE088geTkZFx99dXqDboL6Oh1j4mJwVNPPYXrrrsOiYmJyM3NxcMPP4x+/fphypQpKo7av82ZMwdLly7FZ599hvDwcFtdSWRkJIKDgxEZGYk77rgD8+bNQ0xMDCIiInDvvfdi/PjxOPfcc1Uevf/q7HXPzc3F0qVLcdlll6FHjx7YtWsXHnjgAZx//vkYMWKE80/k0RogP/fqq69KqampktFolMaOHStt3rxZ7SF1adOnT5eSkpIko9Eo9ezZU5o+fbp0+PBhtYfV5fz4448SgLO+Zs6cKUmSWGr8xBNPSAkJCZLJZJImT54sHThwQN1BdwEdve61tbXSJZdcIsXFxUmBgYFS7969pbvuuksqKipSe9h+ra3XG4D07rvv2s6pq6uT/vCHP0jR0dFSSEiIdM0110iFhYXqDboL6Ox1z8/Pl84//3wpJiZGMplMUr9+/aSHHnpIqqiocOl5dM1PRkRERKQZ3bIGhYiIiLSNAQoRERFpDgMUIiIi0hwGKERERKQ5DFCIiIhIcxigEBERkeYwQCEiIiLNYYBCREREmsMAhYiIiDSHAQoRERFpDgMUIiIi0hwGKERERKQ5/x955kxqbzJyXwAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# loss\n",
"plt.plot(r.history['loss'], label='train loss')\n",
"plt.plot(r.history['val_loss'], label='val loss')\n",
"plt.legend()\n",
"plt.show()\n",
"plt.savefig('LossVal_loss')\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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mDHDrOHcdtttNX7++OOP4efnh61bt2L06NHYtGkT9u7di1OnTqFTp04AYGrEDABvvvkm+vbti/fff990Xffu3c06t5w4E9OAXG6xJiIiK0ycOBGrV69GWVkZAODrr7/GhAkTTC16CgsL8dxzz6Fr167w8/ODl5cXTp06ZdFMTGZmJqZOnYqoqCj4+vrCx8cHhYWFpvs4fPgw2rVrZwpgrmeciXE2nIlpAJeTiIgUys1TzIjIdW4zjRkzBpIk4ZdffkG/fv2wfft2vPvuu6bfP/fcc9i4cSPefvttdOzYER4eHrj33ntRXl5u9jkmTZqEK1euYPHixWjfvj3c3d0xYMAA0314eHjUe/uGfq9UDGIaYAxifBjEEBEpi0pl1pKO3LRaLe6++258/fXXOHv2LDp37ozevXubfr9z505MnjwZ48aNAyBmZi5cuGDROXbu3In3338f8fHxAIDU1FTk5OSYft+rVy9cunQJiYmJtc7G9OrVCwkJCXjllVca8RfKh8tJDeAWayIistbEiRPxyy+/4NNPPzUl9BpFRUVhzZo1OHz4MI4cOYIHH3zwht1MDYmKisKKFStw6tQp7NmzBxMnTqwxuzJ06FAMGTIE99xzDzZu3Ijz58/jt99+w4YNosHx7NmzsW/fPjz55JM4evQoTp8+jQ8++KBGIKREDGIaMHVwBB4bEok2vs451UZERPK77bbb0LJlS5w5cwYPPvhgjd8tXLgQ/v7+GDhwIMaMGYO4uLgaMzXm+OSTT3Dt2jX07t0bf//73/H0008jMDCwxjGrV69Gv3798MADD6Bbt254/vnnTbuPOnXqhD/++ANHjhxB//79MWDAAPz4449wdVX2go1KkszcJ6Zw1rTyJiIi5SstLcX58+cREREBrVYr93DIAvX921nz/s2ZGCIiInJKDGKIiIjIKTGIISIiIqfEIIaIiIicEoMYIiIickoMYoiIyKlYWkOF5GevfzNlbwAnIiKqpNFooFarcfnyZbRu3RoajQYqlUruYVE9JElCeXk5srOzoVarodFobHr/DGKIiMgpqNVqREREID09HZcvy9QziRrF09MTYWFhpqaXtsIghoiInIZGo0FYWBgqKipM1WZJ2VxcXODq6mqXWTMGMURE5FRUKhXc3Nzg5saeds0dE3uJiIjIKTGIISIiIqfEIIaIiIicUpPJiTE2487P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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# accuracies\n",
"plt.plot(r.history['accuracy'], label='train acc')\n",
"plt.plot(r.history['val_accuracy'], label='val acc')\n",
"plt.legend()\n",
"plt.show()\n",
"plt.savefig('AccVal_acc')\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"model.save('resnet_1.h5')"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"29/29 [==============================] - 55s 2s/step - loss: 0.3070 - accuracy: 0.9828\n"
]
},
{
"data": {
"text/plain": [
"[0.30702900886535645, 0.982758641242981]"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.evaluate(test_ds_v)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.1"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}