--- a +++ b/Notebook/Model/Densenet (1).ipynb @@ -0,0 +1,2922 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], + "source": [ + "import os\n", + "import pickle\n", + "import random\n", + "import glob\n", + "import datetime\n", + "import pandas as pd\n", + "import numpy as np\n", + "import cv2\n", + "import pydicom\n", + "from tqdm import tqdm\n", + "from joblib import delayed, Parallel\n", + "import zipfile\n", + "from pydicom.filebase import DicomBytesIO\n", + "import sys\n", + "from PIL import Image\n", + "import cv2\n", + "#from focal_loss import sparse_categorical_focal_loss\n", + "import keras\n", + "#import tensorflow_addons as tfa\n", + "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n", + "from keras.models import model_from_json\n", + "import tensorflow as tf\n", + "import keras\n", + "from keras.models import Sequential, Model\n", + "from keras.layers import Dense, Conv2D, Flatten, MaxPooling2D, GlobalAveragePooling2D, Dropout\n", + "from keras.applications.inception_v3 import InceptionV3\n", + "\n", + "# importing pyplot and image from matplotlib \n", + "import matplotlib.pyplot as plt \n", + "import matplotlib.image as mpimg \n", + "from keras.optimizers import SGD\n", + "from keras import backend\n", + "from keras.models import load_model\n", + "\n", + "from keras.preprocessing import image\n", + "import albumentations as A\n", + "\n", + "\n", + "from sklearn.metrics import classification_report, confusion_matrix, roc_auc_score, roc_curve\n", + "import tensorflow as tf" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from tensorflow.keras.losses import Reduction\n", + "\n", + "from tensorflow_addons.losses import SigmoidFocalCrossEntropy" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "base_url = '/home/ubuntu/kaggle/rsna-intracranial-hemorrhage-detection/'\n", + "TRAIN_DIR = '/home/ubuntu/kaggle/rsna-intracranial-hemorrhage-detection/stage_2_train/'\n", + "TEST_DIR = '/home/ubuntu/kaggle/rsna-intracranial-hemorrhage-detection/stage_2_test/'\n", + "image_dir = '/home/ubuntu/kaggle/rsna-intracranial-hemorrhage-detection/png/train/adjacent-brain-cropped/'\n", + "save_dir = 'home/ubuntu/kaggle/models/'\n", + "os.listdir(base_url)\n", + "\n", + "def png(image): \n", + " return image + '.png'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# learning rate scheduler" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "initial_learning_rate = 1e-2\n", + "first_decay_steps = 300\n", + "lr_decayed_fn = (\n", + " tf.keras.experimental.CosineDecayRestarts(\n", + " initial_learning_rate,\n", + " first_decay_steps))\n", + "opt = tf.keras.optimizers.Adam(learning_rate=lr_decayed_fn)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Weighted metrics" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from tensorflow.keras import backend as K\n", + "def _normalized_weighted_average(arr, weights=None):\n", + " \"\"\"\n", + " A simple Keras implementation that mimics that of \n", + " numpy.average(), specifically for this competition\n", + " \"\"\"\n", + " \n", + " if weights is not None:\n", + " scl = K.sum(weights)\n", + " weights = K.expand_dims(weights, axis=1)\n", + " return K.sum(K.dot(arr, weights), axis=1) / scl\n", + " return K.mean(arr, axis=1)\n", + "\n", + "\n", + "def weighted_loss(y_true, y_pred):\n", + " \"\"\"\n", + " Will be used as the metric in model.compile()\n", + " ---------------------------------------------\n", + " \n", + " Similar to the custom loss function 'weighted_log_loss()' above\n", + " but with normalized weights, which should be very similar \n", + " to the official competition metric:\n", + " https://www.kaggle.com/kambarakun/lb-probe-weights-n-of-positives-scoring\n", + " and hence:\n", + " sklearn.metrics.log_loss with sample weights\n", + " \"\"\"\n", + " \n", + " class_weights = K.variable([2., 1., 1., 1., 1., 1.])\n", + " \n", + " eps = K.epsilon()\n", + " \n", + " y_pred = K.clip(y_pred, eps, 1.0-eps)\n", + "\n", + " loss = -( y_true * K.log( y_pred)\n", + " + (1.0 - y_true) * K.log(1.0 - y_pred))\n", + " \n", + " loss_samples = _normalized_weighted_average(loss, class_weights)\n", + " \n", + " return K.mean(loss_samples)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Data generator" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "train_idg = ImageDataGenerator(\n", + " featurewise_center=False, # set input mean to 0 over the dataset\n", + " samplewise_center=False, # set each sample mean to 0\n", + " featurewise_std_normalization=False, # divide inputs by std of the dataset\n", + " samplewise_std_normalization=False, # divide each input by its std\n", + " zca_whitening=False, # apply ZCA whitening\n", + " rotation_range=50, # randomly rotate images in the range (degrees, 0 to 180)\n", + " width_shift_range=0.1, # randomly shift images horizontally (fraction of total width)\n", + " height_shift_range=0.1, # randomly shift images vertically (fraction of total height)\n", + " horizontal_flip=True,\n", + " rescale=1./255)\n", + "valid_idg = ImageDataGenerator(rescale=1./255)\n", + "training_data = pd.read_csv(f'train_0.csv') \n", + "training_data['Image'] = training_data['Image'].apply(png)\n", + "\n", + "validation_data = pd.read_csv(f'valid_0.csv')\n", + "validation_data['Image'] = validation_data['Image'].apply(png)\n", + "\n", + "columns=['any','epidural','intraparenchymal','intraventricular', 'subarachnoid','subdural']\n", + "\n", + "#train_data_generator = train_idg.flow_from_dataframe(training_data, directory = image_dir,\n", + "# x_col = \"Image\", y_col = columns,batch_size=64,\n", + "# class_mode=\"raw\", target_size=(224,224), shuffle = True)\n", + "#valid_data_generator = valid_idg.flow_from_dataframe(validation_data, directory = image_dir,\n", + "# x_col = \"Image\", y_col = columns,batch_size=64,\n", + "# class_mode = \"raw\",target_size=(224,224), shuffle = False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# under-sampling" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def undersample(dataframe,steps,batch_size):\n", + " part = np.int(steps/3 * batch_size)\n", + " zero_ids = np.random.choice(dataframe.loc[dataframe[\"any\"] == 0].index.values, size=2*part, replace=False)\n", + " hot_ids = np.random.choice(dataframe.loc[dataframe[\"any\"] == 1].index.values, size=1*part, replace=False)\n", + " data_ids = list(set(zero_ids).union(hot_ids))\n", + " np.random.shuffle(data_ids)\n", + " return data_ids\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "257598\n" + ] + } + ], + "source": [ + "train_indices = undersample(training_data, 8050,32)\n", + "print(len(train_indices))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "64320\n" + ] + } + ], + "source": [ + "valid_indices = undersample(validation_data, 2010,32)\n", + "print(len(valid_indices))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "l = training_data[training_data.index.isin(train_indices)]\n", + "m = validation_data[validation_data.index.isin(valid_indices)]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "z = l[['any','epidural','intraparenchymal','intraventricular', 'subarachnoid','subdural']]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<matplotlib.axes._subplots.AxesSubplot at 0x7fde0e202cf8>" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import seaborn as sns\n", + "sns.countplot(z.iloc[:,1])" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.0 2553\n", + "Name: epidural, dtype: int64" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "q = z.iloc[:,1]\n", + "q[q==1].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found 257598 validated image filenames.\n", + "Found 64320 validated image filenames.\n" + ] + } + ], + "source": [ + "train_under_generator = train_idg.flow_from_dataframe(l, directory = image_dir,\n", + " x_col = \"Image\", y_col = columns,batch_size=32,\n", + " class_mode=\"raw\", target_size=(224,224), shuffle = True)\n", + "valid_under_generator = valid_idg.flow_from_dataframe(m, directory = image_dir,\n", + " x_col = \"Image\", y_col = columns,batch_size=32,\n", + " class_mode = \"raw\",target_size=(224,224), shuffle = False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# model" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "<tensorflow.python.keras.engine.input_layer.InputLayer object at 0x7f5c5d3c7518>\n", + "<tensorflow.python.keras.layers.convolutional.ZeroPadding2D object at 0x7f5c5cbdd860>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5cbddeb8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5cbd4438>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5cc85c18>\n", + "<tensorflow.python.keras.layers.convolutional.ZeroPadding2D object at 0x7f5c5cc85f98>\n", + "<tensorflow.python.keras.layers.pooling.MaxPooling2D object at 0x7f5c5da745c0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5cd440b8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5cd44748>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5cd44a58>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5cd49ba8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5cd49f28>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5cd41160>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5cd6d6d8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5cd6d9b0>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5cd6da90>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5cd6dd30>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5cd395c0>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5cd39978>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5cd399b0>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5cd150f0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5cd153c8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5cd154a8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5cd15748>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5cd35160>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5cd35390>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5cd353c8>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5c4b2ac8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c4b2da0>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c4880b8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c488128>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c4839b0>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c483d30>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c483f98>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5c45f4e0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c45f7b8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c45f898>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c45fb38>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c4733c8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c473780>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c4737b8>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5cc83f28>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5ccbc1d0>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5ccbc2b0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5ccbc550>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5cca2da0>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5ccaa198>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5ccaa1d0>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5cc498d0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5cc49ba8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5cc49eb8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5cc69198>\n", + "<tensorflow.python.keras.layers.pooling.AveragePooling2D object at 0x7f5c5cc7e7b8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5cc7ee48>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5cc7ef98>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5cc4f470>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c39e5f8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c39e9b0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c39e9e8>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5c3b3128>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c3b3400>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c3b34e0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c3b3780>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c358198>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c3583c8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c358400>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5c372b00>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c372dd8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c3790f0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c379160>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c3149e8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c314d68>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c314f28>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5c336518>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c3367f0>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c3368d0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c336b70>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c2d8400>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c2d87b8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c2d87f0>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5c2f2f60>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c2f7208>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c2f72e8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c2f7588>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c296dd8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c2991d0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c299208>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5c2b5908>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c2b5be0>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c2b5ef0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c2ba1d0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c2577f0>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c257ba8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c257be0>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5c276320>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c2765f8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c2766d8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c276978>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c218208>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c2185c0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c2185f8>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5c233cf8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c2383c8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c2380f0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c238390>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c1d9be0>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c1d9f60>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c1dc198>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5c1f7710>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c1f79e8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c1f7ac8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c1f7d68>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c1995f8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c1999b0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c1999e8>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5c1b8128>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c1b8400>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c1b84e0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c1b8780>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c15a198>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c15a3c8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c15a400>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5c172b00>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c172dd8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c17a0f0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c17a198>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c1179e8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c117d68>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c117f28>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5c136518>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c1367f0>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c1368d0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c136b70>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c0d9400>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c0d97b8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c0d97f0>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5c0f5f60>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c0f8208>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c0f82e8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c0f8588>\n", + "<tensorflow.python.keras.layers.pooling.AveragePooling2D object at 0x7f5c5c096dd8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c09c4a8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c09ca90>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c09c630>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c0b8c18>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c0b8f98>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c0be048>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5c05a748>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c05aa20>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c05ab38>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c05af60>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c07b630>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c07b9e8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c07ba20>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c567da160>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c567da438>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c567da518>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c567da7b8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c567f9048>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c567f9400>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c567f9438>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c56795b38>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56795e10>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c56797208>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c567971d0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c567b8a20>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c567b8da0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c567b8f60>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c56758550>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56758828>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c56758908>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c56758ba8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5677a438>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5677a7f0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5677a828>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c56718f98>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5671b240>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5671b320>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5671b5c0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56736e10>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5673b208>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5673b240>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c566d9940>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c566d9c18>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c566d9f28>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c566df208>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c566fc828>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c566fcbe0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c566fcc18>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c56699358>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56699630>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c56699710>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c566999b0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5663d240>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5663d5f8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5663d630>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5665ad30>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5665d400>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5665d128>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5665d3c8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c565fdc18>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c565fdf98>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c56600048>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c56619748>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56619a20>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c56619b38>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c56619f60>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c565be630>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c565be9e8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c565bea20>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c565dc160>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c565dc438>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c565dc518>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c565dc7b8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5657d048>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5657d400>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5657d438>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5659cb38>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5659ce10>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c565a0208>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c565a01d0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5653da20>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5653dda0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5653df60>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5655d550>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5655d828>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5655d908>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5655dba8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c564ff438>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c564ff7f0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c564ff828>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5651cf98>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56520240>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c56520320>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c565205c0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5653ce10>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c564bf208>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c564bf240>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c564dd940>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c564ddc18>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c564ddf28>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c564e4208>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5647e828>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5647ebe0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5647ec18>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5649f358>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5649f630>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5649f710>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5649f9b0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5643f240>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5643f5f8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5643f630>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5645dd30>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56461400>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c56461128>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c564613c8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c563ffc18>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c563fff98>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c56403048>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5641f748>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5641fa20>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5641fb38>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5641ff60>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c563c2630>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c563c29e8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c563c2a20>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c563e1160>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c563e1438>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c563e1518>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c563e17b8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56381048>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c56381400>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c56381438>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c563a0b38>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c563a0e10>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c563a5208>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c563a51d0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5633ea20>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5633eda0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5633ef60>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c56361550>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56361828>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c56361908>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c56361ba8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56302438>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c563027f0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c56302828>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5631ef98>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56323240>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c56323320>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c563235c0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c562c0e10>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c562c2208>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c562c2240>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c562e1940>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c562e1c18>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c562e1f28>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c562e6208>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56285828>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c56285be0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c56285c18>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c562a3358>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c562a3630>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c562a3710>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c562a39b0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56244240>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c562445f8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c56244630>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c56261d30>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56265400>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c56265128>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c562653c8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56205c18>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c56205f98>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c56209048>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c56225748>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56225a20>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c56225b38>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c56225f60>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c561c6630>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c561c69e8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c561c6a20>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c561e5160>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c561e5438>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c561e5518>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c561e57b8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56187048>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c56187400>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c56187438>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c561a4b38>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c561a4e10>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c561ac208>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c561ac1d0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56148a20>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c56148da0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c56148f60>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c56167550>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c56167828>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c56167908>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c56167ba8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5610a438>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5610a7f0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5610a828>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c56128f98>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5612c240>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5612c320>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5612c5c0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c560c8e10>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c560cc208>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c560cc240>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c560ea940>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c560eac18>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c560eaf28>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c560ef208>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5608b828>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5608bbe0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5608bc18>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c560ab358>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c560ab630>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c560ab710>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c560ab9b0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5604e240>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5604e5f8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5604e630>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5606dd30>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5606f400>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5606f128>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5606f3c8>\n", + "<tensorflow.python.keras.layers.pooling.AveragePooling2D object at 0x7f5c5600cc18>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5600cfd0>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c560108d0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c56010470>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5602ea58>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5602ee48>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c56036128>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55fd0588>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55fd0860>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55fd0940>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55fd0be0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55ff1470>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55ff1828>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55ff1860>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55f8dfd0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55f92278>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55f92358>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55f925f8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55fb0e48>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55fb4240>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55fb4278>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55f4f978>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55f4fc50>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55f4ffd0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55f57048>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55f73860>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55f73c18>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55f73c50>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55f13390>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55f13668>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55f13748>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55f139e8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55f35278>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55f35630>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55f35668>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55ed1d68>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55ed6080>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55ed6160>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55ed6400>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55ef4c50>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55ef7240>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55ef7080>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55e95780>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55e95a58>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55e95400>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55e95f98>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55eb5668>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55eb5a20>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55eb5a58>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55e54198>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55e54470>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55e54550>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55e547f0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55e74080>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55e74438>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55e74470>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55e16b70>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55e16e48>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55e1d240>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55e1d208>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55e38a58>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55e38e48>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55dbd128>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55dd8588>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55dd8860>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55dd8940>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55dd8be0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55dfa470>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55dfa828>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55dfa860>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55d95fd0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55d99278>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55d99358>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55d995f8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55db9e48>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55d3d240>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55d3d278>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55d59978>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55d59c50>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55d59fd0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55d5d048>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55d7c860>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55d7cc18>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55d7cc50>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55d1c390>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55d1c668>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55d1c748>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55d1c9e8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55cbe278>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55cbe630>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55cbe668>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55cddd68>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55ce0080>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55ce0160>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55ce0400>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55cfbc50>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55c80240>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55c80080>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55c9e780>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55c9ea58>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55c9e400>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55c9ef98>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55c3d668>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55c3da20>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55c3da58>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55c61198>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55c61470>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55c61550>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55c617f0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55c01080>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55c01438>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55c01470>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55c1cb70>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55c1ce48>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55c22240>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55c22208>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55bbea58>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55bbee48>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55bc5128>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55be3588>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55be3860>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55be3940>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55be3be0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55b84470>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55b84828>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55b84860>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55ba1fd0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55ba4278>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55ba4358>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55ba45f8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55b42e48>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55b45240>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55b45278>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55b65978>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55b65c50>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55b65fd0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55b69048>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55b05860>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55b05c18>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55b05c50>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55b25390>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55b25668>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55b25748>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55b259e8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55ac7278>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55ac7630>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55ac7668>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55ae5d68>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55aeb080>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55aeb160>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55aeb400>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55a87c50>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55a8c240>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55a8c080>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55aa7780>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55aa7a58>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55aa7400>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55aa7f98>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55a4a668>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55a4aa20>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55a4aa58>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55a66198>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55a66470>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55a66550>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55a667f0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55a0c080>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55a0c438>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55a0c470>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55a28b70>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55a28e48>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55a2e240>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c55a2e208>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c559cba58>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c559cbe48>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c559cf128>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c559eb588>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c559eb860>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c559eb940>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c559ebbe0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c9377f0>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c937ac8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c937b70>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5dc45630>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5dc45748>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5cd01e86a0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5cd01e8860>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c3ccc18>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c3cceb8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c3ccc50>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5c693908>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c74e160>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c6931d0>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c693ef0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5d0034e550>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c4d60b8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5cd0157d68>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5d326048>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5d32b5c0>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5d32b160>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5d32bba8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5c4ffdd8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5c94c048>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5c94c080>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5da67a20>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5da67f28>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5da67ba8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5da677b8>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5da749e8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5da744a8>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5da74160>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c5dc4ba20>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c5dc4b0b8>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c5dc4b208>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c5dc4bb38>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c558fe470>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c558fe828>\n", + "<tensorflow.python.keras.layers.convolutional.Conv2D object at 0x7f5c558fe860>\n", + "<tensorflow.python.keras.layers.merge.Concatenate object at 0x7f5c55913fd0>\n", + "<tensorflow.python.keras.layers.normalization_v2.BatchNormalization object at 0x7f5c55918278>\n", + "<tensorflow.python.keras.layers.core.Activation object at 0x7f5c55918358>\n" + ] + } + ], + "source": [ + "from tensorflow.keras.applications.densenet import DenseNet169\n", + "#base_model = DenseNet169(weights='imagenet', include_top=False, input_shape=(224,224,3))\n", + "\n", + "for layer in base_model.layers[:-7]:\n", + " print(layer)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: \"functional_1\"\n", + "__________________________________________________________________________________________________\n", + "Layer (type) Output Shape Param # Connected to \n", + "==================================================================================================\n", + "input_1 (InputLayer) [(None, 224, 224, 3) 0 \n", + "__________________________________________________________________________________________________\n", + "zero_padding2d (ZeroPadding2D) (None, 230, 230, 3) 0 input_1[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv1/conv (Conv2D) (None, 112, 112, 64) 9408 zero_padding2d[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv1/bn (BatchNormalization) (None, 112, 112, 64) 256 conv1/conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv1/relu (Activation) (None, 112, 112, 64) 0 conv1/bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "zero_padding2d_1 (ZeroPadding2D (None, 114, 114, 64) 0 conv1/relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "pool1 (MaxPooling2D) (None, 56, 56, 64) 0 zero_padding2d_1[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block1_0_bn (BatchNormali (None, 56, 56, 64) 256 pool1[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block1_0_relu (Activation (None, 56, 56, 64) 0 conv2_block1_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block1_1_conv (Conv2D) (None, 56, 56, 128) 8192 conv2_block1_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block1_1_bn (BatchNormali (None, 56, 56, 128) 512 conv2_block1_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block1_1_relu (Activation (None, 56, 56, 128) 0 conv2_block1_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block1_2_conv (Conv2D) (None, 56, 56, 32) 36864 conv2_block1_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block1_concat (Concatenat (None, 56, 56, 96) 0 pool1[0][0] \n", + " conv2_block1_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block2_0_bn (BatchNormali (None, 56, 56, 96) 384 conv2_block1_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block2_0_relu (Activation (None, 56, 56, 96) 0 conv2_block2_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block2_1_conv (Conv2D) (None, 56, 56, 128) 12288 conv2_block2_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block2_1_bn (BatchNormali (None, 56, 56, 128) 512 conv2_block2_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block2_1_relu (Activation (None, 56, 56, 128) 0 conv2_block2_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block2_2_conv (Conv2D) (None, 56, 56, 32) 36864 conv2_block2_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block2_concat (Concatenat (None, 56, 56, 128) 0 conv2_block1_concat[0][0] \n", + " conv2_block2_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block3_0_bn (BatchNormali (None, 56, 56, 128) 512 conv2_block2_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block3_0_relu (Activation (None, 56, 56, 128) 0 conv2_block3_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block3_1_conv (Conv2D) (None, 56, 56, 128) 16384 conv2_block3_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block3_1_bn (BatchNormali (None, 56, 56, 128) 512 conv2_block3_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block3_1_relu (Activation (None, 56, 56, 128) 0 conv2_block3_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block3_2_conv (Conv2D) (None, 56, 56, 32) 36864 conv2_block3_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block3_concat (Concatenat (None, 56, 56, 160) 0 conv2_block2_concat[0][0] \n", + " conv2_block3_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block4_0_bn (BatchNormali (None, 56, 56, 160) 640 conv2_block3_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block4_0_relu (Activation (None, 56, 56, 160) 0 conv2_block4_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block4_1_conv (Conv2D) (None, 56, 56, 128) 20480 conv2_block4_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block4_1_bn (BatchNormali (None, 56, 56, 128) 512 conv2_block4_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block4_1_relu (Activation (None, 56, 56, 128) 0 conv2_block4_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block4_2_conv (Conv2D) (None, 56, 56, 32) 36864 conv2_block4_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block4_concat (Concatenat (None, 56, 56, 192) 0 conv2_block3_concat[0][0] \n", + " conv2_block4_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block5_0_bn (BatchNormali (None, 56, 56, 192) 768 conv2_block4_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block5_0_relu (Activation (None, 56, 56, 192) 0 conv2_block5_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block5_1_conv (Conv2D) (None, 56, 56, 128) 24576 conv2_block5_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block5_1_bn (BatchNormali (None, 56, 56, 128) 512 conv2_block5_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block5_1_relu (Activation (None, 56, 56, 128) 0 conv2_block5_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block5_2_conv (Conv2D) (None, 56, 56, 32) 36864 conv2_block5_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block5_concat (Concatenat (None, 56, 56, 224) 0 conv2_block4_concat[0][0] \n", + " conv2_block5_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block6_0_bn (BatchNormali (None, 56, 56, 224) 896 conv2_block5_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block6_0_relu (Activation (None, 56, 56, 224) 0 conv2_block6_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block6_1_conv (Conv2D) (None, 56, 56, 128) 28672 conv2_block6_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block6_1_bn (BatchNormali (None, 56, 56, 128) 512 conv2_block6_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block6_1_relu (Activation (None, 56, 56, 128) 0 conv2_block6_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block6_2_conv (Conv2D) (None, 56, 56, 32) 36864 conv2_block6_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv2_block6_concat (Concatenat (None, 56, 56, 256) 0 conv2_block5_concat[0][0] \n", + " conv2_block6_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "pool2_bn (BatchNormalization) (None, 56, 56, 256) 1024 conv2_block6_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "pool2_relu (Activation) (None, 56, 56, 256) 0 pool2_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "pool2_conv (Conv2D) (None, 56, 56, 128) 32768 pool2_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "pool2_pool (AveragePooling2D) (None, 28, 28, 128) 0 pool2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block1_0_bn (BatchNormali (None, 28, 28, 128) 512 pool2_pool[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block1_0_relu (Activation (None, 28, 28, 128) 0 conv3_block1_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block1_1_conv (Conv2D) (None, 28, 28, 128) 16384 conv3_block1_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block1_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block1_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block1_1_relu (Activation (None, 28, 28, 128) 0 conv3_block1_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block1_2_conv (Conv2D) (None, 28, 28, 32) 36864 conv3_block1_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block1_concat (Concatenat (None, 28, 28, 160) 0 pool2_pool[0][0] \n", + " conv3_block1_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block2_0_bn (BatchNormali (None, 28, 28, 160) 640 conv3_block1_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block2_0_relu (Activation (None, 28, 28, 160) 0 conv3_block2_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block2_1_conv (Conv2D) (None, 28, 28, 128) 20480 conv3_block2_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block2_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block2_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block2_1_relu (Activation (None, 28, 28, 128) 0 conv3_block2_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block2_2_conv (Conv2D) (None, 28, 28, 32) 36864 conv3_block2_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block2_concat (Concatenat (None, 28, 28, 192) 0 conv3_block1_concat[0][0] \n", + " conv3_block2_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block3_0_bn (BatchNormali (None, 28, 28, 192) 768 conv3_block2_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block3_0_relu (Activation (None, 28, 28, 192) 0 conv3_block3_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block3_1_conv (Conv2D) (None, 28, 28, 128) 24576 conv3_block3_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block3_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block3_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block3_1_relu (Activation (None, 28, 28, 128) 0 conv3_block3_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block3_2_conv (Conv2D) (None, 28, 28, 32) 36864 conv3_block3_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block3_concat (Concatenat (None, 28, 28, 224) 0 conv3_block2_concat[0][0] \n", + " conv3_block3_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block4_0_bn (BatchNormali (None, 28, 28, 224) 896 conv3_block3_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block4_0_relu (Activation (None, 28, 28, 224) 0 conv3_block4_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block4_1_conv (Conv2D) (None, 28, 28, 128) 28672 conv3_block4_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block4_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block4_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block4_1_relu (Activation (None, 28, 28, 128) 0 conv3_block4_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block4_2_conv (Conv2D) (None, 28, 28, 32) 36864 conv3_block4_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block4_concat (Concatenat (None, 28, 28, 256) 0 conv3_block3_concat[0][0] \n", + " conv3_block4_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block5_0_bn (BatchNormali (None, 28, 28, 256) 1024 conv3_block4_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block5_0_relu (Activation (None, 28, 28, 256) 0 conv3_block5_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block5_1_conv (Conv2D) (None, 28, 28, 128) 32768 conv3_block5_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block5_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block5_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block5_1_relu (Activation (None, 28, 28, 128) 0 conv3_block5_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block5_2_conv (Conv2D) (None, 28, 28, 32) 36864 conv3_block5_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block5_concat (Concatenat (None, 28, 28, 288) 0 conv3_block4_concat[0][0] \n", + " conv3_block5_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block6_0_bn (BatchNormali (None, 28, 28, 288) 1152 conv3_block5_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block6_0_relu (Activation (None, 28, 28, 288) 0 conv3_block6_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block6_1_conv (Conv2D) (None, 28, 28, 128) 36864 conv3_block6_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block6_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block6_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block6_1_relu (Activation (None, 28, 28, 128) 0 conv3_block6_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block6_2_conv (Conv2D) (None, 28, 28, 32) 36864 conv3_block6_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block6_concat (Concatenat (None, 28, 28, 320) 0 conv3_block5_concat[0][0] \n", + " conv3_block6_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block7_0_bn (BatchNormali (None, 28, 28, 320) 1280 conv3_block6_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block7_0_relu (Activation (None, 28, 28, 320) 0 conv3_block7_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block7_1_conv (Conv2D) (None, 28, 28, 128) 40960 conv3_block7_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block7_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block7_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block7_1_relu (Activation (None, 28, 28, 128) 0 conv3_block7_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block7_2_conv (Conv2D) (None, 28, 28, 32) 36864 conv3_block7_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block7_concat (Concatenat (None, 28, 28, 352) 0 conv3_block6_concat[0][0] \n", + " conv3_block7_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block8_0_bn (BatchNormali (None, 28, 28, 352) 1408 conv3_block7_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block8_0_relu (Activation (None, 28, 28, 352) 0 conv3_block8_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block8_1_conv (Conv2D) (None, 28, 28, 128) 45056 conv3_block8_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block8_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block8_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block8_1_relu (Activation (None, 28, 28, 128) 0 conv3_block8_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block8_2_conv (Conv2D) (None, 28, 28, 32) 36864 conv3_block8_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block8_concat (Concatenat (None, 28, 28, 384) 0 conv3_block7_concat[0][0] \n", + " conv3_block8_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block9_0_bn (BatchNormali (None, 28, 28, 384) 1536 conv3_block8_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block9_0_relu (Activation (None, 28, 28, 384) 0 conv3_block9_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block9_1_conv (Conv2D) (None, 28, 28, 128) 49152 conv3_block9_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block9_1_bn (BatchNormali (None, 28, 28, 128) 512 conv3_block9_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block9_1_relu (Activation (None, 28, 28, 128) 0 conv3_block9_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block9_2_conv (Conv2D) (None, 28, 28, 32) 36864 conv3_block9_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block9_concat (Concatenat (None, 28, 28, 416) 0 conv3_block8_concat[0][0] \n", + " conv3_block9_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block10_0_bn (BatchNormal (None, 28, 28, 416) 1664 conv3_block9_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block10_0_relu (Activatio (None, 28, 28, 416) 0 conv3_block10_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block10_1_conv (Conv2D) (None, 28, 28, 128) 53248 conv3_block10_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block10_1_bn (BatchNormal (None, 28, 28, 128) 512 conv3_block10_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block10_1_relu (Activatio (None, 28, 28, 128) 0 conv3_block10_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block10_2_conv (Conv2D) (None, 28, 28, 32) 36864 conv3_block10_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block10_concat (Concatena (None, 28, 28, 448) 0 conv3_block9_concat[0][0] \n", + " conv3_block10_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block11_0_bn (BatchNormal (None, 28, 28, 448) 1792 conv3_block10_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block11_0_relu (Activatio (None, 28, 28, 448) 0 conv3_block11_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block11_1_conv (Conv2D) (None, 28, 28, 128) 57344 conv3_block11_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block11_1_bn (BatchNormal (None, 28, 28, 128) 512 conv3_block11_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block11_1_relu (Activatio (None, 28, 28, 128) 0 conv3_block11_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block11_2_conv (Conv2D) (None, 28, 28, 32) 36864 conv3_block11_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block11_concat (Concatena (None, 28, 28, 480) 0 conv3_block10_concat[0][0] \n", + " conv3_block11_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block12_0_bn (BatchNormal (None, 28, 28, 480) 1920 conv3_block11_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block12_0_relu (Activatio (None, 28, 28, 480) 0 conv3_block12_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block12_1_conv (Conv2D) (None, 28, 28, 128) 61440 conv3_block12_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block12_1_bn (BatchNormal (None, 28, 28, 128) 512 conv3_block12_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block12_1_relu (Activatio (None, 28, 28, 128) 0 conv3_block12_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block12_2_conv (Conv2D) (None, 28, 28, 32) 36864 conv3_block12_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv3_block12_concat (Concatena (None, 28, 28, 512) 0 conv3_block11_concat[0][0] \n", + " conv3_block12_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "pool3_bn (BatchNormalization) (None, 28, 28, 512) 2048 conv3_block12_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "pool3_relu (Activation) (None, 28, 28, 512) 0 pool3_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "pool3_conv (Conv2D) (None, 28, 28, 256) 131072 pool3_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "pool3_pool (AveragePooling2D) (None, 14, 14, 256) 0 pool3_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block1_0_bn (BatchNormali (None, 14, 14, 256) 1024 pool3_pool[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block1_0_relu (Activation (None, 14, 14, 256) 0 conv4_block1_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block1_1_conv (Conv2D) (None, 14, 14, 128) 32768 conv4_block1_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block1_1_bn (BatchNormali (None, 14, 14, 128) 512 conv4_block1_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block1_1_relu (Activation (None, 14, 14, 128) 0 conv4_block1_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block1_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block1_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block1_concat (Concatenat (None, 14, 14, 288) 0 pool3_pool[0][0] \n", + " conv4_block1_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block2_0_bn (BatchNormali (None, 14, 14, 288) 1152 conv4_block1_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block2_0_relu (Activation (None, 14, 14, 288) 0 conv4_block2_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block2_1_conv (Conv2D) (None, 14, 14, 128) 36864 conv4_block2_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block2_1_bn (BatchNormali (None, 14, 14, 128) 512 conv4_block2_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block2_1_relu (Activation (None, 14, 14, 128) 0 conv4_block2_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block2_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block2_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block2_concat (Concatenat (None, 14, 14, 320) 0 conv4_block1_concat[0][0] \n", + " conv4_block2_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block3_0_bn (BatchNormali (None, 14, 14, 320) 1280 conv4_block2_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block3_0_relu (Activation (None, 14, 14, 320) 0 conv4_block3_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block3_1_conv (Conv2D) (None, 14, 14, 128) 40960 conv4_block3_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block3_1_bn (BatchNormali (None, 14, 14, 128) 512 conv4_block3_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block3_1_relu (Activation (None, 14, 14, 128) 0 conv4_block3_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block3_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block3_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block3_concat (Concatenat (None, 14, 14, 352) 0 conv4_block2_concat[0][0] \n", + " conv4_block3_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block4_0_bn (BatchNormali (None, 14, 14, 352) 1408 conv4_block3_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block4_0_relu (Activation (None, 14, 14, 352) 0 conv4_block4_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block4_1_conv (Conv2D) (None, 14, 14, 128) 45056 conv4_block4_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block4_1_bn (BatchNormali (None, 14, 14, 128) 512 conv4_block4_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block4_1_relu (Activation (None, 14, 14, 128) 0 conv4_block4_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block4_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block4_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block4_concat (Concatenat (None, 14, 14, 384) 0 conv4_block3_concat[0][0] \n", + " conv4_block4_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block5_0_bn (BatchNormali (None, 14, 14, 384) 1536 conv4_block4_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block5_0_relu (Activation (None, 14, 14, 384) 0 conv4_block5_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block5_1_conv (Conv2D) (None, 14, 14, 128) 49152 conv4_block5_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block5_1_bn (BatchNormali (None, 14, 14, 128) 512 conv4_block5_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block5_1_relu (Activation (None, 14, 14, 128) 0 conv4_block5_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block5_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block5_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block5_concat (Concatenat (None, 14, 14, 416) 0 conv4_block4_concat[0][0] \n", + " conv4_block5_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block6_0_bn (BatchNormali (None, 14, 14, 416) 1664 conv4_block5_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block6_0_relu (Activation (None, 14, 14, 416) 0 conv4_block6_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block6_1_conv (Conv2D) (None, 14, 14, 128) 53248 conv4_block6_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block6_1_bn (BatchNormali (None, 14, 14, 128) 512 conv4_block6_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block6_1_relu (Activation (None, 14, 14, 128) 0 conv4_block6_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block6_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block6_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block6_concat (Concatenat (None, 14, 14, 448) 0 conv4_block5_concat[0][0] \n", + " conv4_block6_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block7_0_bn (BatchNormali (None, 14, 14, 448) 1792 conv4_block6_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block7_0_relu (Activation (None, 14, 14, 448) 0 conv4_block7_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block7_1_conv (Conv2D) (None, 14, 14, 128) 57344 conv4_block7_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block7_1_bn (BatchNormali (None, 14, 14, 128) 512 conv4_block7_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block7_1_relu (Activation (None, 14, 14, 128) 0 conv4_block7_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block7_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block7_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block7_concat (Concatenat (None, 14, 14, 480) 0 conv4_block6_concat[0][0] \n", + " conv4_block7_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block8_0_bn (BatchNormali (None, 14, 14, 480) 1920 conv4_block7_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block8_0_relu (Activation (None, 14, 14, 480) 0 conv4_block8_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block8_1_conv (Conv2D) (None, 14, 14, 128) 61440 conv4_block8_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block8_1_bn (BatchNormali (None, 14, 14, 128) 512 conv4_block8_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block8_1_relu (Activation (None, 14, 14, 128) 0 conv4_block8_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block8_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block8_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block8_concat (Concatenat (None, 14, 14, 512) 0 conv4_block7_concat[0][0] \n", + " conv4_block8_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block9_0_bn (BatchNormali (None, 14, 14, 512) 2048 conv4_block8_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block9_0_relu (Activation (None, 14, 14, 512) 0 conv4_block9_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block9_1_conv (Conv2D) (None, 14, 14, 128) 65536 conv4_block9_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block9_1_bn (BatchNormali (None, 14, 14, 128) 512 conv4_block9_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block9_1_relu (Activation (None, 14, 14, 128) 0 conv4_block9_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block9_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block9_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block9_concat (Concatenat (None, 14, 14, 544) 0 conv4_block8_concat[0][0] \n", + " conv4_block9_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block10_0_bn (BatchNormal (None, 14, 14, 544) 2176 conv4_block9_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block10_0_relu (Activatio (None, 14, 14, 544) 0 conv4_block10_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block10_1_conv (Conv2D) (None, 14, 14, 128) 69632 conv4_block10_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block10_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block10_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block10_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block10_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block10_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block10_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block10_concat (Concatena (None, 14, 14, 576) 0 conv4_block9_concat[0][0] \n", + " conv4_block10_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block11_0_bn (BatchNormal (None, 14, 14, 576) 2304 conv4_block10_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block11_0_relu (Activatio (None, 14, 14, 576) 0 conv4_block11_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block11_1_conv (Conv2D) (None, 14, 14, 128) 73728 conv4_block11_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block11_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block11_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block11_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block11_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block11_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block11_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block11_concat (Concatena (None, 14, 14, 608) 0 conv4_block10_concat[0][0] \n", + " conv4_block11_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block12_0_bn (BatchNormal (None, 14, 14, 608) 2432 conv4_block11_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block12_0_relu (Activatio (None, 14, 14, 608) 0 conv4_block12_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block12_1_conv (Conv2D) (None, 14, 14, 128) 77824 conv4_block12_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block12_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block12_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block12_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block12_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block12_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block12_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block12_concat (Concatena (None, 14, 14, 640) 0 conv4_block11_concat[0][0] \n", + " conv4_block12_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block13_0_bn (BatchNormal (None, 14, 14, 640) 2560 conv4_block12_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block13_0_relu (Activatio (None, 14, 14, 640) 0 conv4_block13_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block13_1_conv (Conv2D) (None, 14, 14, 128) 81920 conv4_block13_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block13_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block13_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block13_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block13_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block13_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block13_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block13_concat (Concatena (None, 14, 14, 672) 0 conv4_block12_concat[0][0] \n", + " conv4_block13_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block14_0_bn (BatchNormal (None, 14, 14, 672) 2688 conv4_block13_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block14_0_relu (Activatio (None, 14, 14, 672) 0 conv4_block14_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block14_1_conv (Conv2D) (None, 14, 14, 128) 86016 conv4_block14_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block14_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block14_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block14_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block14_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block14_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block14_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block14_concat (Concatena (None, 14, 14, 704) 0 conv4_block13_concat[0][0] \n", + " conv4_block14_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block15_0_bn (BatchNormal (None, 14, 14, 704) 2816 conv4_block14_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block15_0_relu (Activatio (None, 14, 14, 704) 0 conv4_block15_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block15_1_conv (Conv2D) (None, 14, 14, 128) 90112 conv4_block15_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block15_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block15_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block15_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block15_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block15_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block15_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block15_concat (Concatena (None, 14, 14, 736) 0 conv4_block14_concat[0][0] \n", + " conv4_block15_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block16_0_bn (BatchNormal (None, 14, 14, 736) 2944 conv4_block15_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block16_0_relu (Activatio (None, 14, 14, 736) 0 conv4_block16_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block16_1_conv (Conv2D) (None, 14, 14, 128) 94208 conv4_block16_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block16_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block16_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block16_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block16_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block16_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block16_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block16_concat (Concatena (None, 14, 14, 768) 0 conv4_block15_concat[0][0] \n", + " conv4_block16_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block17_0_bn (BatchNormal (None, 14, 14, 768) 3072 conv4_block16_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block17_0_relu (Activatio (None, 14, 14, 768) 0 conv4_block17_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block17_1_conv (Conv2D) (None, 14, 14, 128) 98304 conv4_block17_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block17_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block17_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block17_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block17_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block17_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block17_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block17_concat (Concatena (None, 14, 14, 800) 0 conv4_block16_concat[0][0] \n", + " conv4_block17_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block18_0_bn (BatchNormal (None, 14, 14, 800) 3200 conv4_block17_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block18_0_relu (Activatio (None, 14, 14, 800) 0 conv4_block18_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block18_1_conv (Conv2D) (None, 14, 14, 128) 102400 conv4_block18_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block18_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block18_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block18_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block18_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block18_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block18_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block18_concat (Concatena (None, 14, 14, 832) 0 conv4_block17_concat[0][0] \n", + " conv4_block18_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block19_0_bn (BatchNormal (None, 14, 14, 832) 3328 conv4_block18_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block19_0_relu (Activatio (None, 14, 14, 832) 0 conv4_block19_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block19_1_conv (Conv2D) (None, 14, 14, 128) 106496 conv4_block19_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block19_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block19_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block19_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block19_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block19_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block19_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block19_concat (Concatena (None, 14, 14, 864) 0 conv4_block18_concat[0][0] \n", + " conv4_block19_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block20_0_bn (BatchNormal (None, 14, 14, 864) 3456 conv4_block19_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block20_0_relu (Activatio (None, 14, 14, 864) 0 conv4_block20_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block20_1_conv (Conv2D) (None, 14, 14, 128) 110592 conv4_block20_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block20_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block20_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block20_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block20_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block20_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block20_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block20_concat (Concatena (None, 14, 14, 896) 0 conv4_block19_concat[0][0] \n", + " conv4_block20_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block21_0_bn (BatchNormal (None, 14, 14, 896) 3584 conv4_block20_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block21_0_relu (Activatio (None, 14, 14, 896) 0 conv4_block21_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block21_1_conv (Conv2D) (None, 14, 14, 128) 114688 conv4_block21_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block21_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block21_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block21_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block21_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block21_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block21_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block21_concat (Concatena (None, 14, 14, 928) 0 conv4_block20_concat[0][0] \n", + " conv4_block21_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block22_0_bn (BatchNormal (None, 14, 14, 928) 3712 conv4_block21_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block22_0_relu (Activatio (None, 14, 14, 928) 0 conv4_block22_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block22_1_conv (Conv2D) (None, 14, 14, 128) 118784 conv4_block22_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block22_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block22_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block22_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block22_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block22_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block22_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block22_concat (Concatena (None, 14, 14, 960) 0 conv4_block21_concat[0][0] \n", + " conv4_block22_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block23_0_bn (BatchNormal (None, 14, 14, 960) 3840 conv4_block22_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block23_0_relu (Activatio (None, 14, 14, 960) 0 conv4_block23_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block23_1_conv (Conv2D) (None, 14, 14, 128) 122880 conv4_block23_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block23_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block23_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block23_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block23_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block23_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block23_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block23_concat (Concatena (None, 14, 14, 992) 0 conv4_block22_concat[0][0] \n", + " conv4_block23_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block24_0_bn (BatchNormal (None, 14, 14, 992) 3968 conv4_block23_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block24_0_relu (Activatio (None, 14, 14, 992) 0 conv4_block24_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block24_1_conv (Conv2D) (None, 14, 14, 128) 126976 conv4_block24_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block24_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block24_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block24_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block24_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block24_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block24_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block24_concat (Concatena (None, 14, 14, 1024) 0 conv4_block23_concat[0][0] \n", + " conv4_block24_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block25_0_bn (BatchNormal (None, 14, 14, 1024) 4096 conv4_block24_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block25_0_relu (Activatio (None, 14, 14, 1024) 0 conv4_block25_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block25_1_conv (Conv2D) (None, 14, 14, 128) 131072 conv4_block25_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block25_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block25_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block25_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block25_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block25_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block25_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block25_concat (Concatena (None, 14, 14, 1056) 0 conv4_block24_concat[0][0] \n", + " conv4_block25_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block26_0_bn (BatchNormal (None, 14, 14, 1056) 4224 conv4_block25_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block26_0_relu (Activatio (None, 14, 14, 1056) 0 conv4_block26_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block26_1_conv (Conv2D) (None, 14, 14, 128) 135168 conv4_block26_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block26_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block26_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block26_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block26_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block26_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block26_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block26_concat (Concatena (None, 14, 14, 1088) 0 conv4_block25_concat[0][0] \n", + " conv4_block26_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block27_0_bn (BatchNormal (None, 14, 14, 1088) 4352 conv4_block26_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block27_0_relu (Activatio (None, 14, 14, 1088) 0 conv4_block27_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block27_1_conv (Conv2D) (None, 14, 14, 128) 139264 conv4_block27_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block27_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block27_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block27_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block27_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block27_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block27_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block27_concat (Concatena (None, 14, 14, 1120) 0 conv4_block26_concat[0][0] \n", + " conv4_block27_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block28_0_bn (BatchNormal (None, 14, 14, 1120) 4480 conv4_block27_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block28_0_relu (Activatio (None, 14, 14, 1120) 0 conv4_block28_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block28_1_conv (Conv2D) (None, 14, 14, 128) 143360 conv4_block28_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block28_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block28_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block28_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block28_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block28_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block28_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block28_concat (Concatena (None, 14, 14, 1152) 0 conv4_block27_concat[0][0] \n", + " conv4_block28_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block29_0_bn (BatchNormal (None, 14, 14, 1152) 4608 conv4_block28_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block29_0_relu (Activatio (None, 14, 14, 1152) 0 conv4_block29_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block29_1_conv (Conv2D) (None, 14, 14, 128) 147456 conv4_block29_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block29_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block29_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block29_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block29_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block29_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block29_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block29_concat (Concatena (None, 14, 14, 1184) 0 conv4_block28_concat[0][0] \n", + " conv4_block29_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block30_0_bn (BatchNormal (None, 14, 14, 1184) 4736 conv4_block29_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block30_0_relu (Activatio (None, 14, 14, 1184) 0 conv4_block30_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block30_1_conv (Conv2D) (None, 14, 14, 128) 151552 conv4_block30_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block30_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block30_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block30_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block30_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block30_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block30_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block30_concat (Concatena (None, 14, 14, 1216) 0 conv4_block29_concat[0][0] \n", + " conv4_block30_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block31_0_bn (BatchNormal (None, 14, 14, 1216) 4864 conv4_block30_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block31_0_relu (Activatio (None, 14, 14, 1216) 0 conv4_block31_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block31_1_conv (Conv2D) (None, 14, 14, 128) 155648 conv4_block31_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block31_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block31_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block31_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block31_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block31_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block31_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block31_concat (Concatena (None, 14, 14, 1248) 0 conv4_block30_concat[0][0] \n", + " conv4_block31_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block32_0_bn (BatchNormal (None, 14, 14, 1248) 4992 conv4_block31_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block32_0_relu (Activatio (None, 14, 14, 1248) 0 conv4_block32_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block32_1_conv (Conv2D) (None, 14, 14, 128) 159744 conv4_block32_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block32_1_bn (BatchNormal (None, 14, 14, 128) 512 conv4_block32_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block32_1_relu (Activatio (None, 14, 14, 128) 0 conv4_block32_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block32_2_conv (Conv2D) (None, 14, 14, 32) 36864 conv4_block32_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv4_block32_concat (Concatena (None, 14, 14, 1280) 0 conv4_block31_concat[0][0] \n", + " conv4_block32_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "pool4_bn (BatchNormalization) (None, 14, 14, 1280) 5120 conv4_block32_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "pool4_relu (Activation) (None, 14, 14, 1280) 0 pool4_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "pool4_conv (Conv2D) (None, 14, 14, 640) 819200 pool4_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "pool4_pool (AveragePooling2D) (None, 7, 7, 640) 0 pool4_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block1_0_bn (BatchNormali (None, 7, 7, 640) 2560 pool4_pool[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block1_0_relu (Activation (None, 7, 7, 640) 0 conv5_block1_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block1_1_conv (Conv2D) (None, 7, 7, 128) 81920 conv5_block1_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block1_1_bn (BatchNormali (None, 7, 7, 128) 512 conv5_block1_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block1_1_relu (Activation (None, 7, 7, 128) 0 conv5_block1_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block1_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block1_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block1_concat (Concatenat (None, 7, 7, 672) 0 pool4_pool[0][0] \n", + " conv5_block1_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block2_0_bn (BatchNormali (None, 7, 7, 672) 2688 conv5_block1_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block2_0_relu (Activation (None, 7, 7, 672) 0 conv5_block2_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block2_1_conv (Conv2D) (None, 7, 7, 128) 86016 conv5_block2_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block2_1_bn (BatchNormali (None, 7, 7, 128) 512 conv5_block2_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block2_1_relu (Activation (None, 7, 7, 128) 0 conv5_block2_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block2_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block2_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block2_concat (Concatenat (None, 7, 7, 704) 0 conv5_block1_concat[0][0] \n", + " conv5_block2_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block3_0_bn (BatchNormali (None, 7, 7, 704) 2816 conv5_block2_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block3_0_relu (Activation (None, 7, 7, 704) 0 conv5_block3_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block3_1_conv (Conv2D) (None, 7, 7, 128) 90112 conv5_block3_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block3_1_bn (BatchNormali (None, 7, 7, 128) 512 conv5_block3_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block3_1_relu (Activation (None, 7, 7, 128) 0 conv5_block3_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block3_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block3_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block3_concat (Concatenat (None, 7, 7, 736) 0 conv5_block2_concat[0][0] \n", + " conv5_block3_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block4_0_bn (BatchNormali (None, 7, 7, 736) 2944 conv5_block3_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block4_0_relu (Activation (None, 7, 7, 736) 0 conv5_block4_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block4_1_conv (Conv2D) (None, 7, 7, 128) 94208 conv5_block4_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block4_1_bn (BatchNormali (None, 7, 7, 128) 512 conv5_block4_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block4_1_relu (Activation (None, 7, 7, 128) 0 conv5_block4_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block4_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block4_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block4_concat (Concatenat (None, 7, 7, 768) 0 conv5_block3_concat[0][0] \n", + " conv5_block4_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block5_0_bn (BatchNormali (None, 7, 7, 768) 3072 conv5_block4_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block5_0_relu (Activation (None, 7, 7, 768) 0 conv5_block5_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block5_1_conv (Conv2D) (None, 7, 7, 128) 98304 conv5_block5_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block5_1_bn (BatchNormali (None, 7, 7, 128) 512 conv5_block5_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block5_1_relu (Activation (None, 7, 7, 128) 0 conv5_block5_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block5_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block5_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block5_concat (Concatenat (None, 7, 7, 800) 0 conv5_block4_concat[0][0] \n", + " conv5_block5_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block6_0_bn (BatchNormali (None, 7, 7, 800) 3200 conv5_block5_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block6_0_relu (Activation (None, 7, 7, 800) 0 conv5_block6_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block6_1_conv (Conv2D) (None, 7, 7, 128) 102400 conv5_block6_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block6_1_bn (BatchNormali (None, 7, 7, 128) 512 conv5_block6_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block6_1_relu (Activation (None, 7, 7, 128) 0 conv5_block6_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block6_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block6_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block6_concat (Concatenat (None, 7, 7, 832) 0 conv5_block5_concat[0][0] \n", + " conv5_block6_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block7_0_bn (BatchNormali (None, 7, 7, 832) 3328 conv5_block6_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block7_0_relu (Activation (None, 7, 7, 832) 0 conv5_block7_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block7_1_conv (Conv2D) (None, 7, 7, 128) 106496 conv5_block7_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block7_1_bn (BatchNormali (None, 7, 7, 128) 512 conv5_block7_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block7_1_relu (Activation (None, 7, 7, 128) 0 conv5_block7_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block7_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block7_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block7_concat (Concatenat (None, 7, 7, 864) 0 conv5_block6_concat[0][0] \n", + " conv5_block7_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block8_0_bn (BatchNormali (None, 7, 7, 864) 3456 conv5_block7_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block8_0_relu (Activation (None, 7, 7, 864) 0 conv5_block8_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block8_1_conv (Conv2D) (None, 7, 7, 128) 110592 conv5_block8_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block8_1_bn (BatchNormali (None, 7, 7, 128) 512 conv5_block8_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block8_1_relu (Activation (None, 7, 7, 128) 0 conv5_block8_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block8_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block8_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block8_concat (Concatenat (None, 7, 7, 896) 0 conv5_block7_concat[0][0] \n", + " conv5_block8_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block9_0_bn (BatchNormali (None, 7, 7, 896) 3584 conv5_block8_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block9_0_relu (Activation (None, 7, 7, 896) 0 conv5_block9_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block9_1_conv (Conv2D) (None, 7, 7, 128) 114688 conv5_block9_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block9_1_bn (BatchNormali (None, 7, 7, 128) 512 conv5_block9_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block9_1_relu (Activation (None, 7, 7, 128) 0 conv5_block9_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block9_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block9_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block9_concat (Concatenat (None, 7, 7, 928) 0 conv5_block8_concat[0][0] \n", + " conv5_block9_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block10_0_bn (BatchNormal (None, 7, 7, 928) 3712 conv5_block9_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block10_0_relu (Activatio (None, 7, 7, 928) 0 conv5_block10_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block10_1_conv (Conv2D) (None, 7, 7, 128) 118784 conv5_block10_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block10_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block10_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block10_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block10_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block10_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block10_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block10_concat (Concatena (None, 7, 7, 960) 0 conv5_block9_concat[0][0] \n", + " conv5_block10_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block11_0_bn (BatchNormal (None, 7, 7, 960) 3840 conv5_block10_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block11_0_relu (Activatio (None, 7, 7, 960) 0 conv5_block11_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block11_1_conv (Conv2D) (None, 7, 7, 128) 122880 conv5_block11_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block11_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block11_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block11_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block11_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block11_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block11_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block11_concat (Concatena (None, 7, 7, 992) 0 conv5_block10_concat[0][0] \n", + " conv5_block11_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block12_0_bn (BatchNormal (None, 7, 7, 992) 3968 conv5_block11_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block12_0_relu (Activatio (None, 7, 7, 992) 0 conv5_block12_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block12_1_conv (Conv2D) (None, 7, 7, 128) 126976 conv5_block12_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block12_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block12_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block12_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block12_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block12_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block12_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block12_concat (Concatena (None, 7, 7, 1024) 0 conv5_block11_concat[0][0] \n", + " conv5_block12_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block13_0_bn (BatchNormal (None, 7, 7, 1024) 4096 conv5_block12_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block13_0_relu (Activatio (None, 7, 7, 1024) 0 conv5_block13_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block13_1_conv (Conv2D) (None, 7, 7, 128) 131072 conv5_block13_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block13_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block13_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block13_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block13_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block13_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block13_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block13_concat (Concatena (None, 7, 7, 1056) 0 conv5_block12_concat[0][0] \n", + " conv5_block13_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block14_0_bn (BatchNormal (None, 7, 7, 1056) 4224 conv5_block13_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block14_0_relu (Activatio (None, 7, 7, 1056) 0 conv5_block14_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block14_1_conv (Conv2D) (None, 7, 7, 128) 135168 conv5_block14_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block14_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block14_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block14_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block14_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block14_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block14_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block14_concat (Concatena (None, 7, 7, 1088) 0 conv5_block13_concat[0][0] \n", + " conv5_block14_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block15_0_bn (BatchNormal (None, 7, 7, 1088) 4352 conv5_block14_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block15_0_relu (Activatio (None, 7, 7, 1088) 0 conv5_block15_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block15_1_conv (Conv2D) (None, 7, 7, 128) 139264 conv5_block15_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block15_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block15_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block15_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block15_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block15_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block15_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block15_concat (Concatena (None, 7, 7, 1120) 0 conv5_block14_concat[0][0] \n", + " conv5_block15_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block16_0_bn (BatchNormal (None, 7, 7, 1120) 4480 conv5_block15_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block16_0_relu (Activatio (None, 7, 7, 1120) 0 conv5_block16_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block16_1_conv (Conv2D) (None, 7, 7, 128) 143360 conv5_block16_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block16_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block16_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block16_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block16_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block16_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block16_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block16_concat (Concatena (None, 7, 7, 1152) 0 conv5_block15_concat[0][0] \n", + " conv5_block16_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block17_0_bn (BatchNormal (None, 7, 7, 1152) 4608 conv5_block16_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block17_0_relu (Activatio (None, 7, 7, 1152) 0 conv5_block17_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block17_1_conv (Conv2D) (None, 7, 7, 128) 147456 conv5_block17_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block17_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block17_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block17_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block17_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block17_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block17_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block17_concat (Concatena (None, 7, 7, 1184) 0 conv5_block16_concat[0][0] \n", + " conv5_block17_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block18_0_bn (BatchNormal (None, 7, 7, 1184) 4736 conv5_block17_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block18_0_relu (Activatio (None, 7, 7, 1184) 0 conv5_block18_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block18_1_conv (Conv2D) (None, 7, 7, 128) 151552 conv5_block18_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block18_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block18_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block18_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block18_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block18_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block18_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block18_concat (Concatena (None, 7, 7, 1216) 0 conv5_block17_concat[0][0] \n", + " conv5_block18_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block19_0_bn (BatchNormal (None, 7, 7, 1216) 4864 conv5_block18_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block19_0_relu (Activatio (None, 7, 7, 1216) 0 conv5_block19_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block19_1_conv (Conv2D) (None, 7, 7, 128) 155648 conv5_block19_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block19_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block19_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block19_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block19_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block19_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block19_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block19_concat (Concatena (None, 7, 7, 1248) 0 conv5_block18_concat[0][0] \n", + " conv5_block19_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block20_0_bn (BatchNormal (None, 7, 7, 1248) 4992 conv5_block19_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block20_0_relu (Activatio (None, 7, 7, 1248) 0 conv5_block20_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block20_1_conv (Conv2D) (None, 7, 7, 128) 159744 conv5_block20_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block20_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block20_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block20_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block20_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block20_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block20_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block20_concat (Concatena (None, 7, 7, 1280) 0 conv5_block19_concat[0][0] \n", + " conv5_block20_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block21_0_bn (BatchNormal (None, 7, 7, 1280) 5120 conv5_block20_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block21_0_relu (Activatio (None, 7, 7, 1280) 0 conv5_block21_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block21_1_conv (Conv2D) (None, 7, 7, 128) 163840 conv5_block21_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block21_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block21_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block21_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block21_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block21_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block21_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block21_concat (Concatena (None, 7, 7, 1312) 0 conv5_block20_concat[0][0] \n", + " conv5_block21_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block22_0_bn (BatchNormal (None, 7, 7, 1312) 5248 conv5_block21_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block22_0_relu (Activatio (None, 7, 7, 1312) 0 conv5_block22_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block22_1_conv (Conv2D) (None, 7, 7, 128) 167936 conv5_block22_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block22_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block22_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block22_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block22_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block22_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block22_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block22_concat (Concatena (None, 7, 7, 1344) 0 conv5_block21_concat[0][0] \n", + " conv5_block22_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block23_0_bn (BatchNormal (None, 7, 7, 1344) 5376 conv5_block22_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block23_0_relu (Activatio (None, 7, 7, 1344) 0 conv5_block23_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block23_1_conv (Conv2D) (None, 7, 7, 128) 172032 conv5_block23_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block23_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block23_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block23_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block23_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block23_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block23_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block23_concat (Concatena (None, 7, 7, 1376) 0 conv5_block22_concat[0][0] \n", + " conv5_block23_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block24_0_bn (BatchNormal (None, 7, 7, 1376) 5504 conv5_block23_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block24_0_relu (Activatio (None, 7, 7, 1376) 0 conv5_block24_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block24_1_conv (Conv2D) (None, 7, 7, 128) 176128 conv5_block24_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block24_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block24_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block24_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block24_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block24_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block24_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block24_concat (Concatena (None, 7, 7, 1408) 0 conv5_block23_concat[0][0] \n", + " conv5_block24_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block25_0_bn (BatchNormal (None, 7, 7, 1408) 5632 conv5_block24_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block25_0_relu (Activatio (None, 7, 7, 1408) 0 conv5_block25_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block25_1_conv (Conv2D) (None, 7, 7, 128) 180224 conv5_block25_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block25_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block25_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block25_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block25_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block25_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block25_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block25_concat (Concatena (None, 7, 7, 1440) 0 conv5_block24_concat[0][0] \n", + " conv5_block25_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block26_0_bn (BatchNormal (None, 7, 7, 1440) 5760 conv5_block25_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block26_0_relu (Activatio (None, 7, 7, 1440) 0 conv5_block26_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block26_1_conv (Conv2D) (None, 7, 7, 128) 184320 conv5_block26_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block26_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block26_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block26_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block26_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block26_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block26_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block26_concat (Concatena (None, 7, 7, 1472) 0 conv5_block25_concat[0][0] \n", + " conv5_block26_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block27_0_bn (BatchNormal (None, 7, 7, 1472) 5888 conv5_block26_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block27_0_relu (Activatio (None, 7, 7, 1472) 0 conv5_block27_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block27_1_conv (Conv2D) (None, 7, 7, 128) 188416 conv5_block27_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block27_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block27_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block27_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block27_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block27_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block27_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block27_concat (Concatena (None, 7, 7, 1504) 0 conv5_block26_concat[0][0] \n", + " conv5_block27_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block28_0_bn (BatchNormal (None, 7, 7, 1504) 6016 conv5_block27_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block28_0_relu (Activatio (None, 7, 7, 1504) 0 conv5_block28_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block28_1_conv (Conv2D) (None, 7, 7, 128) 192512 conv5_block28_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block28_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block28_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block28_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block28_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block28_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block28_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block28_concat (Concatena (None, 7, 7, 1536) 0 conv5_block27_concat[0][0] \n", + " conv5_block28_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block29_0_bn (BatchNormal (None, 7, 7, 1536) 6144 conv5_block28_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block29_0_relu (Activatio (None, 7, 7, 1536) 0 conv5_block29_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block29_1_conv (Conv2D) (None, 7, 7, 128) 196608 conv5_block29_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block29_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block29_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block29_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block29_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block29_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block29_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block29_concat (Concatena (None, 7, 7, 1568) 0 conv5_block28_concat[0][0] \n", + " conv5_block29_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block30_0_bn (BatchNormal (None, 7, 7, 1568) 6272 conv5_block29_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block30_0_relu (Activatio (None, 7, 7, 1568) 0 conv5_block30_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block30_1_conv (Conv2D) (None, 7, 7, 128) 200704 conv5_block30_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block30_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block30_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block30_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block30_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block30_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block30_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block30_concat (Concatena (None, 7, 7, 1600) 0 conv5_block29_concat[0][0] \n", + " conv5_block30_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block31_0_bn (BatchNormal (None, 7, 7, 1600) 6400 conv5_block30_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block31_0_relu (Activatio (None, 7, 7, 1600) 0 conv5_block31_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block31_1_conv (Conv2D) (None, 7, 7, 128) 204800 conv5_block31_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block31_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block31_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block31_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block31_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block31_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block31_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block31_concat (Concatena (None, 7, 7, 1632) 0 conv5_block30_concat[0][0] \n", + " conv5_block31_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block32_0_bn (BatchNormal (None, 7, 7, 1632) 6528 conv5_block31_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block32_0_relu (Activatio (None, 7, 7, 1632) 0 conv5_block32_0_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block32_1_conv (Conv2D) (None, 7, 7, 128) 208896 conv5_block32_0_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block32_1_bn (BatchNormal (None, 7, 7, 128) 512 conv5_block32_1_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block32_1_relu (Activatio (None, 7, 7, 128) 0 conv5_block32_1_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block32_2_conv (Conv2D) (None, 7, 7, 32) 36864 conv5_block32_1_relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "conv5_block32_concat (Concatena (None, 7, 7, 1664) 0 conv5_block31_concat[0][0] \n", + " conv5_block32_2_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "bn (BatchNormalization) (None, 7, 7, 1664) 6656 conv5_block32_concat[0][0] \n", + "__________________________________________________________________________________________________\n", + "relu (Activation) (None, 7, 7, 1664) 0 bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "global_average_pooling2d (Globa (None, 1664) 0 relu[0][0] \n", + "__________________________________________________________________________________________________\n", + "dense (Dense) (None, 6) 9990 global_average_pooling2d[0][0] \n", + "==================================================================================================\n", + "Total params: 12,652,870\n", + "Trainable params: 9,990\n", + "Non-trainable params: 12,642,880\n", + "__________________________________________________________________________________________________\n" + ] + } + ], + "source": [ + "from tensorflow.keras.applications.densenet import DenseNet169\n", + "import tensorflow as tf\n", + "from tensorflow.keras.models import Model\n", + "from tensorflow.keras.layers import Dense, GlobalAveragePooling2D, Dropout\n", + "\n", + "METRICS = [\n", + " tf.keras.metrics.TruePositives(name='tp'),\n", + " tf.keras.metrics.FalsePositives(name='fp'),\n", + " tf.keras.metrics.TrueNegatives(name='tn'),\n", + " tf.keras.metrics.FalseNegatives(name='fn'), \n", + " tf.keras.metrics.BinaryAccuracy(name='accuracy'),\n", + " tf.keras.metrics.Precision(name='precision'),\n", + " tf.keras.metrics.Recall(name='recall'),\n", + " tf.keras.metrics.AUC(name='auc')\n", + " \n", + "]\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "# create the base pre-trained model\n", + "base_model = DenseNet169(weights='imagenet', include_top=False, input_shape=(224,224,3))\n", + "\n", + "# add a global spatial average pooling layer\n", + "x = base_model.output\n", + "x = GlobalAveragePooling2D()(x)\n", + "# let's add a fully-connected layer\n", + "#x = Dense(256, activation='relu')(x)\n", + "# and a logistic layer -- let's say we have 200 classes\n", + "#x = Dropout(0.3)(x)\n", + "#x = Dense(100, activation=\"relu\")(x)\n", + "#x = Dropout(0.3)(x)\n", + "#pred = Dense(6,\n", + "# kernel_initializer=tf.keras.initializers.HeNormal(seed=11),\n", + "# kernel_regularizer=tf.keras.regularizers.l2(0.05),\n", + "# bias_regularizer=tf.keras.regularizers.l2(0.05), activation=\"softmax\")(x)\n", + "#initializer = keras.initializers.GlorotUniform()\n", + "#layer = tf.keras.layers.Dense(3, kernel_initializer=initializer)\n", + "\n", + "predictions = Dense(6, activation='sigmoid')(x)\n", + "#activation='sigmoid',kernel_initializer=keras.initializers.GlorotNormal()\n", + "# this is the model we will train\n", + "model = Model(inputs=base_model.input, outputs=predictions)\n", + "\n", + "# first: train only the top layers (which were randomly initialized)\n", + "# i.e. freeze all convolutional InceptionV3 layers\n", + "for layer in base_model.layers:\n", + " layer.trainable = False\n", + "\n", + "\n", + "\n", + "# compile the model (should be done *after* setting layers to non-trainable)\n", + "model.compile(opt, loss='binary_crossentropy', metrics=METRICS)\n", + "#model.compile(loss=\"binary_crossentropy\", optimizer=keras.optimizers.Adam(), metrics=METRICS)\n", + "#model.compile(loss=loss_func,\n", + "# optimizer=opt,\n", + "# metrics=METRICS)\n", + "model.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# callbacks" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "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" + ] + } + ], + "source": [ + "from keras import backend as K\n", + "\n", + "from tensorflow.keras.callbacks import ModelCheckpoint\n", + "\n", + "\n", + "checkpoint = tf.keras.callbacks.ModelCheckpoint('densenet169_{epoch:08d}.h5', period=1,mode= 'auto',save_best_only=True) \n", + "\n", + "learning_rate_reduction = tf.keras.callbacks.ReduceLROnPlateau(monitor='val_acc', \n", + " patience=2, \n", + " verbose=1, \n", + " factor=0.5, \n", + " min_lr=0.00001)\n", + "\n", + "callback_list = [checkpoint]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "tf.config.experimental_run_functions_eagerly(True)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{0: 1.0, 1: 1.5}" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "class_weight = {0:1.0,1:1.5}\n", + "class_weight" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# fit" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/3\n", + "251/251 [==============================] - 224s 894ms/step - loss: 1.3349 - tp: 1679.0000 - fp: 1131.0000 - tn: 40524.0000 - fn: 4858.0000 - accuracy: 0.8757 - precision: 0.5975 - recall: 0.2568 - auc: 0.6654 - val_loss: 1.4346 - val_tp: 362.0000 - val_fp: 87.0000 - val_tn: 10094.0000 - val_fn: 1361.0000 - val_accuracy: 0.8784 - val_precision: 0.8062 - val_recall: 0.2101 - val_auc: 0.6627\n", + "Epoch 2/3\n", + "251/251 [==============================] - 224s 892ms/step - loss: 1.2703 - tp: 1741.0000 - fp: 795.0000 - tn: 40999.0000 - fn: 4657.0000 - accuracy: 0.8869 - precision: 0.6865 - recall: 0.2721 - auc: 0.6726 - val_loss: 1.4225 - val_tp: 480.0000 - val_fp: 160.0000 - val_tn: 10021.0000 - val_fn: 1243.0000 - val_accuracy: 0.8821 - val_precision: 0.7500 - val_recall: 0.2786 - val_auc: 0.6607\n", + "Epoch 3/3\n", + "251/251 [==============================] - 223s 890ms/step - loss: 1.2683 - tp: 1798.0000 - fp: 715.0000 - tn: 41038.0000 - fn: 4641.0000 - accuracy: 0.8889 - precision: 0.7155 - recall: 0.2792 - auc: 0.6724 - val_loss: 1.4298 - val_tp: 533.0000 - val_fp: 253.0000 - val_tn: 9928.0000 - val_fn: 1190.0000 - val_accuracy: 0.8788 - val_precision: 0.6781 - val_recall: 0.3093 - val_auc: 0.6609\n" + ] + } + ], + "source": [ + "\n", + "\n", + "\n", + "num_epochs = 3\n", + "\n", + "batch_size = 32\n", + "training_steps = len(train_under_generator) // batch_size\n", + "validation_step = len(valid_under_generator) // batch_size\n", + "\n", + "\n", + "\n", + "\n", + "# FIT THE MODEL\n", + "history = model.fit(train_under_generator,\n", + " epochs=num_epochs,steps_per_epoch=training_steps,\n", + " callbacks=callback_list,\n", + " class_weight=class_weight,\n", + " validation_data=valid_under_generator,\n", + " validation_steps= validation_step,workers=-1) \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "tf.keras.backend.clear_session()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "from tensorflow.keras.models import load_model\n", + "model = load_model('densenet169_freeze2.h5')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Evaluation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "valid_data_generator = valid_idg.flow_from_dataframe(validation_data, directory = image_dir,\n", + " x_col = \"Image\", y_col = columns,batch_size=64,\n", + " class_mode = \"raw\",target_size=(224,224), shuffle = False)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING:tensorflow:From <ipython-input-38-b13240840368>:1: Model.evaluate_generator (from tensorflow.python.keras.engine.training) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Please use Model.evaluate, which supports generators.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/ubuntu/anaconda3/envs/tensorflow2_p36/lib/python3.6/site-packages/tensorflow/python/data/ops/dataset_ops.py:3350: UserWarning: Even though the tf.config.experimental_run_functions_eagerly option is set, this option does not apply to tf.data functions. tf.data functions are still traced and executed as graphs.\n", + " \"Even though the tf.config.experimental_run_functions_eagerly \"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0.23301322758197784, 22583.0, 6920.0, 328241.0, 28176.0, 0.9090583920478821, 0.7654475569725037, 0.4449063241481781, 0.9036330580711365]\n" + ] + } + ], + "source": [ + "valid_predict = model.evaluate_generator(valid_under_generator)\n", + "print(valid_predict)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['loss', 'tp', 'fp', 'tn', 'fn', 'accuracy', 'precision', 'recall', 'auc']" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.metrics_names" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "---------------\n", + "\n", + "validation data **loss** value = 0.23301322758197784\n", + "\n", + "---------------\n", + "\n", + "validation data **true positive** value = 22583.0\n", + "\n", + "---------------\n", + "\n", + "validation data **false positive** value = 6920.0\n", + "\n", + "---------------\n", + "\n", + "validation data **true negative** value = 328241.0\n", + "\n", + "---------------\n", + "\n", + "validation data **false negative** value = 28176.0\n", + "\n", + "---------------\n", + "\n", + "validation data **accuracy** value = 0.9090583920478821\n", + "\n", + "---------------\n", + "\n", + "validation data **precision** value = 0.7654475569725037\n", + "\n", + "---------------\n", + "\n", + "validation data **recall* value = 0.4449063241481781\n", + "\n", + "---------------\n", + "\n", + "validation data **AUC* value = 0.9036330580711365\n", + "\n", + "---------------\n", + "\n" + ] + } + ], + "source": [ + "print('\\n---------------\\n')\n", + "print('validation data **loss** value =', valid_predict[0])\n", + "print('\\n---------------\\n')\n", + "print('validation data **true positive** value = ', valid_predict[1])\n", + "print('\\n---------------\\n')\n", + "print('validation data **false positive** value =', valid_predict[2])\n", + "print('\\n---------------\\n')\n", + "print('validation data **true negative** value =', valid_predict[3])\n", + "print('\\n---------------\\n')\n", + "print('validation data **false negative** value =', valid_predict[4])\n", + "print('\\n---------------\\n')\n", + "print('validation data **accuracy** value = ', valid_predict[5])\n", + "print('\\n---------------\\n')\n", + "print('validation data **precision** value =', valid_predict[6])\n", + "print('\\n---------------\\n')\n", + "print('validation data **recall* value =', valid_predict[7])\n", + "print('\\n---------------\\n')\n", + "print('validation data **AUC* value =', valid_predict[8])\n", + "print('\\n---------------\\n')" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [], + "source": [ + "y_true = m[['any','epidural','intraparenchymal','intraventricular', 'subarachnoid','subdural']].reset_index(drop=True)\n", + "\n", + "#Y_pred = model.predict_generator(valid_under_generator)\n", + "preds = np.where(Y_pred < 0.25, 0, 1)\n", + "\n", + "\n", + "\n", + "#val = 0.25\n", + "\n", + "#Y_pred[Y_pred>=val]=1\n", + "#Y_pred[Y_pred<val]=0" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# classification matrix" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Classification Report\n", + " precision recall f1-score support\n", + "\n", + " any 0.65 0.87 0.74 21440\n", + " epidural 0.00 0.00 0.00 577\n", + "intraparenchymal 0.69 0.54 0.60 6898\n", + "intraventricular 0.66 0.55 0.60 5111\n", + " subarachnoid 0.34 0.60 0.43 7202\n", + " subdural 0.50 0.51 0.50 9531\n", + "\n", + " micro avg 0.56 0.68 0.61 50759\n", + " macro avg 0.47 0.51 0.48 50759\n", + " weighted avg 0.57 0.68 0.61 50759\n", + " samples avg 0.24 0.22 0.22 50759\n", + "\n" + ] + } + ], + "source": [ + "print('Classification Report')\n", + "target_names = ['any','epidural','intraparenchymal','intraventricular', 'subarachnoid','subdural']\n", + "print(classification_report(y_true, preds, target_names=target_names))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# confusion metrics" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[[32873, 10007],\n", + " [ 2882, 18558]],\n", + "\n", + " [[63739, 4],\n", + " [ 577, 0]],\n", + "\n", + " [[55725, 1697],\n", + " [ 3207, 3691]],\n", + "\n", + " [[57765, 1444],\n", + " [ 2306, 2805]],\n", + "\n", + " [[48512, 8606],\n", + " [ 2849, 4353]],\n", + "\n", + " [[49812, 4977],\n", + " [ 4644, 4887]]])" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mlb = ['any','epidural','intraparenchymal','intraventricular', 'subarachnoid','subdural']\n", + "\n", + "from sklearn.metrics import multilabel_confusion_matrix\n", + "multilabel_confusion_matrix(y_true,preds)" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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SpRFREREREREIpQoi4iIiIiIiEQoURYRERERERGJUKIsIiIiIiIiEqFEWURERERERCRCibKIiIiIiIhIhBJlERERERERkQglyiIiIiIiIiIRSpRFREREREREIpQoi4iIiIiIiEQoURYRERERERGJUKIsIiIiIiIiEqFEWURERERERCRCibKIiIiIiIhIhBJlERERERERkQglyiIiIiIiIiIRSpRFREREREREIpQoi4iIiIiIiEQoURYRERERERGJUKIsIiIiIiIiEqFEWURERERERCRCibKIiIiIiIhIhBJlERERERERkQglyiIiIiIiIiIRSpRFREREREREIpQoi4iIiIiIiEQoURYRERERERGJUKIsIiIiIiIiEqFEWURERERERCSiTNwBSPIrX64MHz57LeXKlaFMejqvf/gFdz81ksH3XESrA/ciOyeXqbN/5O/3vEROTh5VMyrw37svosHuNSiTns6jz33E829Npn2bJjzQu0dBufs3rMuFtwzm7bEzebLvubQ6cC8MY+5PS7jszudZu35TjLVODIMeGcAXUyZQtXoNBj71MgBZmat5/L7bWLb4N3aruztX97mXylWq4u48/9TDfPn5p5QvX4FeN9xJw8ZNARg/+h3efHkwAKecfTFHdz6J9evWcveNvQr2tWLZEo7s2JXz/3Z9yVdUJEVUy6jIk33P5cBGu+MOf7trKF2OOpCTOrQgz52lKzLp1fcFflu6musuPI6zTmwLQJn0NJruU48Gx97Cug2bimxzATq03Y/7rutOubLpfPHNz/ztrqHk5ubFWeWklZubyzln9qBO3bo8/u//xB2OSKky5927yFy7kdy8PHJy8zjqvAe47fITueS0I1i6MguAvo+/xQcTvubsrm249qJOBds2b7IHh59zP9//tIShD/yVfevvRm6eM3LcLO547C0Azj+5Hfdedyq/LlkNwFPDPuF/r08q+YomqDtv78O4T8ZSs2YtXnvznYL5Lw59npdffIH09DK0b9+B63rfRPamTfS/qy9ffzWbNDNu6nMbbQ9tx9q1WVx8wXkF2y5evIhuJ/2Fm/rcFkeV/hBz97hjkD/JzLxCy6tijaFyxXKsXb+JMmXSGPPf6+n94CvUqFaJDyZ8DcCQ+3oyYfpcBo2YwI2XHE+1jIrc/tib7FYjgy9fv4OGnW4lOye3oLwaVSsx+62+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KENtpZQaaivlj1JbKaVJcW2l3qMsIiLJoAvQE6gPPBKZnwncGkdAIiIikrrUo5wCzMzXZ+v3WJIqlg0uPl06bFbMkZQuz5zVXL0kpZyZ9XD3V//gtr52U97ODkmKUblccIeX/o8qWRXLmtpK+cPMzNesz407jFKlasV0AFat03EvSdUrpRfbVuoeZRERSSYfmdkjZjY1/DxsZtXiDkpERERSixJlERFJJs8SDLc+M/ysAQbHGpGIiIikHN2jLCIiyaSRu/eITN9lZjNii0ZERERSknqURUQkmaw3s6PyJ8zsSGB9jPGIiIhIClKPsoiIJJMrgCGR+5JXAhfFGI+IiIikICXKIiKSTL4BHgAaAdWB1cCpwMw4gxIREZHUokRZRESSyZvAKmA6sDDmWERERCRFKVEWEZFkUt/dT4g7CBEREUltepiXiIgkk0/NrHncQYiIiEhqU4+yiIgkk6OAnmY2H9gIGODu3iLesERERCSVKFEWEZFk0jXuAERERCT1KVEWEZGk4e4/xh2DiIiIpD7doywiIiIiIiISoURZREREREREJEKJsoiIiIiIiEiEEmURERERERGRCCXKIiIiIiIiIhFKlEVEREREREQilCiLiIiIiIiIRChRFhEREREREYlQoiwiIiIiIiISoURZREREREREJEKJsoiIiIiIiEiEEmURERERERGRCCXKIiIiIiIiIhFKlEVEREREREQilCiLiIiIiIiIRChRFhEREREREYlQoiwiIiIiIiISoURZREREREREJEKJsoiIiIiIiEiEEmURERERERGRCCXKIiIiIiIiIhFKlEVEREREREQilCiLiIiIiIiIRChRFhEREREREYlQoiwiIiIiIiISoURZREREREREJEKJsoiIiIiIiEiEEmURERERERGRiDJxByCpZdFvv3Fbn5tYvnwZZmmcfsaZnHfBRcz55hvu7t+XTRs3kl4mnVtv70fzFi3IzMzk1ptvZNFvv5KTm8tFF1/Cqd17MOebb7hnQD+ysrJIT0/j0l5XcELXE+OuXsK5qO2etNi9Cpkbc+j3wVwAGlSvwPmt96BsmpHrMHT6ryxYsZ79alfmqiP3YvnaTQBMX7iGd75eCsB93fZjQ3Ye7k6uwz0f/lBsWSKyc514/LFUrlyZtLR00tPTeXH4q9x8w3UsWDAfgMzMNVSpUpVhr77ByHfe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\n", + "text/plain": [ + "<Figure size 1008x576 with 6 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import seaborn as sns\n", + "from sklearn.metrics import multilabel_confusion_matrix\n", + "# Creating multilabel confusion matrix\n", + "confusion = multilabel_confusion_matrix(y_true, preds)\n", + "\n", + "# Plot confusion matrix \n", + "fig = plt.figure(figsize = (14, 8))\n", + "for i, (label, matrix) in enumerate(zip(mlb, confusion)):\n", + " plt.subplot(f'23{i+1}')\n", + " labels = [f'not_{label}', label]\n", + " sns.heatmap(matrix, annot = True, square = True, fmt = 'd', cbar = False, cmap = 'Blues', \n", + " xticklabels = labels, yticklabels = labels, linecolor = 'black', linewidth = 1)\n", + " plt.title(labels[0])\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# auc_roc_curve" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.711479530880815\n" + ] + } + ], + "source": [ + "auc = roc_auc_score(y_true, preds)\n", + "print(auc)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# training accuracy and loss" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_training(H):\n", + " # construct a plot that plots and saves the training history\n", + " with plt.xkcd():\n", + " plt.figure(figsize = (10,10))\n", + " plt.plot(H.epoch,H.history[\"accuracy\"], label=\"train_acc\")\n", + " plt.plot(H.epoch,H.history[\"val_accuracy\"], label=\"val_acc\")\n", + " plt.title(\"Training Accuracy\")\n", + " plt.xlabel(\"Epoch #\")\n", + " plt.ylabel(\"Accuracy\")\n", + " plt.legend(loc=\"lower left\")\n", + " plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "findfont: Font family ['xkcd', 'xkcd Script', 'Humor Sans', 'Comic Sans MS'] not found. Falling back to DejaVu Sans.\n", + "findfont: Font family ['xkcd', 'xkcd Script', 'Humor Sans', 'Comic Sans MS'] not found. Falling back to DejaVu Sans.\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 720x720 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_training(history)" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_training(H):\n", + " # construct a plot that plots and saves the training history\n", + " with plt.xkcd():\n", + " plt.figure(figsize = (10,10))\n", + " plt.plot(H.epoch,H.history[\"loss\"], label=\"train_loss\")\n", + " plt.plot(H.epoch,H.history[\"val_loss\"], label=\"val_loss\")\n", + " plt.title(\"Training Loss\")\n", + " plt.xlabel(\"Epoch #\")\n", + " plt.ylabel(\"Loss\")\n", + " plt.legend(loc=\"lower left\")\n", + " plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoIAAAJtCAYAAACi4hFCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdeXwU5cEH8N/e2St7JLsJhFPDLVhAi1prS60HikWFiljaV7G+WmutrbUerdq7HvXW2lrxbH0rtoj1qFaraEWo2CIIcqkIhJB77/uY948nM8ka2NmJIbuB3/fzmU/I7M7us8Nm5jfPM8/z6CRJkkBEREREhxx9uQtAREREROXBIEhERER0iGIQJCIiIjpEMQgSERERHaIYBImIiIgOUQyCRERERIcoBkEioiJCoRCi0Wi/tk0kEggEAgNcIiKigaPjOIJENFT87Gc/QzgcVn3eaaedhi996UsD8p6TJ0/G5MmT8Ze//EXztj/60Y9w0003IZfLDUhZtOjo6MBNN92EE088EXPmzBn09yeiocFY7gIQEZXq5ZdfRltbm/J7W1sbgsEgxo4dC5PJpKyfMGHCgAXBMWPGYPjw4f3atra2FuPHjx+QcmgVCoVw2223wWKxMAgS0X6xRpCIhqwf/OAHuO2227Bz506MGjWq3MWpKB9++CEaGxtx3XXX4Ze//GW5i0NEFYo1gkR0UIpEIrjzzjtx6qmnwmQyYenSpdi1axd+9rOfYdq0aVi5ciVefvllbNu2DblcDjNnzsTixYsxZsyYgte5//774fP5sGDBAgDA7t278cgjj+Dcc89Fe3s7Hn74YXR0dOD444/HRRddhOrqamXb1157DatWrcKPf/xjZd3tt9+O8ePHY+bMmbj77ruxZcsWjBkzBpdccgkmTJhQ8N7ZbBbLli3D008/DbPZjHnz5mH27Nn43e9+h7POOgtHHHHEgOyrXbt24cEHH8R7770Ht9uNc889FyeddBL0+p7byDOZDJ588kmsXLkSbW1tcLlcmDp1KpYsWYLa2loAQDAYxIMPPoj169cjHA7D7/dj1qxZuOCCC2AwGAakrEQ0sNhZhIgOStFoFDfccAN+/etf4/jjj8emTZug1+sRCoWQSqVw0kkn4a233oLX64Xdbsc999yDKVOm4N///nfB69xzzz3485//rPy+e/du3HDDDfjpT3+KM844Ax0dHUgkEvjBD36AU045Bfl8XnnuK6+8ghtvvLHg9W6++WbcfffdmDlzJtasWQOTyYRHHnkEM2fOxLZt25Tn5XI5fOUrX8HXvvY1RCIRVFdX44orrsDFF1+MG264Ae+9996A7KfnnnsOjY2NeOCBB1BbW4uPPvoIp556KubPn19wb+N5552HJUuWoKOjA6NHj0Y+n8c999yDt99+GwAQj8fxmc98Br/+9a8BAKNGjUJ7ezuuvPJKJJPJASkrER0AEhHREHXllVdKAKSdO3f2eay5uVkCIJlMJuntt98ueCybzUpNTU0F60KhkDRx4kTpzDPPLFg/adIkaf78+crvq1atkgBIDQ0NBa9x0003SQCktWvXKuuuu+46Sa/XF7ye3++XAEgrVqxQ1r3//vuSXq+XrrvuOmXdk08+KQGQfvvb3yrrotGoNHnyZAmA9MQTTxTdNx988IEEoOA1PymdTks+n0+aMmWKFIlElPW33HKLBEB6/PHHJUmSpKamJgmAdNdddxVsn81mpWg0KkmSJD3xxBMSAOndd98teE40GpWy2WzRshJR+bBGkIgOagsXLsTRRx9dsM5gMKChoQEAEIvF0NLSglgshlNOOQUvvfRSQa3e/lx++eXKawDAueeeCwBYvXq16rbHHnss5s2bp/w+adIkHHnkkQXbPv300/D7/bjooouUdXa7Hd/73vdUX79Ub7zxBtrb23HttdfC4XAo6y+//HL4fD489dRTAACjUdxFtHPnzoJaQoPBALvdDgBKM/KOHTsK3sNut7NZmKiCMQgS0UFtypQp+1z/4IMPYvr06XA6nRg2bBiGDx+Ou+66C4lEArFYTPV1P3k/n3yfXCnb7qsncW1tbcG2GzZswMSJE5UQpvZ5+uOdd94BAEyfPr1gvcViwZQpU5TH6+rqcMEFF+D222/HqFGj8I1vfAN//OMfC4bymTt3Lo444gjl3sXLL78cL774YlmGziGi0jEIEtFBrXdNl+zvf/87LrroIhx99NF46623sHPnTrS1teHaa68FAEglDKbQe7gaANDpdCWX6ZPbat1+oMghzWw293nMYrEgm80qvy9duhT/+Mc/cOaZZ2Lt2rX4+te/jgkTJmD9+vUARM3f2rVr8cc//hFHHnkknnrqKcyZMwfHHnssIpHI4HwgItKMQZCIDjmPP/44hg8fjt///vc45phjMGrUKPh8PjQ3N5e7aIpp06Zhy5YtyGQyBes3btw4YO8h10xu3769YL0kSdi2bVtBradOp8NJJ52E++67D5s3b8batWsRiUQKhqapqqrC1772NfzpT39Cc3MzHnjgAaxduxaPPfbYgJWZiAYWgyARHXJMJhPS6TTS6bSybvfu3Vi2bFkZS1XorLPOQltbG/7whz8o66LRKO64444Be49TTz0VFosF99xzT0Et6HPPPYcdO3bgzDPPBCCmyvtkE+/MmTPR0NCArq4uAH2bxHU6Hc444wwAUJ5DRJWH4wgS0SFnwYIFeOyxx3DGGWfgvPPOQ0tLC+69915MmDAB7777brmLB0CU8bTTTsO3v/1tPP300zjssMPwzDPP4HOf+xw2b95cclPysmXL9jnUzNe+9jUsXLgQN954I6677jqccsopWLRoEbZt26bsC7mjyjvvvIMLLrgAZ599No444gjk83k8//zz2LZtG376058CAO644w78/e9/x2mnnYaxY8ciGAzioYcegsViweLFiwduxxDRgGIQJKIha/LkyZg7dy6sVmufxywWC+bOndtngGgAOOOMM/Doo4/irrvuwtVXX40xY8bg5ptvhtVqxcMPP1zQQeOLX/wiRo4cqfzu8Xgwd+5c+P3+gtc0GAyYO3cuGhsblXUTJ07E3LlzC5538sknY9q0aX3KNGvWrIJaNb1ej7/97W/4y1/+guXLlyORSOC+++6D1+vF8uXL4Xa7i+4bm82mvHexex6vueYaTJw4Effeey+uvvpquN1ufP/738d3vvMdOJ1OAEBjYyPmzJmD1157DY888ghsNhvGjRuHFStWKL2fTz75ZGzduhV/+tOf0NbWhpqaGsyYMQMPPvggxo4dW7SsRFQ+nGKOiGgIufbaa3Hbbbeho6OjYBYTIqL+YI0gEVGFuvPOOzF16lRMnToVwWAQK1aswO23346zzjqLIZCIBgSDIBFRhVq3bl3BANIOhwNf//rXcdttt5WxVER0MGHTMBFRBYtEIti1axcAYOzYsbDZbGUuEREdTBgEDzGSJCEUCqGzsxOhUAixWAyhUAiBQACdnZ2IRCJIpVLK0BqZTAbxeByxWAyJRALpdBrZbLbPUBI6nQ4GgwFGoxFmsxkmkwlGoxEmkwkmkwk2mw1erxfV1dVwOp1wuVyw2+1w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BAKwWCysESQiIqIho5TcMiSCYG9y75d4PF6wPhKJYNmyZfjlL38JnU6n+jpNTU1wOBz73EGLFi3CokWL+qzPZDIld3QhIiIiKqdScsugNQ3ncjls374d27dvRzKZRCAQwPbt27Fz507lOS+88AJOOeUUJBIJAMA777yDlStXIplMQpIkfPjhh7j00kvh8/nwpS99qeD1n3zySWQyGSxevLjPe7/88stYt24dcrkc0uk0nn32WfzmN7/B4sWLC8YVVJPP5zU9n4iIiKhcSsktg1YjGIlEMH78eOX3LVu24NFHH8W0adOwfv16AKKW7h//+Idyj15bWxsWLlyIWCwGo9GITCaD6dOn45lnnukzLs7SpUsxb9481NbW9nnv//znP7juuuug1+shSRLMZjMWLFiAW265RfPnYBAkIiKioUItt+gkSZIGoyCSJO2zEwYA5UbGfD6PfD4Pg8GgNO9ms1l8+OGHiEajaGhoQH19/T5fI5vNQq/X7/cDRyIR7NixA7lcDuPHj+/XDCFf/OIXkc/n8cYbb2jeloiIiGgwlZJbBq1GUKfTqfZc2VeQMxqNmDBhgurrq7220+nc77iBpTIYDMhkMp/qNYiIiIgGQym5he2cGshDyBARERFVulJyC4OgBiaTiTWCRERENCSUklsYBDVgjSARERENFawRHGCsESQiIqKhgjWCA8xqtSpjHBIRERFVslJyC4OgBna7HbFYrNzFICIiIlJVSm5hENTAYrEglUqVuxhEREREqkrJLQyCGthsNsTjcQzSGNxERERE/VZKbmEQ1MBmsyGXy7HDCBEREVW8UnILg6AGVVVVAIBkMlnmkhAREREVV0puYRDUQJ6fOB6Pl7kkRERERMWVklsYBDWorq4GAIRCoTKXhIiIiKi4UnILg6AGdXV1AIDW1tYyl4SIiIiouFJyC4OgBl6vFwAQCATKXBIiIiKi4krJLQyCGng8HgBAR0dHmUtCREREVFwpuYVBUIPhw4cDAPbs2VPmkhAREREVV0puYRDUwGKxwOfzMQgSERFRxSsltzAIauT3+9k0TEREREOCWm5hENTI5/OhpaWl3MUgIiIiUqWWWxgENRo2bBiHjyEiIqIhQS23MAhq5PF4EAwGy10MIiIiIlVquYVBUCOXy4VQKARJkspdFCIiIqKi1HILg6BG1dXVyGazSCQS5S4KERERUVFquYVBUCOn0wkAiEQiZS4JERERUXFquYVBUCN5AudwOFzmkhAREREVp5ZbGAQ1cjgcAIBoNFrmkhAREREVp5ZbGAQ1kuft6+rqKnNJiIiIiIpTyy0Mghr5fD4AQGdnZ5lLQkRERFScWm5hENSI9wgSERHRUMF7BAeY3NbOXsNERERU6dRyC4OgRjabDQAQj8fLXBIiIiKi4tRyC4OgRmazGTqdDslkstxFISIiIipKLbcwCGqk0+ngcDg4fAwRERFVPLXcwiDYD263u+gEzkRERESVolhuYRDsB6vVynsEiYiIaEgollsYBPvBYrEglUqVuxhEREREqorlFgbBfmAQJCIioqGCQXCAGY1GZLPZcheDiIiISFWx3MIg2A8GgwG5XK7cxSAiIiJSVSy3MAj2g8FgQD6fL3cxiIiIiFQVyy0MgkRERESHKAbBfsjlctDrueuIiIio8hXLLUwz/ZDNZmE0GstdDCIiIiJVxXILg2A/ZDIZmEymcheDiIiISFWx3MIg2A/pdBpms7ncxSAiIiJSVSy3MAj2QyqVQlVVVbmLQURERKSqWG5hEOyHdDrNpmEiIiIaEorllk8VBLds2YINGzYccmPq8R5BIiIiGioG5B7Bp59+Gl/96leV32+55RZMmjQJRx55JJYsWfLpSzmExGIx2O32cheDiIiISFWx3FJyEHz99dcxceJEAKKt+ec//znuv/9+bN26Fc888wzee++9gSlthcvn8wiHw3C73eUuChEREVFRarml5CAYDAZRW1sLAFi9ejUkScKSJUswfvx4fP7znz9kgmAwGIQkSfB6veUuChEREVFRarml5CBYX1+PzZs3AwCee+45nHDCCUpX5Ewmc8jcJxgMBgGANYJERERU8dRyS8nTY5x33nn47Gc/iy1btmDVqlX4v//7PwBitOq1a9fiZz/72QAUt/IFAgEAgMfjKXNJiIiIiIpTyy0l1whOmzYNq1atwkknnYTly5dj/vz5AIAdO3Zg0aJFmD59+gAUt/KFQiEAgMvlKnNJiIiIiIpTyy2aJsydOXMmZs6cWbBu3LhxuOeee/pZvKEnFosBAHsNExERUcVTyy0l1wiuX78ev/71r5XfX3vtNTQ2NmLUqFF47LHHPmUxh45oNAoAcDgcZS4JERERUXFquaXkIPjUU09hz549AABJkvDNb34TRx99NK644gp861vfwt69eweguJWvo6MDAFBTU1PmkhAREREVp5ZbSm4abmpqUu4D3LhxIz7++GOsXbsWXq8Xzz33HNasWYOzzjprAIpc2drb2wFAGUqHiIiIqFKp5ZaSawSrq6vR2dkJAHjllVcwY8YMZUwal8uldE8+2MXjcdhsNuj1nKaZiIiIKptabim5RnD27Nm4+OKL4XQ6cdddd+Hb3/42ANFMvHHjRlx22WUDU+IK19XVxTEEiYiIaEhQyy0lB8F58+Zh69atWL58OU4//XRcccUVAIAtW7Ygm83i6KOP/vSlHQI6Ozvh8/nKXQwiIiIiVWq5RSdJkjSI5em3RCIBs9kMg8HwqV4nl8shn8/DZDL1a/tjjz0Wdrsdr7zyyqcqBxEREdGBppZbNN3oJkkSVq1aheuvvx7f/va3ceutt2L79u0lbZvP5/GLX/wCZ555JsaNG4fTt79xRgAAIABJREFUTz+9pO0uueQS+P1+2Gw2WK1WzJo1C6+++mrBc+bPn4+xY8cWLN/97ncLnhMOh3HZZZfBZrOhqqoKixYtUnpBa9He3g6/3695OyIiIqLBppZbSm4azuVyOOecc7B8+XKMHz8ePp8PK1aswNVXX41bb70VV155ZdHtJUnC888/j6OOOgrBYBDNzc0lve/06dPx1a9+FYcddhgCgQB+9atf4fTTT8fHH3+Muro6AMDevXtx3HHH4bzzzlO2Gz58eMHrXHrppfj3v/+Nt956C9XV1Tj//PMxf/58rF69GjqdrtTdgEgkAqfTWfLziYiIiMpFLbeUHASfffZZrFy5EmvWrMGsWbMAiFq+Rx55BJdeeikWL16sBLN9MRgMWL16NQDge9/7HlauXFnS+1588cXKv8eOHYv7778ffr8fb775pjLNHQBMmDBhv7WMoVAITzzxBJ544gllZpR77rkHM2fOxLvvvqtperxoNMogSEREREOCWm4pOQi+8MILuOSSS5QQCAB6vR5LlizBQw89hJdffhmLFy/+dKUtwdq1a6HX6zF16tSC9du3b8cf/vAH1NTU4OSTTy4YQXv16tWQJAlf/vKXlXXTp0+H1+vFqlWr+gTBzZs3Y8uWLdDr9bBYLHC73fD7/Rg5ciTi8Th7DRMREVHFy2Qyqrml5CBoNpuV+ep6kyQJsVgMZrO5f6UswcqVK3HHHXego6MDu3btwlNPPYXx48cXPGfNmjX44IMPsG3bNiSTSTz44INYtGgRAOCDDz6AwWAoGFVbp9Ohrq5un/c4Llu2DD/5yU8K1p1zzjnKnMoej2eAPyERERHRwAoEAgCK55aSO4ucc845uP/++/Hoo48inU4DAILBIK6++mp88MEHmDNnzqcs7v75/X58/vOfx+c+9zkAwEMPPYREIqE8vmLFCmzfvh2rV6/Gnj17MH/+fFx44YXKINeZTAYWi6XPvYAWiwWZTKbP++VyuT7r3G638nqsESQiIqJKV0puKblG8POf/zyuuuoqLFmyBEuWLIHL5UIgEEB1dTUee+yxA3rf3OTJkzF58mQAwPe//300NjbioYceUga17t0bpqqqCrfeeisef/xxvPTSS1i4cCG8Xi/i8ThSqRQsFovy3EAgoMyO0tukSZMwb9485HI5pFIpBAIBHH744QiHwwDELCtERERElayU3FJyENTpdPjFL36BK664Aq+88gq6urowZswYfOlLX0JVVdWnL22J6uvrMWrUKGzbtm2/z5HHCJRr+z772c8CEHMky51FAoEAmpqaCu55lC1atEhpVu5NHoOHNYJERERU6UqpEdQ8YW5tbS3OPfdcXHrppTjttNNQVVWFr3zlKyWPJ1hMMBjE73//e+zcuROAGET6k3MYr1mzBtu2bcNxxx0HQHSL7n3voiRJuOWWW2A0GpXOIRMmTMDo0aPx8MMPK897/PHHYbFYcPzxx2sqH8AgSERERJVvQJuGi3nllVeU6sdi5s+fj61bt2Lv3r2IxWI44ogjAACrVq2Cy+VCW1sbLrnkEjz77LMYPXo0WltbMWnSJBx33HHw+/1obm7Gm2++iTlz5uDss88GAGzduhWzZ8/GcccdB7fbjY0bN2Lz5s249dZbUV9fD0D0br7//vsxf/58bN++HS6XCytWrMDdd9+tqeOH/Bk5fAwRERFVulJyy4AEwVJdfPHFfWr4AMBqtQIAhg0bhieffBIzZswAAIwaNQorV67E6tWr0dbWhhkzZuA3v/kNjjrqKKXjx9SpU/HUU09h/fr1CIVCOOGEEzB37lyMHj264D3mzJmDjz76CI899hhSqRR++ctfYty4cZrKHwqFAAAul0vzZyciIiIaTKXklkENgieffHLRx51OJ8455xzld71ej1mzZu3zPj6ZxWLBqaeeilNPPVX1/evr6/HDH/6w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4sTr7hMEAZIkISQkpMSLLgvXvatutm3bBgDYs2cPcnNzYbFY0L59e5w4cQIejwd169bFmjVrIEkSkpKSYLfbsXXrVpw8eRIGgwH9+vVDbGys//X0ej0aN27sD+tXrlzB+fPn0bFjR/z888+4dOkSunTpglatWpW5ZkmSsG7dOly4cAHt27dHly5drvvjwGq14qeffsLly5cRFhaGrl27olGjRgB8y9Js2rQJx48fh1qtRqtWrdCpU6di/+04NEyF9BoV/u+BdmhfLwz/+uEIvthyBvsuZGLKQx1QN8ygdHlERMUqLbcA1SgIZmVlYfDgwejQoQNee+21Yo85deoU1q9fjyVLllx3f1xcHNLS0mAw+P5jfenSJdx666146aWXsHz58iKv43YX3WLK6/UiNzcXISEhOHfuXLHvX12D4AcffAAAmDFjBiwWC1q2bImpU6figw8+wKlTp5CcnOyfYJOUlIShQ4ciOTkZTZs2xeXLl/H444/j888/93dhDx06hD59+viHhleuXImJEyeiXbt2uHr1KtRqNUaPHo0FCxYgKSlJdr2nT59Gv379IEkSWrdujb///e/o1KkTVqxYAYPBgIsXL6Jr166IiYlB8+bNkZ6ejnfeeQeHDh2Cx+PBPffcg927d6NXr16QJAmvvfYafv31V7Ro0aLIe7EjSNcSBAEjujdAqzqhGPfNHuw5n4WBn27CR39ti36t4pQuj4ioiNJyC1BNgmBOTg769+8Pk8mEZcuWlTikO2/ePMTExODuu+++7v4/rwFXp04djB8/Hs899xxcLleR12vRogUSExPhdrvhcDiQmZmJvLw8ZGVlITIyEr///nux7y9JUpHhUJfbA7VY8g4cVcGyZcsQFRWF2bNno3379tc9tnHjRmzcuBG9evXy3zdv3jxER0f7f545cyZee+01DB8+vMQgnJycjDfffBNjxowBAEyYMAFvv/12mYLghAkTEBkZifXr18NoNOLs2bNo3749pk2bhgkTJmDhwoWIj4/H77//7j/v+fn5AIATJ05g1apVuHTpkv/a0sKFvoujUqngcrlk10g1W8f64Vj1bG+8uGgf1h9Pw5Nf7caj3evj1YEtoNeolC6PiMivtNwCVIMgmJubi7vuugsAsHr16hLX6HO73Zg3bx5GjBgR1LZghUN+xXV7kpKSSgwocXFxSE1NhdfrLRLu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\n", + "text/plain": [ + "<Figure size 720x720 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_training(history)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.6.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}