{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "572dc7fb", "metadata": {}, "outputs": [], "source": [ "from matplotlib import pyplot as plt\n", "from matplotlib.image import imread\n", "import pandas as pd\n", "from collections import Counter\n", "import json\n", "import os\n", "import re\n", "import tempfile\n", "import numpy as np\n", "from os.path import exists\n", "from imblearn.under_sampling import RandomUnderSampler\n", "from PIL import ImageFile\n", "import sklearn as sk\n", "from sklearn.model_selection import train_test_split, StratifiedShuffleSplit\n", "import tensorflow as tf\n", "import tensorflow.keras\n", "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n", "from tensorflow.keras.layers import Conv2D, MaxPooling2D, Dense, Dropout, Flatten, Activation\n", "from tensorflow.keras.models import Sequential\n", "from tensorflow.keras.optimizers import Adam\n", "# custom modules\n", "import image_faults\n", "\n", "ImageFile.LOAD_TRUNCATED_IMAGES = True" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def add_regularization(model, regularizer=tf.keras.regularizers.l2(0.0001)):\n", "\n", " if not isinstance(regularizer, tf.keras.regularizers.Regularizer):\n", " print(\"Regularizer must be a subclass of tf.keras.regularizers.Regularizer\")\n", " return model\n", "\n", " for layer in model.layers:\n", " for attr in ['kernel_regularizer']:\n", " if hasattr(layer, attr):\n", " setattr(layer, attr, regularizer)\n", "\n", " # When we change the layers attributes, the change only happens in the model config file\n", " model_json = model.to_json()\n", "\n", " # Save the weights before reloading the model.\n", " tmp_weights_path = os.path.join(tempfile.gettempdir(), 'tmp_weights.h5')\n", " model.save_weights(tmp_weights_path)\n", "\n", " # load the model from the config\n", " model = tf.keras.models.model_from_json(model_json)\n", " \n", " # Reload the model weights\n", " model.load_weights(tmp_weights_path, by_name=True)\n", " return model" ] }, { "cell_type": "code", "execution_count": 3, "id": "a5c72863", "metadata": {}, "outputs": [], "source": [ "# image_faults.faulty_images() # removes faulty images\n", "df = pd.read_csv('expanded_class.csv', index_col=[0], low_memory=False)" ] }, { "cell_type": "code", "execution_count": 4, "id": "1057a442", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{source:target} dictionary created @ /tf/training_images\n" ] } ], "source": [ "def dict_pics():\n", " target_dir = os.getcwd() + os.sep + \"training_images\"\n", " with open('temp_pics_source_list.txt') as f:\n", " temp_pics_source_list = json.load(f)\n", " dict_pics = {k:target_dir + os.sep + re.search(r'[^/]+(?=/\\$_|.jpg)', k, re.IGNORECASE).group() + '.jpg' for k in temp_pics_source_list}\n", " print(\"{source:target} dictionary created @ \" + target_dir)\n", " return dict_pics\n", "\n", "dict_pics = dict_pics()\n", "blah = pd.Series(df.PictureURL)\n", "df = df.drop(labels=['PictureURL'], axis=1)\n", "blah = blah.apply(lambda x: dict_pics[x])\n", "df = pd.concat([blah, df],axis=1)\n", "df = df.groupby('PrimaryCategoryID').filter(lambda x: len(x)>25) # removes cat outliers\n", "# removes non-existent image paths" ] }, { "cell_type": "code", "execution_count": 5, "id": "7a6146e6", "metadata": {}, "outputs": [], "source": [ "df['PrimaryCategoryID'] = df['PrimaryCategoryID'].astype(str) # pandas thinks ids are ints\n", "\n", "df=df.sample(frac=1)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "undersample = RandomUnderSampler(sampling_strategy='auto')\n", "train, y_under = undersample.fit_resample(df, df['PrimaryCategoryID'])\n", "#print(Counter(train['PrimaryCategoryID']))" ] }, { "cell_type": "code", "execution_count": 7, "id": "506aa5cf", "metadata": {}, "outputs": [], "source": [ "train, test = train_test_split(train, test_size=0.2, random_state=42)\n", "# stratify=train['PrimaryCategoryID']\n", "# train['PrimaryCategoryID'].value_counts()" ] }, { "cell_type": "code", "execution_count": 8, "id": "4d72eb90", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 4542 validated image filenames belonging to 13 classes.\n", "Found 1135 validated image filenames belonging to 13 classes.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/dataframe_iterator.py:279: UserWarning: Found 1 invalid image filename(s) in x_col=\"PictureURL\". These filename(s) will be ignored.\n", " warnings.warn(\n" ] } ], "source": [ "datagen = ImageDataGenerator(rescale=1./255., \n", " validation_split=.2,\n", " #samplewise_std_normalization=True,\n", " #horizontal_flip= True,\n", " #vertical_flip= True,\n", " #width_shift_range= 0.2,\n", " #height_shift_range= 0.2,\n", " #rotation_range= 90,\n", " preprocessing_function=tf.keras.applications.inception_resnet_v2.preprocess_input)\n", "train_generator=datagen.flow_from_dataframe(\n", " dataframe=train[:len(train)],\n", " directory='./training_images',\n", " x_col='PictureURL',\n", " y_col='PrimaryCategoryID',\n", " batch_size=32,\n", " seed=42,\n", " shuffle=True,\n", " target_size=(299,299),\n", " subset='training'\n", " )\n", "validation_generator=datagen.flow_from_dataframe(\n", " dataframe=train[:len(train)], # is using train right?\n", " directory='./training_images',\n", " x_col='PictureURL',\n", " y_col='PrimaryCategoryID',\n", " batch_size=32,\n", " seed=42,\n", " shuffle=True,\n", " target_size=(299,299),\n", " subset='validation'\n", " )" ] }, { "cell_type": "code", "execution_count": 9, "id": "7b70f37f", "metadata": {}, "outputs": [], "source": [ "imgs, labels = next(train_generator)" ] }, { "cell_type": "code", "execution_count": 10, "id": "1ed54bf5", "metadata": {}, "outputs": [], "source": [ "def plotImages(images_arr):\n", " fig, axes = plt.subplots(1, 10, figsize=(20,20))\n", " axes = axes.flatten()\n", " for img, ax in zip( images_arr, axes):\n", " ax.imshow(img)\n", " ax.axis('off')\n", " plt.tight_layout()\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 11, "id": "85934565", "metadata": {}, "outputs": [], "source": [ "#plotImages(imgs)\n", "#print(labels)" ] }, { "cell_type": "code", "execution_count": 12, "id": "6322bcad", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n" ] } ], "source": [ "physical_devices = tf.config.list_physical_devices('GPU')\n", "print(len(physical_devices))\n", "tf.config.experimental.set_memory_growth(physical_devices[0], True)" ] }, { "cell_type": "code", "execution_count": 13, "id": "07fd25c6", "metadata": {}, "outputs": [], "source": [ "# see https://www.kaggle.com/dmitrypukhov/cnn-with-imagedatagenerator-flow-from-dataframe for train/test/val split \n", "# example\n", "\n", "# may need to either create a test dataset from the original dataset or just download a new one" ] }, { "cell_type": "code", "execution_count": 14, "id": "b31af79e", "metadata": {}, "outputs": [], "source": [ "base_model = tf.keras.applications.inception_resnet_v2.InceptionResNetV2(include_top=False, weights='imagenet', pooling='avg')\n", "#base_model.summary()" ] }, { "cell_type": "code", "execution_count": 15, "id": "fe06f2bf", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"model\"\n", "__________________________________________________________________________________________________\n", " Layer (type) Output Shape Param # Connected to \n", "==================================================================================================\n", " input_1 (InputLayer) [(None, None, None, 0 [] \n", " 3)] \n", " \n", " conv2d (Conv2D) (None, None, None, 864 ['input_1[0][0]'] \n", " 32) \n", " \n", " batch_normalization (BatchNorm (None, None, None, 96 ['conv2d[0][0]'] \n", " alization) 32) \n", " \n", " activation (Activation) (None, None, None, 0 ['batch_normalization[0][0]'] \n", " 32) \n", " \n", " conv2d_1 (Conv2D) (None, None, None, 9216 ['activation[0][0]'] \n", " 32) \n", " \n", " batch_normalization_1 (BatchNo (None, None, None, 96 ['conv2d_1[0][0]'] \n", " rmalization) 32) \n", " \n", " activation_1 (Activation) (None, None, None, 0 ['batch_normalization_1[0][0]'] \n", " 32) \n", " \n", " conv2d_2 (Conv2D) (None, None, None, 18432 ['activation_1[0][0]'] \n", " 64) \n", " \n", " batch_normalization_2 (BatchNo (None, None, None, 192 ['conv2d_2[0][0]'] \n", " rmalization) 64) \n", " \n", " activation_2 (Activation) (None, None, None, 0 ['batch_normalization_2[0][0]'] \n", " 64) \n", " \n", " max_pooling2d (MaxPooling2D) (None, None, None, 0 ['activation_2[0][0]'] \n", " 64) \n", " \n", " conv2d_3 (Conv2D) (None, None, None, 5120 ['max_pooling2d[0][0]'] \n", " 80) \n", " \n", " batch_normalization_3 (BatchNo (None, None, None, 240 ['conv2d_3[0][0]'] \n", " rmalization) 80) \n", " \n", " activation_3 (Activation) (None, None, None, 0 ['batch_normalization_3[0][0]'] \n", " 80) \n", " \n", " conv2d_4 (Conv2D) (None, None, None, 138240 ['activation_3[0][0]'] \n", " 192) \n", " \n", " batch_normalization_4 (BatchNo (None, None, None, 576 ['conv2d_4[0][0]'] \n", " rmalization) 192) \n", " \n", " activation_4 (Activation) (None, None, None, 0 ['batch_normalization_4[0][0]'] \n", " 192) \n", " \n", " max_pooling2d_1 (MaxPooling2D) (None, None, None, 0 ['activation_4[0][0]'] \n", " 192) \n", " \n", " conv2d_8 (Conv2D) (None, None, None, 12288 ['max_pooling2d_1[0][0]'] \n", " 64) \n", " \n", " batch_normalization_8 (BatchNo (None, None, None, 192 ['conv2d_8[0][0]'] \n", " rmalization) 64) \n", " \n", " activation_8 (Activation) (None, None, None, 0 ['batch_normalization_8[0][0]'] \n", " 64) \n", " \n", " conv2d_6 (Conv2D) (None, None, None, 9216 ['max_pooling2d_1[0][0]'] \n", " 48) \n", " \n", " conv2d_9 (Conv2D) (None, None, None, 55296 ['activation_8[0][0]'] \n", " 96) \n", " \n", " batch_normalization_6 (BatchNo (None, None, None, 144 ['conv2d_6[0][0]'] \n", " rmalization) 48) \n", " \n", " batch_normalization_9 (BatchNo (None, None, None, 288 ['conv2d_9[0][0]'] \n", " rmalization) 96) \n", " \n", " activation_6 (Activation) (None, None, None, 0 ['batch_normalization_6[0][0]'] \n", " 48) \n", " \n", " activation_9 (Activation) (None, None, None, 0 ['batch_normalization_9[0][0]'] \n", " 96) \n", " \n", " average_pooling2d (AveragePool (None, None, None, 0 ['max_pooling2d_1[0][0]'] \n", " ing2D) 192) \n", " \n", " conv2d_5 (Conv2D) (None, None, None, 18432 ['max_pooling2d_1[0][0]'] \n", " 96) \n", " \n", " conv2d_7 (Conv2D) (None, None, None, 76800 ['activation_6[0][0]'] \n", " 64) \n", " \n", " conv2d_10 (Conv2D) (None, None, None, 82944 ['activation_9[0][0]'] \n", " 96) \n", " \n", " conv2d_11 (Conv2D) (None, None, None, 12288 ['average_pooling2d[0][0]'] \n", " 64) \n", " \n", " batch_normalization_5 (BatchNo (None, None, None, 288 ['conv2d_5[0][0]'] \n", " rmalization) 96) \n", " \n", " batch_normalization_7 (BatchNo (None, None, None, 192 ['conv2d_7[0][0]'] \n", " rmalization) 64) \n", " \n", " batch_normalization_10 (BatchN (None, None, None, 288 ['conv2d_10[0][0]'] \n", " ormalization) 96) \n", " \n", " batch_normalization_11 (BatchN (None, None, None, 192 ['conv2d_11[0][0]'] \n", " ormalization) 64) \n", " \n", " activation_5 (Activation) (None, None, None, 0 ['batch_normalization_5[0][0]'] \n", " 96) \n", " \n", " activation_7 (Activation) (None, None, None, 0 ['batch_normalization_7[0][0]'] \n", " 64) \n", " \n", " activation_10 (Activation) (None, None, None, 0 ['batch_normalization_10[0][0]'] \n", " 96) \n", " \n", " activation_11 (Activation) (None, None, None, 0 ['batch_normalization_11[0][0]'] \n", " 64) \n", " \n", " mixed_5b (Concatenate) (None, None, None, 0 ['activation_5[0][0]', \n", " 320) 'activation_7[0][0]', \n", " 'activation_10[0][0]', \n", " 'activation_11[0][0]'] \n", " \n", " conv2d_15 (Conv2D) (None, None, None, 10240 ['mixed_5b[0][0]'] \n", " 32) \n", " \n", " batch_normalization_15 (BatchN (None, None, None, 96 ['conv2d_15[0][0]'] \n", " ormalization) 32) \n", " \n", " activation_15 (Activation) (None, None, None, 0 ['batch_normalization_15[0][0]'] \n", " 32) \n", " \n", " conv2d_13 (Conv2D) (None, None, None, 10240 ['mixed_5b[0][0]'] \n", " 32) \n", " \n", " conv2d_16 (Conv2D) (None, None, None, 13824 ['activation_15[0][0]'] \n", " 48) \n", " \n", " batch_normalization_13 (BatchN (None, None, None, 96 ['conv2d_13[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_16 (BatchN (None, None, None, 144 ['conv2d_16[0][0]'] \n", " ormalization) 48) \n", " \n", " activation_13 (Activation) (None, None, None, 0 ['batch_normalization_13[0][0]'] \n", " 32) \n", " \n", " activation_16 (Activation) (None, None, None, 0 ['batch_normalization_16[0][0]'] \n", " 48) \n", " \n", " conv2d_12 (Conv2D) (None, None, None, 10240 ['mixed_5b[0][0]'] \n", " 32) \n", " \n", " conv2d_14 (Conv2D) (None, None, None, 9216 ['activation_13[0][0]'] \n", " 32) \n", " \n", " conv2d_17 (Conv2D) (None, None, None, 27648 ['activation_16[0][0]'] \n", " 64) \n", " \n", " batch_normalization_12 (BatchN (None, None, None, 96 ['conv2d_12[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_14 (BatchN (None, None, None, 96 ['conv2d_14[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_17 (BatchN (None, None, None, 192 ['conv2d_17[0][0]'] \n", " ormalization) 64) \n", " \n", " activation_12 (Activation) (None, None, None, 0 ['batch_normalization_12[0][0]'] \n", " 32) \n", " \n", " activation_14 (Activation) (None, None, None, 0 ['batch_normalization_14[0][0]'] \n", " 32) \n", " \n", " activation_17 (Activation) (None, None, None, 0 ['batch_normalization_17[0][0]'] \n", " 64) \n", " \n", " block35_1_mixed (Concatenate) (None, None, None, 0 ['activation_12[0][0]', \n", " 128) 'activation_14[0][0]', \n", " 'activation_17[0][0]'] \n", " \n", " block35_1_conv (Conv2D) (None, None, None, 41280 ['block35_1_mixed[0][0]'] \n", " 320) \n", " \n", " block35_1 (Lambda) (None, None, None, 0 ['mixed_5b[0][0]', \n", " 320) 'block35_1_conv[0][0]'] \n", " \n", " block35_1_ac (Activation) (None, None, None, 0 ['block35_1[0][0]'] \n", " 320) \n", " \n", " conv2d_21 (Conv2D) (None, None, None, 10240 ['block35_1_ac[0][0]'] \n", " 32) \n", " \n", " batch_normalization_21 (BatchN (None, None, None, 96 ['conv2d_21[0][0]'] \n", " ormalization) 32) \n", " \n", " activation_21 (Activation) (None, None, None, 0 ['batch_normalization_21[0][0]'] \n", " 32) \n", " \n", " conv2d_19 (Conv2D) (None, None, None, 10240 ['block35_1_ac[0][0]'] \n", " 32) \n", " \n", " conv2d_22 (Conv2D) (None, None, None, 13824 ['activation_21[0][0]'] \n", " 48) \n", " \n", " batch_normalization_19 (BatchN (None, None, None, 96 ['conv2d_19[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_22 (BatchN (None, None, None, 144 ['conv2d_22[0][0]'] \n", " ormalization) 48) \n", " \n", " activation_19 (Activation) (None, None, None, 0 ['batch_normalization_19[0][0]'] \n", " 32) \n", " \n", " activation_22 (Activation) (None, None, None, 0 ['batch_normalization_22[0][0]'] \n", " 48) \n", " \n", " conv2d_18 (Conv2D) (None, None, None, 10240 ['block35_1_ac[0][0]'] \n", " 32) \n", " \n", " conv2d_20 (Conv2D) (None, None, None, 9216 ['activation_19[0][0]'] \n", " 32) \n", " \n", " conv2d_23 (Conv2D) (None, None, None, 27648 ['activation_22[0][0]'] \n", " 64) \n", " \n", " batch_normalization_18 (BatchN (None, None, None, 96 ['conv2d_18[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_20 (BatchN (None, None, None, 96 ['conv2d_20[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_23 (BatchN (None, None, None, 192 ['conv2d_23[0][0]'] \n", " ormalization) 64) \n", " \n", " activation_18 (Activation) (None, None, None, 0 ['batch_normalization_18[0][0]'] \n", " 32) \n", " \n", " activation_20 (Activation) (None, None, None, 0 ['batch_normalization_20[0][0]'] \n", " 32) \n", " \n", " activation_23 (Activation) (None, None, None, 0 ['batch_normalization_23[0][0]'] \n", " 64) \n", " \n", " block35_2_mixed (Concatenate) (None, None, None, 0 ['activation_18[0][0]', \n", " 128) 'activation_20[0][0]', \n", " 'activation_23[0][0]'] \n", " \n", " block35_2_conv (Conv2D) (None, None, None, 41280 ['block35_2_mixed[0][0]'] \n", " 320) \n", " \n", " block35_2 (Lambda) (None, None, None, 0 ['block35_1_ac[0][0]', \n", " 320) 'block35_2_conv[0][0]'] \n", " \n", " block35_2_ac (Activation) (None, None, None, 0 ['block35_2[0][0]'] \n", " 320) \n", " \n", " conv2d_27 (Conv2D) (None, None, None, 10240 ['block35_2_ac[0][0]'] \n", " 32) \n", " \n", " batch_normalization_27 (BatchN (None, None, None, 96 ['conv2d_27[0][0]'] \n", " ormalization) 32) \n", " \n", " activation_27 (Activation) (None, None, None, 0 ['batch_normalization_27[0][0]'] \n", " 32) \n", " \n", " conv2d_25 (Conv2D) (None, None, None, 10240 ['block35_2_ac[0][0]'] \n", " 32) \n", " \n", " conv2d_28 (Conv2D) (None, None, None, 13824 ['activation_27[0][0]'] \n", " 48) \n", " \n", " batch_normalization_25 (BatchN (None, None, None, 96 ['conv2d_25[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_28 (BatchN (None, None, None, 144 ['conv2d_28[0][0]'] \n", " ormalization) 48) \n", " \n", " activation_25 (Activation) (None, None, None, 0 ['batch_normalization_25[0][0]'] \n", " 32) \n", " \n", " activation_28 (Activation) (None, None, None, 0 ['batch_normalization_28[0][0]'] \n", " 48) \n", " \n", " conv2d_24 (Conv2D) (None, None, None, 10240 ['block35_2_ac[0][0]'] \n", " 32) \n", " \n", " conv2d_26 (Conv2D) (None, None, None, 9216 ['activation_25[0][0]'] \n", " 32) \n", " \n", " conv2d_29 (Conv2D) (None, None, None, 27648 ['activation_28[0][0]'] \n", " 64) \n", " \n", " batch_normalization_24 (BatchN (None, None, None, 96 ['conv2d_24[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_26 (BatchN (None, None, None, 96 ['conv2d_26[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_29 (BatchN (None, None, None, 192 ['conv2d_29[0][0]'] \n", " ormalization) 64) \n", " \n", " activation_24 (Activation) (None, None, None, 0 ['batch_normalization_24[0][0]'] \n", " 32) \n", " \n", " activation_26 (Activation) (None, None, None, 0 ['batch_normalization_26[0][0]'] \n", " 32) \n", " \n", " activation_29 (Activation) (None, None, None, 0 ['batch_normalization_29[0][0]'] \n", " 64) \n", " \n", " block35_3_mixed (Concatenate) (None, None, None, 0 ['activation_24[0][0]', \n", " 128) 'activation_26[0][0]', \n", " 'activation_29[0][0]'] \n", " \n", " block35_3_conv (Conv2D) (None, None, None, 41280 ['block35_3_mixed[0][0]'] \n", " 320) \n", " \n", " block35_3 (Lambda) (None, None, None, 0 ['block35_2_ac[0][0]', \n", " 320) 'block35_3_conv[0][0]'] \n", " \n", " block35_3_ac (Activation) (None, None, None, 0 ['block35_3[0][0]'] \n", " 320) \n", " \n", " conv2d_33 (Conv2D) (None, None, None, 10240 ['block35_3_ac[0][0]'] \n", " 32) \n", " \n", " batch_normalization_33 (BatchN (None, None, None, 96 ['conv2d_33[0][0]'] \n", " ormalization) 32) \n", " \n", " activation_33 (Activation) (None, None, None, 0 ['batch_normalization_33[0][0]'] \n", " 32) \n", " \n", " conv2d_31 (Conv2D) (None, None, None, 10240 ['block35_3_ac[0][0]'] \n", " 32) \n", " \n", " conv2d_34 (Conv2D) (None, None, None, 13824 ['activation_33[0][0]'] \n", " 48) \n", " \n", " batch_normalization_31 (BatchN (None, None, None, 96 ['conv2d_31[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_34 (BatchN (None, None, None, 144 ['conv2d_34[0][0]'] \n", " ormalization) 48) \n", " \n", " activation_31 (Activation) (None, None, None, 0 ['batch_normalization_31[0][0]'] \n", " 32) \n", " \n", " activation_34 (Activation) (None, None, None, 0 ['batch_normalization_34[0][0]'] \n", " 48) \n", " \n", " conv2d_30 (Conv2D) (None, None, None, 10240 ['block35_3_ac[0][0]'] \n", " 32) \n", " \n", " conv2d_32 (Conv2D) (None, None, None, 9216 ['activation_31[0][0]'] \n", " 32) \n", " \n", " conv2d_35 (Conv2D) (None, None, None, 27648 ['activation_34[0][0]'] \n", " 64) \n", " \n", " batch_normalization_30 (BatchN (None, None, None, 96 ['conv2d_30[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_32 (BatchN (None, None, None, 96 ['conv2d_32[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_35 (BatchN (None, None, None, 192 ['conv2d_35[0][0]'] \n", " ormalization) 64) \n", " \n", " activation_30 (Activation) (None, None, None, 0 ['batch_normalization_30[0][0]'] \n", " 32) \n", " \n", " activation_32 (Activation) (None, None, None, 0 ['batch_normalization_32[0][0]'] \n", " 32) \n", " \n", " activation_35 (Activation) (None, None, None, 0 ['batch_normalization_35[0][0]'] \n", " 64) \n", " \n", " block35_4_mixed (Concatenate) (None, None, None, 0 ['activation_30[0][0]', \n", " 128) 'activation_32[0][0]', \n", " 'activation_35[0][0]'] \n", " \n", " block35_4_conv (Conv2D) (None, None, None, 41280 ['block35_4_mixed[0][0]'] \n", " 320) \n", " \n", " block35_4 (Lambda) (None, None, None, 0 ['block35_3_ac[0][0]', \n", " 320) 'block35_4_conv[0][0]'] \n", " \n", " block35_4_ac (Activation) (None, None, None, 0 ['block35_4[0][0]'] \n", " 320) \n", " \n", " conv2d_39 (Conv2D) (None, None, None, 10240 ['block35_4_ac[0][0]'] \n", " 32) \n", " \n", " batch_normalization_39 (BatchN (None, None, None, 96 ['conv2d_39[0][0]'] \n", " ormalization) 32) \n", " \n", " activation_39 (Activation) (None, None, None, 0 ['batch_normalization_39[0][0]'] \n", " 32) \n", " \n", " conv2d_37 (Conv2D) (None, None, None, 10240 ['block35_4_ac[0][0]'] \n", " 32) \n", " \n", " conv2d_40 (Conv2D) (None, None, None, 13824 ['activation_39[0][0]'] \n", " 48) \n", " \n", " batch_normalization_37 (BatchN (None, None, None, 96 ['conv2d_37[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_40 (BatchN (None, None, None, 144 ['conv2d_40[0][0]'] \n", " ormalization) 48) \n", " \n", " activation_37 (Activation) (None, None, None, 0 ['batch_normalization_37[0][0]'] \n", " 32) \n", " \n", " activation_40 (Activation) (None, None, None, 0 ['batch_normalization_40[0][0]'] \n", " 48) \n", " \n", " conv2d_36 (Conv2D) (None, None, None, 10240 ['block35_4_ac[0][0]'] \n", " 32) \n", " \n", " conv2d_38 (Conv2D) (None, None, None, 9216 ['activation_37[0][0]'] \n", " 32) \n", " \n", " conv2d_41 (Conv2D) (None, None, None, 27648 ['activation_40[0][0]'] \n", " 64) \n", " \n", " batch_normalization_36 (BatchN (None, None, None, 96 ['conv2d_36[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_38 (BatchN (None, None, None, 96 ['conv2d_38[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_41 (BatchN (None, None, None, 192 ['conv2d_41[0][0]'] \n", " ormalization) 64) \n", " \n", " activation_36 (Activation) (None, None, None, 0 ['batch_normalization_36[0][0]'] \n", " 32) \n", " \n", " activation_38 (Activation) (None, None, None, 0 ['batch_normalization_38[0][0]'] \n", " 32) \n", " \n", " activation_41 (Activation) (None, None, None, 0 ['batch_normalization_41[0][0]'] \n", " 64) \n", " \n", " block35_5_mixed (Concatenate) (None, None, None, 0 ['activation_36[0][0]', \n", " 128) 'activation_38[0][0]', \n", " 'activation_41[0][0]'] \n", " \n", " block35_5_conv (Conv2D) (None, None, None, 41280 ['block35_5_mixed[0][0]'] \n", " 320) \n", " \n", " block35_5 (Lambda) (None, None, None, 0 ['block35_4_ac[0][0]', \n", " 320) 'block35_5_conv[0][0]'] \n", " \n", " block35_5_ac (Activation) (None, None, None, 0 ['block35_5[0][0]'] \n", " 320) \n", " \n", " conv2d_45 (Conv2D) (None, None, None, 10240 ['block35_5_ac[0][0]'] \n", " 32) \n", " \n", " batch_normalization_45 (BatchN (None, None, None, 96 ['conv2d_45[0][0]'] \n", " ormalization) 32) \n", " \n", " activation_45 (Activation) (None, None, None, 0 ['batch_normalization_45[0][0]'] \n", " 32) \n", " \n", " conv2d_43 (Conv2D) (None, None, None, 10240 ['block35_5_ac[0][0]'] \n", " 32) \n", " \n", " conv2d_46 (Conv2D) (None, None, None, 13824 ['activation_45[0][0]'] \n", " 48) \n", " \n", " batch_normalization_43 (BatchN (None, None, None, 96 ['conv2d_43[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_46 (BatchN (None, None, None, 144 ['conv2d_46[0][0]'] \n", " ormalization) 48) \n", " \n", " activation_43 (Activation) (None, None, None, 0 ['batch_normalization_43[0][0]'] \n", " 32) \n", " \n", " activation_46 (Activation) (None, None, None, 0 ['batch_normalization_46[0][0]'] \n", " 48) \n", " \n", " conv2d_42 (Conv2D) (None, None, None, 10240 ['block35_5_ac[0][0]'] \n", " 32) \n", " \n", " conv2d_44 (Conv2D) (None, None, None, 9216 ['activation_43[0][0]'] \n", " 32) \n", " \n", " conv2d_47 (Conv2D) (None, None, None, 27648 ['activation_46[0][0]'] \n", " 64) \n", " \n", " batch_normalization_42 (BatchN (None, None, None, 96 ['conv2d_42[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_44 (BatchN (None, None, None, 96 ['conv2d_44[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_47 (BatchN (None, None, None, 192 ['conv2d_47[0][0]'] \n", " ormalization) 64) \n", " \n", " activation_42 (Activation) (None, None, None, 0 ['batch_normalization_42[0][0]'] \n", " 32) \n", " \n", " activation_44 (Activation) (None, None, None, 0 ['batch_normalization_44[0][0]'] \n", " 32) \n", " \n", " activation_47 (Activation) (None, None, None, 0 ['batch_normalization_47[0][0]'] \n", " 64) \n", " \n", " block35_6_mixed (Concatenate) (None, None, None, 0 ['activation_42[0][0]', \n", " 128) 'activation_44[0][0]', \n", " 'activation_47[0][0]'] \n", " \n", " block35_6_conv (Conv2D) (None, None, None, 41280 ['block35_6_mixed[0][0]'] \n", " 320) \n", " \n", " block35_6 (Lambda) (None, None, None, 0 ['block35_5_ac[0][0]', \n", " 320) 'block35_6_conv[0][0]'] \n", " \n", " block35_6_ac (Activation) (None, None, None, 0 ['block35_6[0][0]'] \n", " 320) \n", " \n", " conv2d_51 (Conv2D) (None, None, None, 10240 ['block35_6_ac[0][0]'] \n", " 32) \n", " \n", " batch_normalization_51 (BatchN (None, None, None, 96 ['conv2d_51[0][0]'] \n", " ormalization) 32) \n", " \n", " activation_51 (Activation) (None, None, None, 0 ['batch_normalization_51[0][0]'] \n", " 32) \n", " \n", " conv2d_49 (Conv2D) (None, None, None, 10240 ['block35_6_ac[0][0]'] \n", " 32) \n", " \n", " conv2d_52 (Conv2D) (None, None, None, 13824 ['activation_51[0][0]'] \n", " 48) \n", " \n", " batch_normalization_49 (BatchN (None, None, None, 96 ['conv2d_49[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_52 (BatchN (None, None, None, 144 ['conv2d_52[0][0]'] \n", " ormalization) 48) \n", " \n", " activation_49 (Activation) (None, None, None, 0 ['batch_normalization_49[0][0]'] \n", " 32) \n", " \n", " activation_52 (Activation) (None, None, None, 0 ['batch_normalization_52[0][0]'] \n", " 48) \n", " \n", " conv2d_48 (Conv2D) (None, None, None, 10240 ['block35_6_ac[0][0]'] \n", " 32) \n", " \n", " conv2d_50 (Conv2D) (None, None, None, 9216 ['activation_49[0][0]'] \n", " 32) \n", " \n", " conv2d_53 (Conv2D) (None, None, None, 27648 ['activation_52[0][0]'] \n", " 64) \n", " \n", " batch_normalization_48 (BatchN (None, None, None, 96 ['conv2d_48[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_50 (BatchN (None, None, None, 96 ['conv2d_50[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_53 (BatchN (None, None, None, 192 ['conv2d_53[0][0]'] \n", " ormalization) 64) \n", " \n", " activation_48 (Activation) (None, None, None, 0 ['batch_normalization_48[0][0]'] \n", " 32) \n", " \n", " activation_50 (Activation) (None, None, None, 0 ['batch_normalization_50[0][0]'] \n", " 32) \n", " \n", " activation_53 (Activation) (None, None, None, 0 ['batch_normalization_53[0][0]'] \n", " 64) \n", " \n", " block35_7_mixed (Concatenate) (None, None, None, 0 ['activation_48[0][0]', \n", " 128) 'activation_50[0][0]', \n", " 'activation_53[0][0]'] \n", " \n", " block35_7_conv (Conv2D) (None, None, None, 41280 ['block35_7_mixed[0][0]'] \n", " 320) \n", " \n", " block35_7 (Lambda) (None, None, None, 0 ['block35_6_ac[0][0]', \n", " 320) 'block35_7_conv[0][0]'] \n", " \n", " block35_7_ac (Activation) (None, None, None, 0 ['block35_7[0][0]'] \n", " 320) \n", " \n", " conv2d_57 (Conv2D) (None, None, None, 10240 ['block35_7_ac[0][0]'] \n", " 32) \n", " \n", " batch_normalization_57 (BatchN (None, None, None, 96 ['conv2d_57[0][0]'] \n", " ormalization) 32) \n", " \n", " activation_57 (Activation) (None, None, None, 0 ['batch_normalization_57[0][0]'] \n", " 32) \n", " \n", " conv2d_55 (Conv2D) (None, None, None, 10240 ['block35_7_ac[0][0]'] \n", " 32) \n", " \n", " conv2d_58 (Conv2D) (None, None, None, 13824 ['activation_57[0][0]'] \n", " 48) \n", " \n", " batch_normalization_55 (BatchN (None, None, None, 96 ['conv2d_55[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_58 (BatchN (None, None, None, 144 ['conv2d_58[0][0]'] \n", " ormalization) 48) \n", " \n", " activation_55 (Activation) (None, None, None, 0 ['batch_normalization_55[0][0]'] \n", " 32) \n", " \n", " activation_58 (Activation) (None, None, None, 0 ['batch_normalization_58[0][0]'] \n", " 48) \n", " \n", " conv2d_54 (Conv2D) (None, None, None, 10240 ['block35_7_ac[0][0]'] \n", " 32) \n", " \n", " conv2d_56 (Conv2D) (None, None, None, 9216 ['activation_55[0][0]'] \n", " 32) \n", " \n", " conv2d_59 (Conv2D) (None, None, None, 27648 ['activation_58[0][0]'] \n", " 64) \n", " \n", " batch_normalization_54 (BatchN (None, None, None, 96 ['conv2d_54[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_56 (BatchN (None, None, None, 96 ['conv2d_56[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_59 (BatchN (None, None, None, 192 ['conv2d_59[0][0]'] \n", " ormalization) 64) \n", " \n", " activation_54 (Activation) (None, None, None, 0 ['batch_normalization_54[0][0]'] \n", " 32) \n", " \n", " activation_56 (Activation) (None, None, None, 0 ['batch_normalization_56[0][0]'] \n", " 32) \n", " \n", " activation_59 (Activation) (None, None, None, 0 ['batch_normalization_59[0][0]'] \n", " 64) \n", " \n", " block35_8_mixed (Concatenate) (None, None, None, 0 ['activation_54[0][0]', \n", " 128) 'activation_56[0][0]', \n", " 'activation_59[0][0]'] \n", " \n", " block35_8_conv (Conv2D) (None, None, None, 41280 ['block35_8_mixed[0][0]'] \n", " 320) \n", " \n", " block35_8 (Lambda) (None, None, None, 0 ['block35_7_ac[0][0]', \n", " 320) 'block35_8_conv[0][0]'] \n", " \n", " block35_8_ac (Activation) (None, None, None, 0 ['block35_8[0][0]'] \n", " 320) \n", " \n", " conv2d_63 (Conv2D) (None, None, None, 10240 ['block35_8_ac[0][0]'] \n", " 32) \n", " \n", " batch_normalization_63 (BatchN (None, None, None, 96 ['conv2d_63[0][0]'] \n", " ormalization) 32) \n", " \n", " activation_63 (Activation) (None, None, None, 0 ['batch_normalization_63[0][0]'] \n", " 32) \n", " \n", " conv2d_61 (Conv2D) (None, None, None, 10240 ['block35_8_ac[0][0]'] \n", " 32) \n", " \n", " conv2d_64 (Conv2D) (None, None, None, 13824 ['activation_63[0][0]'] \n", " 48) \n", " \n", " batch_normalization_61 (BatchN (None, None, None, 96 ['conv2d_61[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_64 (BatchN (None, None, None, 144 ['conv2d_64[0][0]'] \n", " ormalization) 48) \n", " \n", " activation_61 (Activation) (None, None, None, 0 ['batch_normalization_61[0][0]'] \n", " 32) \n", " \n", " activation_64 (Activation) (None, None, None, 0 ['batch_normalization_64[0][0]'] \n", " 48) \n", " \n", " conv2d_60 (Conv2D) (None, None, None, 10240 ['block35_8_ac[0][0]'] \n", " 32) \n", " \n", " conv2d_62 (Conv2D) (None, None, None, 9216 ['activation_61[0][0]'] \n", " 32) \n", " \n", " conv2d_65 (Conv2D) (None, None, None, 27648 ['activation_64[0][0]'] \n", " 64) \n", " \n", " batch_normalization_60 (BatchN (None, None, None, 96 ['conv2d_60[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_62 (BatchN (None, None, None, 96 ['conv2d_62[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_65 (BatchN (None, None, None, 192 ['conv2d_65[0][0]'] \n", " ormalization) 64) \n", " \n", " activation_60 (Activation) (None, None, None, 0 ['batch_normalization_60[0][0]'] \n", " 32) \n", " \n", " activation_62 (Activation) (None, None, None, 0 ['batch_normalization_62[0][0]'] \n", " 32) \n", " \n", " activation_65 (Activation) (None, None, None, 0 ['batch_normalization_65[0][0]'] \n", " 64) \n", " \n", " block35_9_mixed (Concatenate) (None, None, None, 0 ['activation_60[0][0]', \n", " 128) 'activation_62[0][0]', \n", " 'activation_65[0][0]'] \n", " \n", " block35_9_conv (Conv2D) (None, None, None, 41280 ['block35_9_mixed[0][0]'] \n", " 320) \n", " \n", " block35_9 (Lambda) (None, None, None, 0 ['block35_8_ac[0][0]', \n", " 320) 'block35_9_conv[0][0]'] \n", " \n", " block35_9_ac (Activation) (None, None, None, 0 ['block35_9[0][0]'] \n", " 320) \n", " \n", " conv2d_69 (Conv2D) (None, None, None, 10240 ['block35_9_ac[0][0]'] \n", " 32) \n", " \n", " batch_normalization_69 (BatchN (None, None, None, 96 ['conv2d_69[0][0]'] \n", " ormalization) 32) \n", " \n", " activation_69 (Activation) (None, None, None, 0 ['batch_normalization_69[0][0]'] \n", " 32) \n", " \n", " conv2d_67 (Conv2D) (None, None, None, 10240 ['block35_9_ac[0][0]'] \n", " 32) \n", " \n", " conv2d_70 (Conv2D) (None, None, None, 13824 ['activation_69[0][0]'] \n", " 48) \n", " \n", " batch_normalization_67 (BatchN (None, None, None, 96 ['conv2d_67[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_70 (BatchN (None, None, None, 144 ['conv2d_70[0][0]'] \n", " ormalization) 48) \n", " \n", " activation_67 (Activation) (None, None, None, 0 ['batch_normalization_67[0][0]'] \n", " 32) \n", " \n", " activation_70 (Activation) (None, None, None, 0 ['batch_normalization_70[0][0]'] \n", " 48) \n", " \n", " conv2d_66 (Conv2D) (None, None, None, 10240 ['block35_9_ac[0][0]'] \n", " 32) \n", " \n", " conv2d_68 (Conv2D) (None, None, None, 9216 ['activation_67[0][0]'] \n", " 32) \n", " \n", " conv2d_71 (Conv2D) (None, None, None, 27648 ['activation_70[0][0]'] \n", " 64) \n", " \n", " batch_normalization_66 (BatchN (None, None, None, 96 ['conv2d_66[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_68 (BatchN (None, None, None, 96 ['conv2d_68[0][0]'] \n", " ormalization) 32) \n", " \n", " batch_normalization_71 (BatchN (None, None, None, 192 ['conv2d_71[0][0]'] \n", " ormalization) 64) \n", " \n", " activation_66 (Activation) (None, None, None, 0 ['batch_normalization_66[0][0]'] \n", " 32) \n", " \n", " activation_68 (Activation) (None, None, None, 0 ['batch_normalization_68[0][0]'] \n", " 32) \n", " \n", " activation_71 (Activation) (None, None, None, 0 ['batch_normalization_71[0][0]'] \n", " 64) \n", " \n", " block35_10_mixed (Concatenate) (None, None, None, 0 ['activation_66[0][0]', \n", " 128) 'activation_68[0][0]', \n", " 'activation_71[0][0]'] \n", " \n", " block35_10_conv (Conv2D) (None, None, None, 41280 ['block35_10_mixed[0][0]'] \n", " 320) \n", " \n", " block35_10 (Lambda) (None, None, None, 0 ['block35_9_ac[0][0]', \n", " 320) 'block35_10_conv[0][0]'] \n", " \n", " block35_10_ac (Activation) (None, None, None, 0 ['block35_10[0][0]'] \n", " 320) \n", " \n", " conv2d_73 (Conv2D) (None, None, None, 81920 ['block35_10_ac[0][0]'] \n", " 256) \n", " \n", " batch_normalization_73 (BatchN (None, None, None, 768 ['conv2d_73[0][0]'] \n", " ormalization) 256) \n", " \n", " activation_73 (Activation) (None, None, None, 0 ['batch_normalization_73[0][0]'] \n", " 256) \n", " \n", " conv2d_74 (Conv2D) (None, None, None, 589824 ['activation_73[0][0]'] \n", " 256) \n", " \n", " batch_normalization_74 (BatchN (None, None, None, 768 ['conv2d_74[0][0]'] \n", " ormalization) 256) \n", " \n", " activation_74 (Activation) (None, None, None, 0 ['batch_normalization_74[0][0]'] \n", " 256) \n", " \n", " conv2d_72 (Conv2D) (None, None, None, 1105920 ['block35_10_ac[0][0]'] \n", " 384) \n", " \n", " conv2d_75 (Conv2D) (None, None, None, 884736 ['activation_74[0][0]'] \n", " 384) \n", " \n", " batch_normalization_72 (BatchN (None, None, None, 1152 ['conv2d_72[0][0]'] \n", " ormalization) 384) \n", " \n", " batch_normalization_75 (BatchN (None, None, None, 1152 ['conv2d_75[0][0]'] \n", " ormalization) 384) \n", " \n", " activation_72 (Activation) (None, None, None, 0 ['batch_normalization_72[0][0]'] \n", " 384) \n", " \n", " activation_75 (Activation) (None, None, None, 0 ['batch_normalization_75[0][0]'] \n", " 384) \n", " \n", " max_pooling2d_2 (MaxPooling2D) (None, None, None, 0 ['block35_10_ac[0][0]'] \n", " 320) \n", " \n", " mixed_6a (Concatenate) (None, None, None, 0 ['activation_72[0][0]', \n", " 1088) 'activation_75[0][0]', \n", " 'max_pooling2d_2[0][0]'] \n", " \n", " conv2d_77 (Conv2D) (None, None, None, 139264 ['mixed_6a[0][0]'] \n", " 128) \n", " \n", " batch_normalization_77 (BatchN (None, None, None, 384 ['conv2d_77[0][0]'] \n", " ormalization) 128) \n", " \n", " activation_77 (Activation) (None, None, None, 0 ['batch_normalization_77[0][0]'] \n", " 128) \n", " \n", " conv2d_78 (Conv2D) (None, None, None, 143360 ['activation_77[0][0]'] \n", " 160) \n", " \n", " batch_normalization_78 (BatchN (None, None, None, 480 ['conv2d_78[0][0]'] \n", " ormalization) 160) \n", " \n", " activation_78 (Activation) (None, None, None, 0 ['batch_normalization_78[0][0]'] \n", " 160) \n", " \n", " conv2d_76 (Conv2D) (None, None, None, 208896 ['mixed_6a[0][0]'] \n", " 192) \n", " \n", " conv2d_79 (Conv2D) (None, None, None, 215040 ['activation_78[0][0]'] \n", " 192) \n", " \n", " batch_normalization_76 (BatchN (None, None, None, 576 ['conv2d_76[0][0]'] \n", " ormalization) 192) \n", " \n", " batch_normalization_79 (BatchN (None, None, None, 576 ['conv2d_79[0][0]'] \n", " ormalization) 192) \n", " \n", " activation_76 (Activation) (None, None, None, 0 ['batch_normalization_76[0][0]'] \n", " 192) \n", " \n", " activation_79 (Activation) (None, None, None, 0 ['batch_normalization_79[0][0]'] \n", " 192) \n", " \n", " block17_1_mixed (Concatenate) (None, None, None, 0 ['activation_76[0][0]', \n", " 384) 'activation_79[0][0]'] \n", " \n", " block17_1_conv (Conv2D) (None, None, None, 418880 ['block17_1_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_1 (Lambda) (None, None, None, 0 ['mixed_6a[0][0]', \n", " 1088) 'block17_1_conv[0][0]'] \n", " \n", " block17_1_ac (Activation) (None, None, None, 0 ['block17_1[0][0]'] \n", " 1088) \n", " \n", " conv2d_81 (Conv2D) (None, None, None, 139264 ['block17_1_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_81 (BatchN (None, None, None, 384 ['conv2d_81[0][0]'] \n", " ormalization) 128) \n", " \n", " activation_81 (Activation) (None, None, None, 0 ['batch_normalization_81[0][0]'] \n", " 128) \n", " \n", " conv2d_82 (Conv2D) (None, None, None, 143360 ['activation_81[0][0]'] \n", " 160) \n", " \n", " batch_normalization_82 (BatchN (None, None, None, 480 ['conv2d_82[0][0]'] \n", " ormalization) 160) \n", " \n", " activation_82 (Activation) (None, None, None, 0 ['batch_normalization_82[0][0]'] \n", " 160) \n", " \n", " conv2d_80 (Conv2D) (None, None, None, 208896 ['block17_1_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_83 (Conv2D) (None, None, None, 215040 ['activation_82[0][0]'] \n", " 192) \n", " \n", " batch_normalization_80 (BatchN (None, None, None, 576 ['conv2d_80[0][0]'] \n", " ormalization) 192) \n", " \n", " batch_normalization_83 (BatchN (None, None, None, 576 ['conv2d_83[0][0]'] \n", " ormalization) 192) \n", " \n", " activation_80 (Activation) (None, None, None, 0 ['batch_normalization_80[0][0]'] \n", " 192) \n", " \n", " activation_83 (Activation) (None, None, None, 0 ['batch_normalization_83[0][0]'] \n", " 192) \n", " \n", " block17_2_mixed (Concatenate) (None, None, None, 0 ['activation_80[0][0]', \n", " 384) 'activation_83[0][0]'] \n", " \n", " block17_2_conv (Conv2D) (None, None, None, 418880 ['block17_2_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_2 (Lambda) (None, None, None, 0 ['block17_1_ac[0][0]', \n", " 1088) 'block17_2_conv[0][0]'] \n", " \n", " block17_2_ac (Activation) (None, None, None, 0 ['block17_2[0][0]'] \n", " 1088) \n", " \n", " conv2d_85 (Conv2D) (None, None, None, 139264 ['block17_2_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_85 (BatchN (None, None, None, 384 ['conv2d_85[0][0]'] \n", " ormalization) 128) \n", " \n", " activation_85 (Activation) (None, None, None, 0 ['batch_normalization_85[0][0]'] \n", " 128) \n", " \n", " conv2d_86 (Conv2D) (None, None, None, 143360 ['activation_85[0][0]'] \n", " 160) \n", " \n", " batch_normalization_86 (BatchN (None, None, None, 480 ['conv2d_86[0][0]'] \n", " ormalization) 160) \n", " \n", " activation_86 (Activation) (None, None, None, 0 ['batch_normalization_86[0][0]'] \n", " 160) \n", " \n", " conv2d_84 (Conv2D) (None, None, None, 208896 ['block17_2_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_87 (Conv2D) (None, None, None, 215040 ['activation_86[0][0]'] \n", " 192) \n", " \n", " batch_normalization_84 (BatchN (None, None, None, 576 ['conv2d_84[0][0]'] \n", " ormalization) 192) \n", " \n", " batch_normalization_87 (BatchN (None, None, None, 576 ['conv2d_87[0][0]'] \n", " ormalization) 192) \n", " \n", " activation_84 (Activation) (None, None, None, 0 ['batch_normalization_84[0][0]'] \n", " 192) \n", " \n", " activation_87 (Activation) (None, None, None, 0 ['batch_normalization_87[0][0]'] \n", " 192) \n", " \n", " block17_3_mixed (Concatenate) (None, None, None, 0 ['activation_84[0][0]', \n", " 384) 'activation_87[0][0]'] \n", " \n", " block17_3_conv (Conv2D) (None, None, None, 418880 ['block17_3_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_3 (Lambda) (None, None, None, 0 ['block17_2_ac[0][0]', \n", " 1088) 'block17_3_conv[0][0]'] \n", " \n", " block17_3_ac (Activation) (None, None, None, 0 ['block17_3[0][0]'] \n", " 1088) \n", " \n", " conv2d_89 (Conv2D) (None, None, None, 139264 ['block17_3_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_89 (BatchN (None, None, None, 384 ['conv2d_89[0][0]'] \n", " ormalization) 128) \n", " \n", " activation_89 (Activation) (None, None, None, 0 ['batch_normalization_89[0][0]'] \n", " 128) \n", " \n", " conv2d_90 (Conv2D) (None, None, None, 143360 ['activation_89[0][0]'] \n", " 160) \n", " \n", " batch_normalization_90 (BatchN (None, None, None, 480 ['conv2d_90[0][0]'] \n", " ormalization) 160) \n", " \n", " activation_90 (Activation) (None, None, None, 0 ['batch_normalization_90[0][0]'] \n", " 160) \n", " \n", " conv2d_88 (Conv2D) (None, None, None, 208896 ['block17_3_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_91 (Conv2D) (None, None, None, 215040 ['activation_90[0][0]'] \n", " 192) \n", " \n", " batch_normalization_88 (BatchN (None, None, None, 576 ['conv2d_88[0][0]'] \n", " ormalization) 192) \n", " \n", " batch_normalization_91 (BatchN (None, None, None, 576 ['conv2d_91[0][0]'] \n", " ormalization) 192) \n", " \n", " activation_88 (Activation) (None, None, None, 0 ['batch_normalization_88[0][0]'] \n", " 192) \n", " \n", " activation_91 (Activation) (None, None, None, 0 ['batch_normalization_91[0][0]'] \n", " 192) \n", " \n", " block17_4_mixed (Concatenate) (None, None, None, 0 ['activation_88[0][0]', \n", " 384) 'activation_91[0][0]'] \n", " \n", " block17_4_conv (Conv2D) (None, None, None, 418880 ['block17_4_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_4 (Lambda) (None, None, None, 0 ['block17_3_ac[0][0]', \n", " 1088) 'block17_4_conv[0][0]'] \n", " \n", " block17_4_ac (Activation) (None, None, None, 0 ['block17_4[0][0]'] \n", " 1088) \n", " \n", " conv2d_93 (Conv2D) (None, None, None, 139264 ['block17_4_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_93 (BatchN (None, None, None, 384 ['conv2d_93[0][0]'] \n", " ormalization) 128) \n", " \n", " activation_93 (Activation) (None, None, None, 0 ['batch_normalization_93[0][0]'] \n", " 128) \n", " \n", " conv2d_94 (Conv2D) (None, None, None, 143360 ['activation_93[0][0]'] \n", " 160) \n", " \n", " batch_normalization_94 (BatchN (None, None, None, 480 ['conv2d_94[0][0]'] \n", " ormalization) 160) \n", " \n", " activation_94 (Activation) (None, None, None, 0 ['batch_normalization_94[0][0]'] \n", " 160) \n", " \n", " conv2d_92 (Conv2D) (None, None, None, 208896 ['block17_4_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_95 (Conv2D) (None, None, None, 215040 ['activation_94[0][0]'] \n", " 192) \n", " \n", " batch_normalization_92 (BatchN (None, None, None, 576 ['conv2d_92[0][0]'] \n", " ormalization) 192) \n", " \n", " batch_normalization_95 (BatchN (None, None, None, 576 ['conv2d_95[0][0]'] \n", " ormalization) 192) \n", " \n", " activation_92 (Activation) (None, None, None, 0 ['batch_normalization_92[0][0]'] \n", " 192) \n", " \n", " activation_95 (Activation) (None, None, None, 0 ['batch_normalization_95[0][0]'] \n", " 192) \n", " \n", " block17_5_mixed (Concatenate) (None, None, None, 0 ['activation_92[0][0]', \n", " 384) 'activation_95[0][0]'] \n", " \n", " block17_5_conv (Conv2D) (None, None, None, 418880 ['block17_5_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_5 (Lambda) (None, None, None, 0 ['block17_4_ac[0][0]', \n", " 1088) 'block17_5_conv[0][0]'] \n", " \n", " block17_5_ac (Activation) (None, None, None, 0 ['block17_5[0][0]'] \n", " 1088) \n", " \n", " conv2d_97 (Conv2D) (None, None, None, 139264 ['block17_5_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_97 (BatchN (None, None, None, 384 ['conv2d_97[0][0]'] \n", " ormalization) 128) \n", " \n", " activation_97 (Activation) (None, None, None, 0 ['batch_normalization_97[0][0]'] \n", " 128) \n", " \n", " conv2d_98 (Conv2D) (None, None, None, 143360 ['activation_97[0][0]'] \n", " 160) \n", " \n", " batch_normalization_98 (BatchN (None, None, None, 480 ['conv2d_98[0][0]'] \n", " ormalization) 160) \n", " \n", " activation_98 (Activation) (None, None, None, 0 ['batch_normalization_98[0][0]'] \n", " 160) \n", " \n", " conv2d_96 (Conv2D) (None, None, None, 208896 ['block17_5_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_99 (Conv2D) (None, None, None, 215040 ['activation_98[0][0]'] \n", " 192) \n", " \n", " batch_normalization_96 (BatchN (None, None, None, 576 ['conv2d_96[0][0]'] \n", " ormalization) 192) \n", " \n", " batch_normalization_99 (BatchN (None, None, None, 576 ['conv2d_99[0][0]'] \n", " ormalization) 192) \n", " \n", " activation_96 (Activation) (None, None, None, 0 ['batch_normalization_96[0][0]'] \n", " 192) \n", " \n", " activation_99 (Activation) (None, None, None, 0 ['batch_normalization_99[0][0]'] \n", " 192) \n", " \n", " block17_6_mixed (Concatenate) (None, None, None, 0 ['activation_96[0][0]', \n", " 384) 'activation_99[0][0]'] \n", " \n", " block17_6_conv (Conv2D) (None, None, None, 418880 ['block17_6_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_6 (Lambda) (None, None, None, 0 ['block17_5_ac[0][0]', \n", " 1088) 'block17_6_conv[0][0]'] \n", " \n", " block17_6_ac (Activation) (None, None, None, 0 ['block17_6[0][0]'] \n", " 1088) \n", " \n", " conv2d_101 (Conv2D) (None, None, None, 139264 ['block17_6_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_101 (Batch (None, None, None, 384 ['conv2d_101[0][0]'] \n", " Normalization) 128) \n", " \n", " activation_101 (Activation) (None, None, None, 0 ['batch_normalization_101[0][0]']\n", " 128) \n", " \n", " conv2d_102 (Conv2D) (None, None, None, 143360 ['activation_101[0][0]'] \n", " 160) \n", " \n", " batch_normalization_102 (Batch (None, None, None, 480 ['conv2d_102[0][0]'] \n", " Normalization) 160) \n", " \n", " activation_102 (Activation) (None, None, None, 0 ['batch_normalization_102[0][0]']\n", " 160) \n", " \n", " conv2d_100 (Conv2D) (None, None, None, 208896 ['block17_6_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_103 (Conv2D) (None, None, None, 215040 ['activation_102[0][0]'] \n", " 192) \n", " \n", " batch_normalization_100 (Batch (None, None, None, 576 ['conv2d_100[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_103 (Batch (None, None, None, 576 ['conv2d_103[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_100 (Activation) (None, None, None, 0 ['batch_normalization_100[0][0]']\n", " 192) \n", " \n", " activation_103 (Activation) (None, None, None, 0 ['batch_normalization_103[0][0]']\n", " 192) \n", " \n", " block17_7_mixed (Concatenate) (None, None, None, 0 ['activation_100[0][0]', \n", " 384) 'activation_103[0][0]'] \n", " \n", " block17_7_conv (Conv2D) (None, None, None, 418880 ['block17_7_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_7 (Lambda) (None, None, None, 0 ['block17_6_ac[0][0]', \n", " 1088) 'block17_7_conv[0][0]'] \n", " \n", " block17_7_ac (Activation) (None, None, None, 0 ['block17_7[0][0]'] \n", " 1088) \n", " \n", " conv2d_105 (Conv2D) (None, None, None, 139264 ['block17_7_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_105 (Batch (None, None, None, 384 ['conv2d_105[0][0]'] \n", " Normalization) 128) \n", " \n", " activation_105 (Activation) (None, None, None, 0 ['batch_normalization_105[0][0]']\n", " 128) \n", " \n", " conv2d_106 (Conv2D) (None, None, None, 143360 ['activation_105[0][0]'] \n", " 160) \n", " \n", " batch_normalization_106 (Batch (None, None, None, 480 ['conv2d_106[0][0]'] \n", " Normalization) 160) \n", " \n", " activation_106 (Activation) (None, None, None, 0 ['batch_normalization_106[0][0]']\n", " 160) \n", " \n", " conv2d_104 (Conv2D) (None, None, None, 208896 ['block17_7_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_107 (Conv2D) (None, None, None, 215040 ['activation_106[0][0]'] \n", " 192) \n", " \n", " batch_normalization_104 (Batch (None, None, None, 576 ['conv2d_104[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_107 (Batch (None, None, None, 576 ['conv2d_107[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_104 (Activation) (None, None, None, 0 ['batch_normalization_104[0][0]']\n", " 192) \n", " \n", " activation_107 (Activation) (None, None, None, 0 ['batch_normalization_107[0][0]']\n", " 192) \n", " \n", " block17_8_mixed (Concatenate) (None, None, None, 0 ['activation_104[0][0]', \n", " 384) 'activation_107[0][0]'] \n", " \n", " block17_8_conv (Conv2D) (None, None, None, 418880 ['block17_8_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_8 (Lambda) (None, None, None, 0 ['block17_7_ac[0][0]', \n", " 1088) 'block17_8_conv[0][0]'] \n", " \n", " block17_8_ac (Activation) (None, None, None, 0 ['block17_8[0][0]'] \n", " 1088) \n", " \n", " conv2d_109 (Conv2D) (None, None, None, 139264 ['block17_8_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_109 (Batch (None, None, None, 384 ['conv2d_109[0][0]'] \n", " Normalization) 128) \n", " \n", " activation_109 (Activation) (None, None, None, 0 ['batch_normalization_109[0][0]']\n", " 128) \n", " \n", " conv2d_110 (Conv2D) (None, None, None, 143360 ['activation_109[0][0]'] \n", " 160) \n", " \n", " batch_normalization_110 (Batch (None, None, None, 480 ['conv2d_110[0][0]'] \n", " Normalization) 160) \n", " \n", " activation_110 (Activation) (None, None, None, 0 ['batch_normalization_110[0][0]']\n", " 160) \n", " \n", " conv2d_108 (Conv2D) (None, None, None, 208896 ['block17_8_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_111 (Conv2D) (None, None, None, 215040 ['activation_110[0][0]'] \n", " 192) \n", " \n", " batch_normalization_108 (Batch (None, None, None, 576 ['conv2d_108[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_111 (Batch (None, None, None, 576 ['conv2d_111[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_108 (Activation) (None, None, None, 0 ['batch_normalization_108[0][0]']\n", " 192) \n", " \n", " activation_111 (Activation) (None, None, None, 0 ['batch_normalization_111[0][0]']\n", " 192) \n", " \n", " block17_9_mixed (Concatenate) (None, None, None, 0 ['activation_108[0][0]', \n", " 384) 'activation_111[0][0]'] \n", " \n", " block17_9_conv (Conv2D) (None, None, None, 418880 ['block17_9_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_9 (Lambda) (None, None, None, 0 ['block17_8_ac[0][0]', \n", " 1088) 'block17_9_conv[0][0]'] \n", " \n", " block17_9_ac (Activation) (None, None, None, 0 ['block17_9[0][0]'] \n", " 1088) \n", " \n", " conv2d_113 (Conv2D) (None, None, None, 139264 ['block17_9_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_113 (Batch (None, None, None, 384 ['conv2d_113[0][0]'] \n", " Normalization) 128) \n", " \n", " activation_113 (Activation) (None, None, None, 0 ['batch_normalization_113[0][0]']\n", " 128) \n", " \n", " conv2d_114 (Conv2D) (None, None, None, 143360 ['activation_113[0][0]'] \n", " 160) \n", " \n", " batch_normalization_114 (Batch (None, None, None, 480 ['conv2d_114[0][0]'] \n", " Normalization) 160) \n", " \n", " activation_114 (Activation) (None, None, None, 0 ['batch_normalization_114[0][0]']\n", " 160) \n", " \n", " conv2d_112 (Conv2D) (None, None, None, 208896 ['block17_9_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_115 (Conv2D) (None, None, None, 215040 ['activation_114[0][0]'] \n", " 192) \n", " \n", " batch_normalization_112 (Batch (None, None, None, 576 ['conv2d_112[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_115 (Batch (None, None, None, 576 ['conv2d_115[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_112 (Activation) (None, None, None, 0 ['batch_normalization_112[0][0]']\n", " 192) \n", " \n", " activation_115 (Activation) (None, None, None, 0 ['batch_normalization_115[0][0]']\n", " 192) \n", " \n", " block17_10_mixed (Concatenate) (None, None, None, 0 ['activation_112[0][0]', \n", " 384) 'activation_115[0][0]'] \n", " \n", " block17_10_conv (Conv2D) (None, None, None, 418880 ['block17_10_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_10 (Lambda) (None, None, None, 0 ['block17_9_ac[0][0]', \n", " 1088) 'block17_10_conv[0][0]'] \n", " \n", " block17_10_ac (Activation) (None, None, None, 0 ['block17_10[0][0]'] \n", " 1088) \n", " \n", " conv2d_117 (Conv2D) (None, None, None, 139264 ['block17_10_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_117 (Batch (None, None, None, 384 ['conv2d_117[0][0]'] \n", " Normalization) 128) \n", " \n", " activation_117 (Activation) (None, None, None, 0 ['batch_normalization_117[0][0]']\n", " 128) \n", " \n", " conv2d_118 (Conv2D) (None, None, None, 143360 ['activation_117[0][0]'] \n", " 160) \n", " \n", " batch_normalization_118 (Batch (None, None, None, 480 ['conv2d_118[0][0]'] \n", " Normalization) 160) \n", " \n", " activation_118 (Activation) (None, None, None, 0 ['batch_normalization_118[0][0]']\n", " 160) \n", " \n", " conv2d_116 (Conv2D) (None, None, None, 208896 ['block17_10_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_119 (Conv2D) (None, None, None, 215040 ['activation_118[0][0]'] \n", " 192) \n", " \n", " batch_normalization_116 (Batch (None, None, None, 576 ['conv2d_116[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_119 (Batch (None, None, None, 576 ['conv2d_119[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_116 (Activation) (None, None, None, 0 ['batch_normalization_116[0][0]']\n", " 192) \n", " \n", " activation_119 (Activation) (None, None, None, 0 ['batch_normalization_119[0][0]']\n", " 192) \n", " \n", " block17_11_mixed (Concatenate) (None, None, None, 0 ['activation_116[0][0]', \n", " 384) 'activation_119[0][0]'] \n", " \n", " block17_11_conv (Conv2D) (None, None, None, 418880 ['block17_11_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_11 (Lambda) (None, None, None, 0 ['block17_10_ac[0][0]', \n", " 1088) 'block17_11_conv[0][0]'] \n", " \n", " block17_11_ac (Activation) (None, None, None, 0 ['block17_11[0][0]'] \n", " 1088) \n", " \n", " conv2d_121 (Conv2D) (None, None, None, 139264 ['block17_11_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_121 (Batch (None, None, None, 384 ['conv2d_121[0][0]'] \n", " Normalization) 128) \n", " \n", " activation_121 (Activation) (None, None, None, 0 ['batch_normalization_121[0][0]']\n", " 128) \n", " \n", " conv2d_122 (Conv2D) (None, None, None, 143360 ['activation_121[0][0]'] \n", " 160) \n", " \n", " batch_normalization_122 (Batch (None, None, None, 480 ['conv2d_122[0][0]'] \n", " Normalization) 160) \n", " \n", " activation_122 (Activation) (None, None, None, 0 ['batch_normalization_122[0][0]']\n", " 160) \n", " \n", " conv2d_120 (Conv2D) (None, None, None, 208896 ['block17_11_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_123 (Conv2D) (None, None, None, 215040 ['activation_122[0][0]'] \n", " 192) \n", " \n", " batch_normalization_120 (Batch (None, None, None, 576 ['conv2d_120[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_123 (Batch (None, None, None, 576 ['conv2d_123[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_120 (Activation) (None, None, None, 0 ['batch_normalization_120[0][0]']\n", " 192) \n", " \n", " activation_123 (Activation) (None, None, None, 0 ['batch_normalization_123[0][0]']\n", " 192) \n", " \n", " block17_12_mixed (Concatenate) (None, None, None, 0 ['activation_120[0][0]', \n", " 384) 'activation_123[0][0]'] \n", " \n", " block17_12_conv (Conv2D) (None, None, None, 418880 ['block17_12_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_12 (Lambda) (None, None, None, 0 ['block17_11_ac[0][0]', \n", " 1088) 'block17_12_conv[0][0]'] \n", " \n", " block17_12_ac (Activation) (None, None, None, 0 ['block17_12[0][0]'] \n", " 1088) \n", " \n", " conv2d_125 (Conv2D) (None, None, None, 139264 ['block17_12_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_125 (Batch (None, None, None, 384 ['conv2d_125[0][0]'] \n", " Normalization) 128) \n", " \n", " activation_125 (Activation) (None, None, None, 0 ['batch_normalization_125[0][0]']\n", " 128) \n", " \n", " conv2d_126 (Conv2D) (None, None, None, 143360 ['activation_125[0][0]'] \n", " 160) \n", " \n", " batch_normalization_126 (Batch (None, None, None, 480 ['conv2d_126[0][0]'] \n", " Normalization) 160) \n", " \n", " activation_126 (Activation) (None, None, None, 0 ['batch_normalization_126[0][0]']\n", " 160) \n", " \n", " conv2d_124 (Conv2D) (None, None, None, 208896 ['block17_12_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_127 (Conv2D) (None, None, None, 215040 ['activation_126[0][0]'] \n", " 192) \n", " \n", " batch_normalization_124 (Batch (None, None, None, 576 ['conv2d_124[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_127 (Batch (None, None, None, 576 ['conv2d_127[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_124 (Activation) (None, None, None, 0 ['batch_normalization_124[0][0]']\n", " 192) \n", " \n", " activation_127 (Activation) (None, None, None, 0 ['batch_normalization_127[0][0]']\n", " 192) \n", " \n", " block17_13_mixed (Concatenate) (None, None, None, 0 ['activation_124[0][0]', \n", " 384) 'activation_127[0][0]'] \n", " \n", " block17_13_conv (Conv2D) (None, None, None, 418880 ['block17_13_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_13 (Lambda) (None, None, None, 0 ['block17_12_ac[0][0]', \n", " 1088) 'block17_13_conv[0][0]'] \n", " \n", " block17_13_ac (Activation) (None, None, None, 0 ['block17_13[0][0]'] \n", " 1088) \n", " \n", " conv2d_129 (Conv2D) (None, None, None, 139264 ['block17_13_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_129 (Batch (None, None, None, 384 ['conv2d_129[0][0]'] \n", " Normalization) 128) \n", " \n", " activation_129 (Activation) (None, None, None, 0 ['batch_normalization_129[0][0]']\n", " 128) \n", " \n", " conv2d_130 (Conv2D) (None, None, None, 143360 ['activation_129[0][0]'] \n", " 160) \n", " \n", " batch_normalization_130 (Batch (None, None, None, 480 ['conv2d_130[0][0]'] \n", " Normalization) 160) \n", " \n", " activation_130 (Activation) (None, None, None, 0 ['batch_normalization_130[0][0]']\n", " 160) \n", " \n", " conv2d_128 (Conv2D) (None, None, None, 208896 ['block17_13_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_131 (Conv2D) (None, None, None, 215040 ['activation_130[0][0]'] \n", " 192) \n", " \n", " batch_normalization_128 (Batch (None, None, None, 576 ['conv2d_128[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_131 (Batch (None, None, None, 576 ['conv2d_131[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_128 (Activation) (None, None, None, 0 ['batch_normalization_128[0][0]']\n", " 192) \n", " \n", " activation_131 (Activation) (None, None, None, 0 ['batch_normalization_131[0][0]']\n", " 192) \n", " \n", " block17_14_mixed (Concatenate) (None, None, None, 0 ['activation_128[0][0]', \n", " 384) 'activation_131[0][0]'] \n", " \n", " block17_14_conv (Conv2D) (None, None, None, 418880 ['block17_14_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_14 (Lambda) (None, None, None, 0 ['block17_13_ac[0][0]', \n", " 1088) 'block17_14_conv[0][0]'] \n", " \n", " block17_14_ac (Activation) (None, None, None, 0 ['block17_14[0][0]'] \n", " 1088) \n", " \n", " conv2d_133 (Conv2D) (None, None, None, 139264 ['block17_14_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_133 (Batch (None, None, None, 384 ['conv2d_133[0][0]'] \n", " Normalization) 128) \n", " \n", " activation_133 (Activation) (None, None, None, 0 ['batch_normalization_133[0][0]']\n", " 128) \n", " \n", " conv2d_134 (Conv2D) (None, None, None, 143360 ['activation_133[0][0]'] \n", " 160) \n", " \n", " batch_normalization_134 (Batch (None, None, None, 480 ['conv2d_134[0][0]'] \n", " Normalization) 160) \n", " \n", " activation_134 (Activation) (None, None, None, 0 ['batch_normalization_134[0][0]']\n", " 160) \n", " \n", " conv2d_132 (Conv2D) (None, None, None, 208896 ['block17_14_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_135 (Conv2D) (None, None, None, 215040 ['activation_134[0][0]'] \n", " 192) \n", " \n", " batch_normalization_132 (Batch (None, None, None, 576 ['conv2d_132[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_135 (Batch (None, None, None, 576 ['conv2d_135[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_132 (Activation) (None, None, None, 0 ['batch_normalization_132[0][0]']\n", " 192) \n", " \n", " activation_135 (Activation) (None, None, None, 0 ['batch_normalization_135[0][0]']\n", " 192) \n", " \n", " block17_15_mixed (Concatenate) (None, None, None, 0 ['activation_132[0][0]', \n", " 384) 'activation_135[0][0]'] \n", " \n", " block17_15_conv (Conv2D) (None, None, None, 418880 ['block17_15_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_15 (Lambda) (None, None, None, 0 ['block17_14_ac[0][0]', \n", " 1088) 'block17_15_conv[0][0]'] \n", " \n", " block17_15_ac (Activation) (None, None, None, 0 ['block17_15[0][0]'] \n", " 1088) \n", " \n", " conv2d_137 (Conv2D) (None, None, None, 139264 ['block17_15_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_137 (Batch (None, None, None, 384 ['conv2d_137[0][0]'] \n", " Normalization) 128) \n", " \n", " activation_137 (Activation) (None, None, None, 0 ['batch_normalization_137[0][0]']\n", " 128) \n", " \n", " conv2d_138 (Conv2D) (None, None, None, 143360 ['activation_137[0][0]'] \n", " 160) \n", " \n", " batch_normalization_138 (Batch (None, None, None, 480 ['conv2d_138[0][0]'] \n", " Normalization) 160) \n", " \n", " activation_138 (Activation) (None, None, None, 0 ['batch_normalization_138[0][0]']\n", " 160) \n", " \n", " conv2d_136 (Conv2D) (None, None, None, 208896 ['block17_15_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_139 (Conv2D) (None, None, None, 215040 ['activation_138[0][0]'] \n", " 192) \n", " \n", " batch_normalization_136 (Batch (None, None, None, 576 ['conv2d_136[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_139 (Batch (None, None, None, 576 ['conv2d_139[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_136 (Activation) (None, None, None, 0 ['batch_normalization_136[0][0]']\n", " 192) \n", " \n", " activation_139 (Activation) (None, None, None, 0 ['batch_normalization_139[0][0]']\n", " 192) \n", " \n", " block17_16_mixed (Concatenate) (None, None, None, 0 ['activation_136[0][0]', \n", " 384) 'activation_139[0][0]'] \n", " \n", " block17_16_conv (Conv2D) (None, None, None, 418880 ['block17_16_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_16 (Lambda) (None, None, None, 0 ['block17_15_ac[0][0]', \n", " 1088) 'block17_16_conv[0][0]'] \n", " \n", " block17_16_ac (Activation) (None, None, None, 0 ['block17_16[0][0]'] \n", " 1088) \n", " \n", " conv2d_141 (Conv2D) (None, None, None, 139264 ['block17_16_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_141 (Batch (None, None, None, 384 ['conv2d_141[0][0]'] \n", " Normalization) 128) \n", " \n", " activation_141 (Activation) (None, None, None, 0 ['batch_normalization_141[0][0]']\n", " 128) \n", " \n", " conv2d_142 (Conv2D) (None, None, None, 143360 ['activation_141[0][0]'] \n", " 160) \n", " \n", " batch_normalization_142 (Batch (None, None, None, 480 ['conv2d_142[0][0]'] \n", " Normalization) 160) \n", " \n", " activation_142 (Activation) (None, None, None, 0 ['batch_normalization_142[0][0]']\n", " 160) \n", " \n", " conv2d_140 (Conv2D) (None, None, None, 208896 ['block17_16_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_143 (Conv2D) (None, None, None, 215040 ['activation_142[0][0]'] \n", " 192) \n", " \n", " batch_normalization_140 (Batch (None, None, None, 576 ['conv2d_140[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_143 (Batch (None, None, None, 576 ['conv2d_143[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_140 (Activation) (None, None, None, 0 ['batch_normalization_140[0][0]']\n", " 192) \n", " \n", " activation_143 (Activation) (None, None, None, 0 ['batch_normalization_143[0][0]']\n", " 192) \n", " \n", " block17_17_mixed (Concatenate) (None, None, None, 0 ['activation_140[0][0]', \n", " 384) 'activation_143[0][0]'] \n", " \n", " block17_17_conv (Conv2D) (None, None, None, 418880 ['block17_17_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_17 (Lambda) (None, None, None, 0 ['block17_16_ac[0][0]', \n", " 1088) 'block17_17_conv[0][0]'] \n", " \n", " block17_17_ac (Activation) (None, None, None, 0 ['block17_17[0][0]'] \n", " 1088) \n", " \n", " conv2d_145 (Conv2D) (None, None, None, 139264 ['block17_17_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_145 (Batch (None, None, None, 384 ['conv2d_145[0][0]'] \n", " Normalization) 128) \n", " \n", " activation_145 (Activation) (None, None, None, 0 ['batch_normalization_145[0][0]']\n", " 128) \n", " \n", " conv2d_146 (Conv2D) (None, None, None, 143360 ['activation_145[0][0]'] \n", " 160) \n", " \n", " batch_normalization_146 (Batch (None, None, None, 480 ['conv2d_146[0][0]'] \n", " Normalization) 160) \n", " \n", " activation_146 (Activation) (None, None, None, 0 ['batch_normalization_146[0][0]']\n", " 160) \n", " \n", " conv2d_144 (Conv2D) (None, None, None, 208896 ['block17_17_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_147 (Conv2D) (None, None, None, 215040 ['activation_146[0][0]'] \n", " 192) \n", " \n", " batch_normalization_144 (Batch (None, None, None, 576 ['conv2d_144[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_147 (Batch (None, None, None, 576 ['conv2d_147[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_144 (Activation) (None, None, None, 0 ['batch_normalization_144[0][0]']\n", " 192) \n", " \n", " activation_147 (Activation) (None, None, None, 0 ['batch_normalization_147[0][0]']\n", " 192) \n", " \n", " block17_18_mixed (Concatenate) (None, None, None, 0 ['activation_144[0][0]', \n", " 384) 'activation_147[0][0]'] \n", " \n", " block17_18_conv (Conv2D) (None, None, None, 418880 ['block17_18_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_18 (Lambda) (None, None, None, 0 ['block17_17_ac[0][0]', \n", " 1088) 'block17_18_conv[0][0]'] \n", " \n", " block17_18_ac (Activation) (None, None, None, 0 ['block17_18[0][0]'] \n", " 1088) \n", " \n", " conv2d_149 (Conv2D) (None, None, None, 139264 ['block17_18_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_149 (Batch (None, None, None, 384 ['conv2d_149[0][0]'] \n", " Normalization) 128) \n", " \n", " activation_149 (Activation) (None, None, None, 0 ['batch_normalization_149[0][0]']\n", " 128) \n", " \n", " conv2d_150 (Conv2D) (None, None, None, 143360 ['activation_149[0][0]'] \n", " 160) \n", " \n", " batch_normalization_150 (Batch (None, None, None, 480 ['conv2d_150[0][0]'] \n", " Normalization) 160) \n", " \n", " activation_150 (Activation) (None, None, None, 0 ['batch_normalization_150[0][0]']\n", " 160) \n", " \n", " conv2d_148 (Conv2D) (None, None, None, 208896 ['block17_18_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_151 (Conv2D) (None, None, None, 215040 ['activation_150[0][0]'] \n", " 192) \n", " \n", " batch_normalization_148 (Batch (None, None, None, 576 ['conv2d_148[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_151 (Batch (None, None, None, 576 ['conv2d_151[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_148 (Activation) (None, None, None, 0 ['batch_normalization_148[0][0]']\n", " 192) \n", " \n", " activation_151 (Activation) (None, None, None, 0 ['batch_normalization_151[0][0]']\n", " 192) \n", " \n", " block17_19_mixed (Concatenate) (None, None, None, 0 ['activation_148[0][0]', \n", " 384) 'activation_151[0][0]'] \n", " \n", " block17_19_conv (Conv2D) (None, None, None, 418880 ['block17_19_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_19 (Lambda) (None, None, None, 0 ['block17_18_ac[0][0]', \n", " 1088) 'block17_19_conv[0][0]'] \n", " \n", " block17_19_ac (Activation) (None, None, None, 0 ['block17_19[0][0]'] \n", " 1088) \n", " \n", " conv2d_153 (Conv2D) (None, None, None, 139264 ['block17_19_ac[0][0]'] \n", " 128) \n", " \n", " batch_normalization_153 (Batch (None, None, None, 384 ['conv2d_153[0][0]'] \n", " Normalization) 128) \n", " \n", " activation_153 (Activation) (None, None, None, 0 ['batch_normalization_153[0][0]']\n", " 128) \n", " \n", " conv2d_154 (Conv2D) (None, None, None, 143360 ['activation_153[0][0]'] \n", " 160) \n", " \n", " batch_normalization_154 (Batch (None, None, None, 480 ['conv2d_154[0][0]'] \n", " Normalization) 160) \n", " \n", " activation_154 (Activation) (None, None, None, 0 ['batch_normalization_154[0][0]']\n", " 160) \n", " \n", " conv2d_152 (Conv2D) (None, None, None, 208896 ['block17_19_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_155 (Conv2D) (None, None, None, 215040 ['activation_154[0][0]'] \n", " 192) \n", " \n", " batch_normalization_152 (Batch (None, None, None, 576 ['conv2d_152[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_155 (Batch (None, None, None, 576 ['conv2d_155[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_152 (Activation) (None, None, None, 0 ['batch_normalization_152[0][0]']\n", " 192) \n", " \n", " activation_155 (Activation) (None, None, None, 0 ['batch_normalization_155[0][0]']\n", " 192) \n", " \n", " block17_20_mixed (Concatenate) (None, None, None, 0 ['activation_152[0][0]', \n", " 384) 'activation_155[0][0]'] \n", " \n", " block17_20_conv (Conv2D) (None, None, None, 418880 ['block17_20_mixed[0][0]'] \n", " 1088) \n", " \n", " block17_20 (Lambda) (None, None, None, 0 ['block17_19_ac[0][0]', \n", " 1088) 'block17_20_conv[0][0]'] \n", " \n", " block17_20_ac (Activation) (None, None, None, 0 ['block17_20[0][0]'] \n", " 1088) \n", " \n", " conv2d_160 (Conv2D) (None, None, None, 278528 ['block17_20_ac[0][0]'] \n", " 256) \n", " \n", " batch_normalization_160 (Batch (None, None, None, 768 ['conv2d_160[0][0]'] \n", " Normalization) 256) \n", " \n", " activation_160 (Activation) (None, None, None, 0 ['batch_normalization_160[0][0]']\n", " 256) \n", " \n", " conv2d_156 (Conv2D) (None, None, None, 278528 ['block17_20_ac[0][0]'] \n", " 256) \n", " \n", " conv2d_158 (Conv2D) (None, None, None, 278528 ['block17_20_ac[0][0]'] \n", " 256) \n", " \n", " conv2d_161 (Conv2D) (None, None, None, 663552 ['activation_160[0][0]'] \n", " 288) \n", " \n", " batch_normalization_156 (Batch (None, None, None, 768 ['conv2d_156[0][0]'] \n", " Normalization) 256) \n", " \n", " batch_normalization_158 (Batch (None, None, None, 768 ['conv2d_158[0][0]'] \n", " Normalization) 256) \n", " \n", " batch_normalization_161 (Batch (None, None, None, 864 ['conv2d_161[0][0]'] \n", " Normalization) 288) \n", " \n", " activation_156 (Activation) (None, None, None, 0 ['batch_normalization_156[0][0]']\n", " 256) \n", " \n", " activation_158 (Activation) (None, None, None, 0 ['batch_normalization_158[0][0]']\n", " 256) \n", " \n", " activation_161 (Activation) (None, None, None, 0 ['batch_normalization_161[0][0]']\n", " 288) \n", " \n", " conv2d_157 (Conv2D) (None, None, None, 884736 ['activation_156[0][0]'] \n", " 384) \n", " \n", " conv2d_159 (Conv2D) (None, None, None, 663552 ['activation_158[0][0]'] \n", " 288) \n", " \n", " conv2d_162 (Conv2D) (None, None, None, 829440 ['activation_161[0][0]'] \n", " 320) \n", " \n", " batch_normalization_157 (Batch (None, None, None, 1152 ['conv2d_157[0][0]'] \n", " Normalization) 384) \n", " \n", " batch_normalization_159 (Batch (None, None, None, 864 ['conv2d_159[0][0]'] \n", " Normalization) 288) \n", " \n", " batch_normalization_162 (Batch (None, None, None, 960 ['conv2d_162[0][0]'] \n", " Normalization) 320) \n", " \n", " activation_157 (Activation) (None, None, None, 0 ['batch_normalization_157[0][0]']\n", " 384) \n", " \n", " activation_159 (Activation) (None, None, None, 0 ['batch_normalization_159[0][0]']\n", " 288) \n", " \n", " activation_162 (Activation) (None, None, None, 0 ['batch_normalization_162[0][0]']\n", " 320) \n", " \n", " max_pooling2d_3 (MaxPooling2D) (None, None, None, 0 ['block17_20_ac[0][0]'] \n", " 1088) \n", " \n", " mixed_7a (Concatenate) (None, None, None, 0 ['activation_157[0][0]', \n", " 2080) 'activation_159[0][0]', \n", " 'activation_162[0][0]', \n", " 'max_pooling2d_3[0][0]'] \n", " \n", " conv2d_164 (Conv2D) (None, None, None, 399360 ['mixed_7a[0][0]'] \n", " 192) \n", " \n", " batch_normalization_164 (Batch (None, None, None, 576 ['conv2d_164[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_164 (Activation) (None, None, None, 0 ['batch_normalization_164[0][0]']\n", " 192) \n", " \n", " conv2d_165 (Conv2D) (None, None, None, 129024 ['activation_164[0][0]'] \n", " 224) \n", " \n", " batch_normalization_165 (Batch (None, None, None, 672 ['conv2d_165[0][0]'] \n", " Normalization) 224) \n", " \n", " activation_165 (Activation) (None, None, None, 0 ['batch_normalization_165[0][0]']\n", " 224) \n", " \n", " conv2d_163 (Conv2D) (None, None, None, 399360 ['mixed_7a[0][0]'] \n", " 192) \n", " \n", " conv2d_166 (Conv2D) (None, None, None, 172032 ['activation_165[0][0]'] \n", " 256) \n", " \n", " batch_normalization_163 (Batch (None, None, None, 576 ['conv2d_163[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_166 (Batch (None, None, None, 768 ['conv2d_166[0][0]'] \n", " Normalization) 256) \n", " \n", " activation_163 (Activation) (None, None, None, 0 ['batch_normalization_163[0][0]']\n", " 192) \n", " \n", " activation_166 (Activation) (None, None, None, 0 ['batch_normalization_166[0][0]']\n", " 256) \n", " \n", " block8_1_mixed (Concatenate) (None, None, None, 0 ['activation_163[0][0]', \n", " 448) 'activation_166[0][0]'] \n", " \n", " block8_1_conv (Conv2D) (None, None, None, 933920 ['block8_1_mixed[0][0]'] \n", " 2080) \n", " \n", " block8_1 (Lambda) (None, None, None, 0 ['mixed_7a[0][0]', \n", " 2080) 'block8_1_conv[0][0]'] \n", " \n", " block8_1_ac (Activation) (None, None, None, 0 ['block8_1[0][0]'] \n", " 2080) \n", " \n", " conv2d_168 (Conv2D) (None, None, None, 399360 ['block8_1_ac[0][0]'] \n", " 192) \n", " \n", " batch_normalization_168 (Batch (None, None, None, 576 ['conv2d_168[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_168 (Activation) (None, None, None, 0 ['batch_normalization_168[0][0]']\n", " 192) \n", " \n", " conv2d_169 (Conv2D) (None, None, None, 129024 ['activation_168[0][0]'] \n", " 224) \n", " \n", " batch_normalization_169 (Batch (None, None, None, 672 ['conv2d_169[0][0]'] \n", " Normalization) 224) \n", " \n", " activation_169 (Activation) (None, None, None, 0 ['batch_normalization_169[0][0]']\n", " 224) \n", " \n", " conv2d_167 (Conv2D) (None, None, None, 399360 ['block8_1_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_170 (Conv2D) (None, None, None, 172032 ['activation_169[0][0]'] \n", " 256) \n", " \n", " batch_normalization_167 (Batch (None, None, None, 576 ['conv2d_167[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_170 (Batch (None, None, None, 768 ['conv2d_170[0][0]'] \n", " Normalization) 256) \n", " \n", " activation_167 (Activation) (None, None, None, 0 ['batch_normalization_167[0][0]']\n", " 192) \n", " \n", " activation_170 (Activation) (None, None, None, 0 ['batch_normalization_170[0][0]']\n", " 256) \n", " \n", " block8_2_mixed (Concatenate) (None, None, None, 0 ['activation_167[0][0]', \n", " 448) 'activation_170[0][0]'] \n", " \n", " block8_2_conv (Conv2D) (None, None, None, 933920 ['block8_2_mixed[0][0]'] \n", " 2080) \n", " \n", " block8_2 (Lambda) (None, None, None, 0 ['block8_1_ac[0][0]', \n", " 2080) 'block8_2_conv[0][0]'] \n", " \n", " block8_2_ac (Activation) (None, None, None, 0 ['block8_2[0][0]'] \n", " 2080) \n", " \n", " conv2d_172 (Conv2D) (None, None, None, 399360 ['block8_2_ac[0][0]'] \n", " 192) \n", " \n", " batch_normalization_172 (Batch (None, None, None, 576 ['conv2d_172[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_172 (Activation) (None, None, None, 0 ['batch_normalization_172[0][0]']\n", " 192) \n", " \n", " conv2d_173 (Conv2D) (None, None, None, 129024 ['activation_172[0][0]'] \n", " 224) \n", " \n", " batch_normalization_173 (Batch (None, None, None, 672 ['conv2d_173[0][0]'] \n", " Normalization) 224) \n", " \n", " activation_173 (Activation) (None, None, None, 0 ['batch_normalization_173[0][0]']\n", " 224) \n", " \n", " conv2d_171 (Conv2D) (None, None, None, 399360 ['block8_2_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_174 (Conv2D) (None, None, None, 172032 ['activation_173[0][0]'] \n", " 256) \n", " \n", " batch_normalization_171 (Batch (None, None, None, 576 ['conv2d_171[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_174 (Batch (None, None, None, 768 ['conv2d_174[0][0]'] \n", " Normalization) 256) \n", " \n", " activation_171 (Activation) (None, None, None, 0 ['batch_normalization_171[0][0]']\n", " 192) \n", " \n", " activation_174 (Activation) (None, None, None, 0 ['batch_normalization_174[0][0]']\n", " 256) \n", " \n", " block8_3_mixed (Concatenate) (None, None, None, 0 ['activation_171[0][0]', \n", " 448) 'activation_174[0][0]'] \n", " \n", " block8_3_conv (Conv2D) (None, None, None, 933920 ['block8_3_mixed[0][0]'] \n", " 2080) \n", " \n", " block8_3 (Lambda) (None, None, None, 0 ['block8_2_ac[0][0]', \n", " 2080) 'block8_3_conv[0][0]'] \n", " \n", " block8_3_ac (Activation) (None, None, None, 0 ['block8_3[0][0]'] \n", " 2080) \n", " \n", " conv2d_176 (Conv2D) (None, None, None, 399360 ['block8_3_ac[0][0]'] \n", " 192) \n", " \n", " batch_normalization_176 (Batch (None, None, None, 576 ['conv2d_176[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_176 (Activation) (None, None, None, 0 ['batch_normalization_176[0][0]']\n", " 192) \n", " \n", " conv2d_177 (Conv2D) (None, None, None, 129024 ['activation_176[0][0]'] \n", " 224) \n", " \n", " batch_normalization_177 (Batch (None, None, None, 672 ['conv2d_177[0][0]'] \n", " Normalization) 224) \n", " \n", " activation_177 (Activation) (None, None, None, 0 ['batch_normalization_177[0][0]']\n", " 224) \n", " \n", " conv2d_175 (Conv2D) (None, None, None, 399360 ['block8_3_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_178 (Conv2D) (None, None, None, 172032 ['activation_177[0][0]'] \n", " 256) \n", " \n", " batch_normalization_175 (Batch (None, None, None, 576 ['conv2d_175[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_178 (Batch (None, None, None, 768 ['conv2d_178[0][0]'] \n", " Normalization) 256) \n", " \n", " activation_175 (Activation) (None, None, None, 0 ['batch_normalization_175[0][0]']\n", " 192) \n", " \n", " activation_178 (Activation) (None, None, None, 0 ['batch_normalization_178[0][0]']\n", " 256) \n", " \n", " block8_4_mixed (Concatenate) (None, None, None, 0 ['activation_175[0][0]', \n", " 448) 'activation_178[0][0]'] \n", " \n", " block8_4_conv (Conv2D) (None, None, None, 933920 ['block8_4_mixed[0][0]'] \n", " 2080) \n", " \n", " block8_4 (Lambda) (None, None, None, 0 ['block8_3_ac[0][0]', \n", " 2080) 'block8_4_conv[0][0]'] \n", " \n", " block8_4_ac (Activation) (None, None, None, 0 ['block8_4[0][0]'] \n", " 2080) \n", " \n", " conv2d_180 (Conv2D) (None, None, None, 399360 ['block8_4_ac[0][0]'] \n", " 192) \n", " \n", " batch_normalization_180 (Batch (None, None, None, 576 ['conv2d_180[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_180 (Activation) (None, None, None, 0 ['batch_normalization_180[0][0]']\n", " 192) \n", " \n", " conv2d_181 (Conv2D) (None, None, None, 129024 ['activation_180[0][0]'] \n", " 224) \n", " \n", " batch_normalization_181 (Batch (None, None, None, 672 ['conv2d_181[0][0]'] \n", " Normalization) 224) \n", " \n", " activation_181 (Activation) (None, None, None, 0 ['batch_normalization_181[0][0]']\n", " 224) \n", " \n", " conv2d_179 (Conv2D) (None, None, None, 399360 ['block8_4_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_182 (Conv2D) (None, None, None, 172032 ['activation_181[0][0]'] \n", " 256) \n", " \n", " batch_normalization_179 (Batch (None, None, None, 576 ['conv2d_179[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_182 (Batch (None, None, None, 768 ['conv2d_182[0][0]'] \n", " Normalization) 256) \n", " \n", " activation_179 (Activation) (None, None, None, 0 ['batch_normalization_179[0][0]']\n", " 192) \n", " \n", " activation_182 (Activation) (None, None, None, 0 ['batch_normalization_182[0][0]']\n", " 256) \n", " \n", " block8_5_mixed (Concatenate) (None, None, None, 0 ['activation_179[0][0]', \n", " 448) 'activation_182[0][0]'] \n", " \n", " block8_5_conv (Conv2D) (None, None, None, 933920 ['block8_5_mixed[0][0]'] \n", " 2080) \n", " \n", " block8_5 (Lambda) (None, None, None, 0 ['block8_4_ac[0][0]', \n", " 2080) 'block8_5_conv[0][0]'] \n", " \n", " block8_5_ac (Activation) (None, None, None, 0 ['block8_5[0][0]'] \n", " 2080) \n", " \n", " conv2d_184 (Conv2D) (None, None, None, 399360 ['block8_5_ac[0][0]'] \n", " 192) \n", " \n", " batch_normalization_184 (Batch (None, None, None, 576 ['conv2d_184[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_184 (Activation) (None, None, None, 0 ['batch_normalization_184[0][0]']\n", " 192) \n", " \n", " conv2d_185 (Conv2D) (None, None, None, 129024 ['activation_184[0][0]'] \n", " 224) \n", " \n", " batch_normalization_185 (Batch (None, None, None, 672 ['conv2d_185[0][0]'] \n", " Normalization) 224) \n", " \n", " activation_185 (Activation) (None, None, None, 0 ['batch_normalization_185[0][0]']\n", " 224) \n", " \n", " conv2d_183 (Conv2D) (None, None, None, 399360 ['block8_5_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_186 (Conv2D) (None, None, None, 172032 ['activation_185[0][0]'] \n", " 256) \n", " \n", " batch_normalization_183 (Batch (None, None, None, 576 ['conv2d_183[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_186 (Batch (None, None, None, 768 ['conv2d_186[0][0]'] \n", " Normalization) 256) \n", " \n", " activation_183 (Activation) (None, None, None, 0 ['batch_normalization_183[0][0]']\n", " 192) \n", " \n", " activation_186 (Activation) (None, None, None, 0 ['batch_normalization_186[0][0]']\n", " 256) \n", " \n", " block8_6_mixed (Concatenate) (None, None, None, 0 ['activation_183[0][0]', \n", " 448) 'activation_186[0][0]'] \n", " \n", " block8_6_conv (Conv2D) (None, None, None, 933920 ['block8_6_mixed[0][0]'] \n", " 2080) \n", " \n", " block8_6 (Lambda) (None, None, None, 0 ['block8_5_ac[0][0]', \n", " 2080) 'block8_6_conv[0][0]'] \n", " \n", " block8_6_ac (Activation) (None, None, None, 0 ['block8_6[0][0]'] \n", " 2080) \n", " \n", " conv2d_188 (Conv2D) (None, None, None, 399360 ['block8_6_ac[0][0]'] \n", " 192) \n", " \n", " batch_normalization_188 (Batch (None, None, None, 576 ['conv2d_188[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_188 (Activation) (None, None, None, 0 ['batch_normalization_188[0][0]']\n", " 192) \n", " \n", " conv2d_189 (Conv2D) (None, None, None, 129024 ['activation_188[0][0]'] \n", " 224) \n", " \n", " batch_normalization_189 (Batch (None, None, None, 672 ['conv2d_189[0][0]'] \n", " Normalization) 224) \n", " \n", " activation_189 (Activation) (None, None, None, 0 ['batch_normalization_189[0][0]']\n", " 224) \n", " \n", " conv2d_187 (Conv2D) (None, None, None, 399360 ['block8_6_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_190 (Conv2D) (None, None, None, 172032 ['activation_189[0][0]'] \n", " 256) \n", " \n", " batch_normalization_187 (Batch (None, None, None, 576 ['conv2d_187[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_190 (Batch (None, None, None, 768 ['conv2d_190[0][0]'] \n", " Normalization) 256) \n", " \n", " activation_187 (Activation) (None, None, None, 0 ['batch_normalization_187[0][0]']\n", " 192) \n", " \n", " activation_190 (Activation) (None, None, None, 0 ['batch_normalization_190[0][0]']\n", " 256) \n", " \n", " block8_7_mixed (Concatenate) (None, None, None, 0 ['activation_187[0][0]', \n", " 448) 'activation_190[0][0]'] \n", " \n", " block8_7_conv (Conv2D) (None, None, None, 933920 ['block8_7_mixed[0][0]'] \n", " 2080) \n", " \n", " block8_7 (Lambda) (None, None, None, 0 ['block8_6_ac[0][0]', \n", " 2080) 'block8_7_conv[0][0]'] \n", " \n", " block8_7_ac (Activation) (None, None, None, 0 ['block8_7[0][0]'] \n", " 2080) \n", " \n", " conv2d_192 (Conv2D) (None, None, None, 399360 ['block8_7_ac[0][0]'] \n", " 192) \n", " \n", " batch_normalization_192 (Batch (None, None, None, 576 ['conv2d_192[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_192 (Activation) (None, None, None, 0 ['batch_normalization_192[0][0]']\n", " 192) \n", " \n", " conv2d_193 (Conv2D) (None, None, None, 129024 ['activation_192[0][0]'] \n", " 224) \n", " \n", " batch_normalization_193 (Batch (None, None, None, 672 ['conv2d_193[0][0]'] \n", " Normalization) 224) \n", " \n", " activation_193 (Activation) (None, None, None, 0 ['batch_normalization_193[0][0]']\n", " 224) \n", " \n", " conv2d_191 (Conv2D) (None, None, None, 399360 ['block8_7_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_194 (Conv2D) (None, None, None, 172032 ['activation_193[0][0]'] \n", " 256) \n", " \n", " batch_normalization_191 (Batch (None, None, None, 576 ['conv2d_191[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_194 (Batch (None, None, None, 768 ['conv2d_194[0][0]'] \n", " Normalization) 256) \n", " \n", " activation_191 (Activation) (None, None, None, 0 ['batch_normalization_191[0][0]']\n", " 192) \n", " \n", " activation_194 (Activation) (None, None, None, 0 ['batch_normalization_194[0][0]']\n", " 256) \n", " \n", " block8_8_mixed (Concatenate) (None, None, None, 0 ['activation_191[0][0]', \n", " 448) 'activation_194[0][0]'] \n", " \n", " block8_8_conv (Conv2D) (None, None, None, 933920 ['block8_8_mixed[0][0]'] \n", " 2080) \n", " \n", " block8_8 (Lambda) (None, None, None, 0 ['block8_7_ac[0][0]', \n", " 2080) 'block8_8_conv[0][0]'] \n", " \n", " block8_8_ac (Activation) (None, None, None, 0 ['block8_8[0][0]'] \n", " 2080) \n", " \n", " conv2d_196 (Conv2D) (None, None, None, 399360 ['block8_8_ac[0][0]'] \n", " 192) \n", " \n", " batch_normalization_196 (Batch (None, None, None, 576 ['conv2d_196[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_196 (Activation) (None, None, None, 0 ['batch_normalization_196[0][0]']\n", " 192) \n", " \n", " conv2d_197 (Conv2D) (None, None, None, 129024 ['activation_196[0][0]'] \n", " 224) \n", " \n", " batch_normalization_197 (Batch (None, None, None, 672 ['conv2d_197[0][0]'] \n", " Normalization) 224) \n", " \n", " activation_197 (Activation) (None, None, None, 0 ['batch_normalization_197[0][0]']\n", " 224) \n", " \n", " conv2d_195 (Conv2D) (None, None, None, 399360 ['block8_8_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_198 (Conv2D) (None, None, None, 172032 ['activation_197[0][0]'] \n", " 256) \n", " \n", " batch_normalization_195 (Batch (None, None, None, 576 ['conv2d_195[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_198 (Batch (None, None, None, 768 ['conv2d_198[0][0]'] \n", " Normalization) 256) \n", " \n", " activation_195 (Activation) (None, None, None, 0 ['batch_normalization_195[0][0]']\n", " 192) \n", " \n", " activation_198 (Activation) (None, None, None, 0 ['batch_normalization_198[0][0]']\n", " 256) \n", " \n", " block8_9_mixed (Concatenate) (None, None, None, 0 ['activation_195[0][0]', \n", " 448) 'activation_198[0][0]'] \n", " \n", " block8_9_conv (Conv2D) (None, None, None, 933920 ['block8_9_mixed[0][0]'] \n", " 2080) \n", " \n", " block8_9 (Lambda) (None, None, None, 0 ['block8_8_ac[0][0]', \n", " 2080) 'block8_9_conv[0][0]'] \n", " \n", " block8_9_ac (Activation) (None, None, None, 0 ['block8_9[0][0]'] \n", " 2080) \n", " \n", " conv2d_200 (Conv2D) (None, None, None, 399360 ['block8_9_ac[0][0]'] \n", " 192) \n", " \n", " batch_normalization_200 (Batch (None, None, None, 576 ['conv2d_200[0][0]'] \n", " Normalization) 192) \n", " \n", " activation_200 (Activation) (None, None, None, 0 ['batch_normalization_200[0][0]']\n", " 192) \n", " \n", " conv2d_201 (Conv2D) (None, None, None, 129024 ['activation_200[0][0]'] \n", " 224) \n", " \n", " batch_normalization_201 (Batch (None, None, None, 672 ['conv2d_201[0][0]'] \n", " Normalization) 224) \n", " \n", " activation_201 (Activation) (None, None, None, 0 ['batch_normalization_201[0][0]']\n", " 224) \n", " \n", " conv2d_199 (Conv2D) (None, None, None, 399360 ['block8_9_ac[0][0]'] \n", " 192) \n", " \n", " conv2d_202 (Conv2D) (None, None, None, 172032 ['activation_201[0][0]'] \n", " 256) \n", " \n", " batch_normalization_199 (Batch (None, None, None, 576 ['conv2d_199[0][0]'] \n", " Normalization) 192) \n", " \n", " batch_normalization_202 (Batch (None, None, None, 768 ['conv2d_202[0][0]'] \n", " Normalization) 256) \n", " \n", " activation_199 (Activation) (None, None, None, 0 ['batch_normalization_199[0][0]']\n", " 192) \n", " \n", " activation_202 (Activation) (None, None, None, 0 ['batch_normalization_202[0][0]']\n", " 256) \n", " \n", " block8_10_mixed (Concatenate) (None, None, None, 0 ['activation_199[0][0]', \n", " 448) 'activation_202[0][0]'] \n", " \n", " block8_10_conv (Conv2D) (None, None, None, 933920 ['block8_10_mixed[0][0]'] \n", " 2080) \n", " \n", " block8_10 (Lambda) (None, None, None, 0 ['block8_9_ac[0][0]', \n", " 2080) 'block8_10_conv[0][0]'] \n", " \n", " conv_7b (Conv2D) (None, None, None, 3194880 ['block8_10[0][0]'] \n", " 1536) \n", " \n", " conv_7b_bn (BatchNormalization (None, None, None, 4608 ['conv_7b[0][0]'] \n", " ) 1536) \n", " \n", " conv_7b_ac (Activation) (None, None, None, 0 ['conv_7b_bn[0][0]'] \n", " 1536) \n", " \n", " global_average_pooling2d (Glob (None, 1536) 0 ['conv_7b_ac[0][0]'] \n", " alAveragePooling2D) \n", " \n", " dense (Dense) (None, 13) 19981 ['global_average_pooling2d[0][0]'\n", " ] \n", " \n", "==================================================================================================\n", "Total params: 54,356,717\n", "Trainable params: 54,296,173\n", "Non-trainable params: 60,544\n", "__________________________________________________________________________________________________\n" ] } ], "source": [ "for layer in base_model.layers:\n", " layer.trainable = True\n", " \n", "output = Dense(13, activation='softmax')(base_model.output)\n", "model = tf.keras.Model(base_model.input, output)\n", "#model = add_regularization(model)\n", "model.summary()\n" ] }, { "cell_type": "code", "execution_count": 16, "id": "ea620129", "metadata": {}, "outputs": [], "source": [ "#model.add(Dropout(.5))\n", "#model.add(Dense(64, activation='softmax'))\n", "# model.add(Dropout(.25))\n", "#model = add_regularization(model)\n" ] }, { "cell_type": "code", "execution_count": 17, "id": "fd5d1246", "metadata": {}, "outputs": [], "source": [ "model.compile(optimizer=Adam(learning_rate=.0001), loss='categorical_crossentropy',\n", " metrics=['accuracy'])\n", "# sparse_categorical_crossentropy" ] }, { "cell_type": "code", "execution_count": null, "id": "9cd2ba27", "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/30\n", "142/142 [==============================] - 71s 426ms/step - loss: 1.5727 - accuracy: 0.4613 - val_loss: 2.5192 - val_accuracy: 0.1233\n", "Epoch 2/30\n", "142/142 [==============================] - 56s 395ms/step - loss: 0.6991 - accuracy: 0.7644 - val_loss: 1.9969 - val_accuracy: 0.3568\n", "Epoch 3/30\n", "142/142 [==============================] - 56s 395ms/step - loss: 0.2355 - accuracy: 0.9302 - val_loss: 1.9622 - val_accuracy: 0.4626\n", "Epoch 4/30\n", "142/142 [==============================] - 56s 393ms/step - loss: 0.1015 - accuracy: 0.9707 - val_loss: 1.8987 - val_accuracy: 0.5207\n", "Epoch 5/30\n", "142/142 [==============================] - 57s 398ms/step - loss: 0.0899 - accuracy: 0.9736 - val_loss: 1.8865 - val_accuracy: 0.5727\n", "Epoch 6/30\n", "142/142 [==============================] - 57s 402ms/step - loss: 0.0895 - accuracy: 0.9742 - val_loss: 1.9440 - val_accuracy: 0.5419\n", "Epoch 7/30\n", "142/142 [==============================] - 58s 406ms/step - loss: 0.0784 - accuracy: 0.9762 - val_loss: 2.2314 - val_accuracy: 0.5145\n", "Epoch 8/30\n", "142/142 [==============================] - 58s 406ms/step - loss: 0.0536 - accuracy: 0.9852 - val_loss: 2.0704 - val_accuracy: 0.5480\n", "Epoch 9/30\n", "142/142 [==============================] - 57s 399ms/step - loss: 0.0672 - accuracy: 0.9802 - val_loss: 2.3144 - val_accuracy: 0.5189\n", "Epoch 10/30\n", "142/142 [==============================] - 56s 395ms/step - loss: 0.0423 - accuracy: 0.9875 - val_loss: 2.2718 - val_accuracy: 0.5330\n", "Epoch 11/30\n", "142/142 [==============================] - 57s 400ms/step - loss: 0.0325 - accuracy: 0.9903 - val_loss: 2.2889 - val_accuracy: 0.5498\n", "Epoch 12/30\n", "142/142 [==============================] - 56s 396ms/step - loss: 0.0591 - accuracy: 0.9822 - val_loss: 2.1700 - val_accuracy: 0.5577\n", "Epoch 13/30\n", "142/142 [==============================] - 56s 395ms/step - loss: 0.0387 - accuracy: 0.9899 - val_loss: 2.3132 - val_accuracy: 0.5410\n", "Epoch 14/30\n", " 95/142 [===================>..........] - ETA: 14s - loss: 0.0344 - accuracy: 0.9888" ] } ], "source": [ "model.fit(x=train_generator,\n", " steps_per_epoch=len(train_generator),\n", " validation_data=validation_generator,\n", " validation_steps=len(validation_generator),\n", " epochs=30,\n", " verbose=1)" ] }, { "cell_type": "code", "execution_count": null, "id": "63f791af", "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.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }