From e26f0510438c81471ec5d2e8ff247d0e4d41a93f Mon Sep 17 00:00:00 2001 From: Daniel Kloeck Date: Sat, 17 Oct 2020 12:02:52 +0200 Subject: [PATCH] move bar categorization files + add EfficientNetB2 --- ...orization-EfficientNetB2-checkpoint.ipynb} | 0 .../Bar Categorization-Densenet121.ipynb | 0 .../Bar Categorization-EfficientNetB1.ipynb | 0 ...Categorization-EfficientNetB1_nolast.ipynb | 0 ...egorization-EfficientNetB1_noprelast.ipynb | 0 ...ization-EfficientNetB1_training_last.ipynb | 0 ...Categorization-EfficientNetB2-nolast.ipynb | 0 ...on-EfficientNetB2-training-last-best.ipynb | 0 .../Bar Categorization-EfficientNetB2.ipynb | 2297 +++++++++++++++++ .../Bar Categorization-EfficientNetB3.ipynb | 0 .../Bar Categorization-ResNet101.ipynb | 0 .../Bar Categorization-ResNet101_nolast.ipynb | 0 .../Bar Categorization-ResNet50-nolast.ipynb | 0 .../Bar Categorization-ResNet50.ipynb | 0 .../Bar Categorization-VGG16.ipynb | 0 .../Bar Categorization-VGG16_nolast.ipynb | 0 .../Bar Categorization-VGG19-nolast.ipynb | 0 .../Bar Categorization-VGG19.ipynb | 0 18 files changed, 2297 insertions(+) rename Chapter3/{Bar Categorization-EfficientNetB2.ipynb => .ipynb_checkpoints/Bar Categorization-EfficientNetB2-checkpoint.ipynb} (100%) rename Chapter3/{ => Bar Categorization}/Bar Categorization-Densenet121.ipynb (100%) rename Chapter3/{ => Bar Categorization}/Bar Categorization-EfficientNetB1.ipynb (100%) rename Chapter3/{ => Bar Categorization}/Bar Categorization-EfficientNetB1_nolast.ipynb (100%) rename Chapter3/{ => Bar Categorization}/Bar Categorization-EfficientNetB1_noprelast.ipynb (100%) rename Chapter3/{ => Bar Categorization}/Bar Categorization-EfficientNetB1_training_last.ipynb (100%) rename Chapter3/{ => Bar Categorization}/Bar Categorization-EfficientNetB2-nolast.ipynb (100%) rename Chapter3/{ => Bar Categorization}/Bar Categorization-EfficientNetB2-training-last-best.ipynb (100%) create mode 100644 Chapter3/Bar Categorization/Bar Categorization-EfficientNetB2.ipynb rename Chapter3/{ => Bar Categorization}/Bar Categorization-EfficientNetB3.ipynb (100%) rename Chapter3/{ => Bar Categorization}/Bar Categorization-ResNet101.ipynb (100%) rename Chapter3/{ => Bar Categorization}/Bar Categorization-ResNet101_nolast.ipynb (100%) rename Chapter3/{ => Bar Categorization}/Bar Categorization-ResNet50-nolast.ipynb (100%) rename Chapter3/{ => Bar Categorization}/Bar Categorization-ResNet50.ipynb (100%) rename Chapter3/{ => Bar Categorization}/Bar Categorization-VGG16.ipynb (100%) rename Chapter3/{ => Bar Categorization}/Bar Categorization-VGG16_nolast.ipynb (100%) rename Chapter3/{ => Bar Categorization}/Bar Categorization-VGG19-nolast.ipynb (100%) rename Chapter3/{ => Bar Categorization}/Bar Categorization-VGG19.ipynb (100%) diff --git a/Chapter3/Bar Categorization-EfficientNetB2.ipynb b/Chapter3/.ipynb_checkpoints/Bar Categorization-EfficientNetB2-checkpoint.ipynb similarity index 100% rename from Chapter3/Bar Categorization-EfficientNetB2.ipynb rename to Chapter3/.ipynb_checkpoints/Bar Categorization-EfficientNetB2-checkpoint.ipynb diff --git a/Chapter3/Bar Categorization-Densenet121.ipynb b/Chapter3/Bar Categorization/Bar Categorization-Densenet121.ipynb similarity index 100% rename from Chapter3/Bar Categorization-Densenet121.ipynb rename to Chapter3/Bar Categorization/Bar Categorization-Densenet121.ipynb diff --git a/Chapter3/Bar Categorization-EfficientNetB1.ipynb b/Chapter3/Bar Categorization/Bar Categorization-EfficientNetB1.ipynb similarity index 100% rename from Chapter3/Bar Categorization-EfficientNetB1.ipynb rename to Chapter3/Bar Categorization/Bar Categorization-EfficientNetB1.ipynb diff --git a/Chapter3/Bar Categorization-EfficientNetB1_nolast.ipynb b/Chapter3/Bar Categorization/Bar Categorization-EfficientNetB1_nolast.ipynb similarity index 100% rename from Chapter3/Bar Categorization-EfficientNetB1_nolast.ipynb rename to Chapter3/Bar Categorization/Bar Categorization-EfficientNetB1_nolast.ipynb diff --git a/Chapter3/Bar Categorization-EfficientNetB1_noprelast.ipynb b/Chapter3/Bar Categorization/Bar Categorization-EfficientNetB1_noprelast.ipynb similarity index 100% rename from Chapter3/Bar Categorization-EfficientNetB1_noprelast.ipynb rename to Chapter3/Bar Categorization/Bar Categorization-EfficientNetB1_noprelast.ipynb diff --git a/Chapter3/Bar Categorization-EfficientNetB1_training_last.ipynb b/Chapter3/Bar Categorization/Bar Categorization-EfficientNetB1_training_last.ipynb similarity index 100% rename from Chapter3/Bar Categorization-EfficientNetB1_training_last.ipynb rename to Chapter3/Bar Categorization/Bar Categorization-EfficientNetB1_training_last.ipynb diff --git a/Chapter3/Bar Categorization-EfficientNetB2-nolast.ipynb b/Chapter3/Bar Categorization/Bar Categorization-EfficientNetB2-nolast.ipynb similarity index 100% rename from Chapter3/Bar Categorization-EfficientNetB2-nolast.ipynb rename to Chapter3/Bar Categorization/Bar Categorization-EfficientNetB2-nolast.ipynb diff --git a/Chapter3/Bar Categorization-EfficientNetB2-training-last-best.ipynb b/Chapter3/Bar Categorization/Bar Categorization-EfficientNetB2-training-last-best.ipynb similarity index 100% rename from Chapter3/Bar Categorization-EfficientNetB2-training-last-best.ipynb rename to Chapter3/Bar Categorization/Bar Categorization-EfficientNetB2-training-last-best.ipynb diff --git a/Chapter3/Bar Categorization/Bar Categorization-EfficientNetB2.ipynb b/Chapter3/Bar Categorization/Bar Categorization-EfficientNetB2.ipynb new file mode 100644 index 0000000..029122e --- /dev/null +++ b/Chapter3/Bar Categorization/Bar Categorization-EfficientNetB2.ipynb @@ -0,0 +1,2297 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Local Image Classification Training - Bars\n", + "\n", + "Classifies the bars to extract the bits they represent." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "BARS_FOLDER = \"../bars/\"\n", + "TRAIN_FOLDER = \"../bars/train/\"\n", + "TEST_FOLDER = \"../bars/test/\"\n", + "AUGMENT_FOLDER = \"../bars/augmented/\"\n", + "PARTITION_SCRIPT = \"../tensorflow/scripts/preprocessing/partition_dataset.py\"" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "from os import listdir\n", + "from os.path import isfile, join\n", + "import os" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "train_paths = [TRAIN_FOLDER + f for f in listdir(TRAIN_FOLDER) if isfile(join(TRAIN_FOLDER, f))]\n", + "test_paths = [TEST_FOLDER + f for f in listdir(TEST_FOLDER) if isfile(join(TEST_FOLDER, f))]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create a DataFrame with Paths and Labels" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1780, 4)\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
pathdecbinclass
0../bars/train/1000082_v_300079.png10000820b11110100001010010010[19, 18, 17, 16, 14, 9, 7, 4, 1]
1../bars/train/1000160_h_1016272.png10001600b11110100001011100000[19, 18, 17, 16, 14, 9, 7, 6, 5]
2../bars/train/1000183_hv_915487.png10001830b11110100001011110111[19, 18, 17, 16, 14, 9, 7, 6, 5, 4, 2, 1, 0]
3../bars/train/1000235_v_871471.png10002350b11110100001100101011[19, 18, 17, 16, 14, 9, 8, 5, 3, 1, 0]
4../bars/train/1002732_hv_242463.png10027320b11110100110011101100[19, 18, 17, 16, 14, 11, 10, 7, 6, 5, 3, 2]
\n", + "
" + ], + "text/plain": [ + " path dec bin \\\n", + "0 ../bars/train/1000082_v_300079.png 1000082 0b11110100001010010010 \n", + "1 ../bars/train/1000160_h_1016272.png 1000160 0b11110100001011100000 \n", + "2 ../bars/train/1000183_hv_915487.png 1000183 0b11110100001011110111 \n", + "3 ../bars/train/1000235_v_871471.png 1000235 0b11110100001100101011 \n", + "4 ../bars/train/1002732_hv_242463.png 1002732 0b11110100110011101100 \n", + "\n", + " class \n", + "0 [19, 18, 17, 16, 14, 9, 7, 4, 1] \n", + "1 [19, 18, 17, 16, 14, 9, 7, 6, 5] \n", + "2 [19, 18, 17, 16, 14, 9, 7, 6, 5, 4, 2, 1, 0] \n", + "3 [19, 18, 17, 16, 14, 9, 8, 5, 3, 1, 0] \n", + "4 [19, 18, 17, 16, 14, 11, 10, 7, 6, 5, 3, 2] " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_df = pd.DataFrame({'path': train_paths})\n", + "train_df[\"dec\"] = train_df.apply(lambda x: int(x['path'].split(\"/\")[-1].split(\"_\")[0]), axis=1)\n", + "train_df[\"bin\"] = train_df.apply(lambda x: bin(x['dec']), axis=1)\n", + "train_df[\"class\"] = train_df.apply(lambda x: [i for i in reversed(range(20)) if (x['dec'] & 1 << i) != 0], axis=1)\n", + " \n", + "print(train_df.shape)\n", + "train_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(200, 4)\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
pathdecbinclass
0../bars/test/1000767_h_1018431.png10007670b11110100010100111111[19, 18, 17, 16, 14, 10, 8, 5, 4, 3, 2, 1, 0]
1../bars/test/1001347_v_794159.png10013470b11110100011110000011[19, 18, 17, 16, 14, 10, 9, 8, 7, 1, 0]
2../bars/test/1002872_1.png10028720b11110100110101111000[19, 18, 17, 16, 14, 11, 10, 8, 6, 5, 4, 3]
3../bars/test/1004288_h_1024768.png10042880b11110101001100000000[19, 18, 17, 16, 14, 12, 9, 8]
4../bars/test/1007758_h_1019981.png10077580b11110110000010001110[19, 18, 17, 16, 14, 13, 7, 3, 2, 1]
\n", + "
" + ], + "text/plain": [ + " path dec bin \\\n", + "0 ../bars/test/1000767_h_1018431.png 1000767 0b11110100010100111111 \n", + "1 ../bars/test/1001347_v_794159.png 1001347 0b11110100011110000011 \n", + "2 ../bars/test/1002872_1.png 1002872 0b11110100110101111000 \n", + "3 ../bars/test/1004288_h_1024768.png 1004288 0b11110101001100000000 \n", + "4 ../bars/test/1007758_h_1019981.png 1007758 0b11110110000010001110 \n", + "\n", + " class \n", + "0 [19, 18, 17, 16, 14, 10, 8, 5, 4, 3, 2, 1, 0] \n", + "1 [19, 18, 17, 16, 14, 10, 9, 8, 7, 1, 0] \n", + "2 [19, 18, 17, 16, 14, 11, 10, 8, 6, 5, 4, 3] \n", + "3 [19, 18, 17, 16, 14, 12, 9, 8] \n", + "4 [19, 18, 17, 16, 14, 13, 7, 3, 2, 1] " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "test_df = pd.DataFrame({'path': test_paths})\n", + "test_df[\"dec\"] = test_df.apply(lambda x: int(x['path'].split(\"/\")[-1].split(\"_\")[0]), axis=1)\n", + "test_df[\"bin\"] = test_df.apply(lambda x: bin(x['dec']), axis=1)\n", + "test_df[\"class\"] = test_df.apply(lambda x: [i for i in reversed(range(20)) if (x['dec'] & 1 << i) != 0], axis=1)\n", + " \n", + "print(test_df.shape)\n", + "test_df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define the Image Generators" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "from tensorflow.keras.preprocessing.image import ImageDataGenerator" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "train_datagen = ImageDataGenerator(\n", + " rotation_range = 4,\n", + " zoom_range = 0.02,\n", + " brightness_range=[0.15,0.85],\n", + " channel_shift_range=0.2,\n", + " shear_range = 0.2,\n", + " horizontal_flip = False,\n", + " vertical_flip = False,\n", + " fill_mode = 'nearest')" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "target_size = (450, 100)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found 1780 validated image filenames belonging to 20 classes.\n" + ] + } + ], + "source": [ + "train_generator = train_datagen.flow_from_dataframe(\n", + " dataframe = train_df,\n", + " directory = \".\",\n", + " target_size = target_size,\n", + " batch_size = 64,\n", + " x_col = 'path',\n", + " y_col = 'class',\n", + " class_mode = 'categorical')\n", + "# save_to_dir = '../augmented_bars/'" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found 200 validated image filenames belonging to 20 classes.\n" + ] + } + ], + "source": [ + "test_datagen = ImageDataGenerator()\n", + "test_generator = test_datagen.flow_from_dataframe(\n", + " dataframe = test_df,\n", + " directory = \".\",\n", + " target_size = target_size,\n", + " shuffle = False,\n", + " x_col = 'path',\n", + " y_col = 'class',\n", + " class_mode = 'categorical')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define the Model\n", + "\n", + "### Load model for transfer learning" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Downloading data from https://storage.googleapis.com/keras-applications/efficientnetb2_notop.h5\n", + "31793152/31790344 [==============================] - 9s 0us/step\n" + ] + } + ], + "source": [ + "from tensorflow.keras.applications import EfficientNetB2\n", + "\n", + "model = EfficientNetB2(include_top=False, input_shape=(450,100,3))\n", + "model.trainable = False" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: \"efficientnetb2\"\n", + "__________________________________________________________________________________________________\n", + "Layer (type) Output Shape Param # Connected to \n", + "==================================================================================================\n", + "input_1 (InputLayer) [(None, 450, 100, 3) 0 \n", + "__________________________________________________________________________________________________\n", + "rescaling (Rescaling) (None, 450, 100, 3) 0 input_1[0][0] \n", + "__________________________________________________________________________________________________\n", + "normalization (Normalization) (None, 450, 100, 3) 7 rescaling[0][0] \n", + "__________________________________________________________________________________________________\n", + "stem_conv_pad (ZeroPadding2D) (None, 451, 101, 3) 0 normalization[0][0] \n", + "__________________________________________________________________________________________________\n", + "stem_conv (Conv2D) (None, 225, 50, 32) 864 stem_conv_pad[0][0] \n", + "__________________________________________________________________________________________________\n", + "stem_bn (BatchNormalization) (None, 225, 50, 32) 128 stem_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "stem_activation (Activation) (None, 225, 50, 32) 0 stem_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_dwconv (DepthwiseConv2D (None, 225, 50, 32) 288 stem_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_bn (BatchNormalization) (None, 225, 50, 32) 128 block1a_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_activation (Activation) (None, 225, 50, 32) 0 block1a_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_se_squeeze (GlobalAvera (None, 32) 0 block1a_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_se_reshape (Reshape) (None, 1, 1, 32) 0 block1a_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_se_reduce (Conv2D) (None, 1, 1, 8) 264 block1a_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_se_expand (Conv2D) (None, 1, 1, 32) 288 block1a_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_se_excite (Multiply) (None, 225, 50, 32) 0 block1a_activation[0][0] \n", + " block1a_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_project_conv (Conv2D) (None, 225, 50, 16) 512 block1a_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_project_bn (BatchNormal (None, 225, 50, 16) 64 block1a_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_dwconv (DepthwiseConv2D (None, 225, 50, 16) 144 block1a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_bn (BatchNormalization) (None, 225, 50, 16) 64 block1b_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_activation (Activation) (None, 225, 50, 16) 0 block1b_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_se_squeeze (GlobalAvera (None, 16) 0 block1b_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_se_reshape (Reshape) (None, 1, 1, 16) 0 block1b_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_se_reduce (Conv2D) (None, 1, 1, 4) 68 block1b_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_se_expand (Conv2D) (None, 1, 1, 16) 80 block1b_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_se_excite (Multiply) (None, 225, 50, 16) 0 block1b_activation[0][0] \n", + " block1b_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_project_conv (Conv2D) (None, 225, 50, 16) 256 block1b_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_project_bn (BatchNormal (None, 225, 50, 16) 64 block1b_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_drop (Dropout) (None, 225, 50, 16) 0 block1b_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_add (Add) (None, 225, 50, 16) 0 block1b_drop[0][0] \n", + " block1a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_expand_conv (Conv2D) (None, 225, 50, 96) 1536 block1b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_expand_bn (BatchNormali (None, 225, 50, 96) 384 block2a_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_expand_activation (Acti (None, 225, 50, 96) 0 block2a_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_dwconv_pad (ZeroPadding (None, 227, 51, 96) 0 block2a_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_dwconv (DepthwiseConv2D (None, 113, 25, 96) 864 block2a_dwconv_pad[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_bn (BatchNormalization) (None, 113, 25, 96) 384 block2a_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_activation (Activation) (None, 113, 25, 96) 0 block2a_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_se_squeeze (GlobalAvera (None, 96) 0 block2a_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_se_reshape (Reshape) (None, 1, 1, 96) 0 block2a_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_se_reduce (Conv2D) (None, 1, 1, 4) 388 block2a_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_se_expand (Conv2D) (None, 1, 1, 96) 480 block2a_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_se_excite (Multiply) (None, 113, 25, 96) 0 block2a_activation[0][0] \n", + " block2a_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_project_conv (Conv2D) (None, 113, 25, 24) 2304 block2a_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_project_bn (BatchNormal (None, 113, 25, 24) 96 block2a_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_expand_conv (Conv2D) (None, 113, 25, 144) 3456 block2a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_expand_bn (BatchNormali (None, 113, 25, 144) 576 block2b_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_expand_activation (Acti (None, 113, 25, 144) 0 block2b_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_dwconv (DepthwiseConv2D (None, 113, 25, 144) 1296 block2b_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_bn (BatchNormalization) (None, 113, 25, 144) 576 block2b_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_activation (Activation) (None, 113, 25, 144) 0 block2b_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_se_squeeze (GlobalAvera (None, 144) 0 block2b_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_se_reshape (Reshape) (None, 1, 1, 144) 0 block2b_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_se_reduce (Conv2D) (None, 1, 1, 6) 870 block2b_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_se_expand (Conv2D) (None, 1, 1, 144) 1008 block2b_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_se_excite (Multiply) (None, 113, 25, 144) 0 block2b_activation[0][0] \n", + " block2b_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_project_conv (Conv2D) (None, 113, 25, 24) 3456 block2b_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_project_bn (BatchNormal (None, 113, 25, 24) 96 block2b_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_drop (Dropout) (None, 113, 25, 24) 0 block2b_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_add (Add) (None, 113, 25, 24) 0 block2b_drop[0][0] \n", + " block2a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_expand_conv (Conv2D) (None, 113, 25, 144) 3456 block2b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_expand_bn (BatchNormali (None, 113, 25, 144) 576 block2c_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_expand_activation (Acti (None, 113, 25, 144) 0 block2c_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_dwconv (DepthwiseConv2D (None, 113, 25, 144) 1296 block2c_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_bn (BatchNormalization) (None, 113, 25, 144) 576 block2c_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_activation (Activation) (None, 113, 25, 144) 0 block2c_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_se_squeeze (GlobalAvera (None, 144) 0 block2c_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_se_reshape (Reshape) (None, 1, 1, 144) 0 block2c_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_se_reduce (Conv2D) (None, 1, 1, 6) 870 block2c_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_se_expand (Conv2D) (None, 1, 1, 144) 1008 block2c_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_se_excite (Multiply) (None, 113, 25, 144) 0 block2c_activation[0][0] \n", + " block2c_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_project_conv (Conv2D) (None, 113, 25, 24) 3456 block2c_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_project_bn (BatchNormal (None, 113, 25, 24) 96 block2c_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_drop (Dropout) (None, 113, 25, 24) 0 block2c_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_add (Add) (None, 113, 25, 24) 0 block2c_drop[0][0] \n", + " block2b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_expand_conv (Conv2D) (None, 113, 25, 144) 3456 block2c_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_expand_bn (BatchNormali (None, 113, 25, 144) 576 block3a_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_expand_activation (Acti (None, 113, 25, 144) 0 block3a_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_dwconv_pad (ZeroPadding (None, 117, 29, 144) 0 block3a_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_dwconv (DepthwiseConv2D (None, 57, 13, 144) 3600 block3a_dwconv_pad[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_bn (BatchNormalization) (None, 57, 13, 144) 576 block3a_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_activation (Activation) (None, 57, 13, 144) 0 block3a_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_se_squeeze (GlobalAvera (None, 144) 0 block3a_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_se_reshape (Reshape) (None, 1, 1, 144) 0 block3a_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_se_reduce (Conv2D) (None, 1, 1, 6) 870 block3a_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_se_expand (Conv2D) (None, 1, 1, 144) 1008 block3a_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_se_excite (Multiply) (None, 57, 13, 144) 0 block3a_activation[0][0] \n", + " block3a_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_project_conv (Conv2D) (None, 57, 13, 48) 6912 block3a_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_project_bn (BatchNormal (None, 57, 13, 48) 192 block3a_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_expand_conv (Conv2D) (None, 57, 13, 288) 13824 block3a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_expand_bn (BatchNormali (None, 57, 13, 288) 1152 block3b_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_expand_activation (Acti (None, 57, 13, 288) 0 block3b_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_dwconv (DepthwiseConv2D (None, 57, 13, 288) 7200 block3b_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_bn (BatchNormalization) (None, 57, 13, 288) 1152 block3b_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_activation (Activation) (None, 57, 13, 288) 0 block3b_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_se_squeeze (GlobalAvera (None, 288) 0 block3b_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_se_reshape (Reshape) (None, 1, 1, 288) 0 block3b_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_se_reduce (Conv2D) (None, 1, 1, 12) 3468 block3b_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_se_expand (Conv2D) (None, 1, 1, 288) 3744 block3b_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_se_excite (Multiply) (None, 57, 13, 288) 0 block3b_activation[0][0] \n", + " block3b_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_project_conv (Conv2D) (None, 57, 13, 48) 13824 block3b_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_project_bn (BatchNormal (None, 57, 13, 48) 192 block3b_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_drop (Dropout) (None, 57, 13, 48) 0 block3b_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_add (Add) (None, 57, 13, 48) 0 block3b_drop[0][0] \n", + " block3a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_expand_conv (Conv2D) (None, 57, 13, 288) 13824 block3b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_expand_bn (BatchNormali (None, 57, 13, 288) 1152 block3c_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_expand_activation (Acti (None, 57, 13, 288) 0 block3c_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_dwconv (DepthwiseConv2D (None, 57, 13, 288) 7200 block3c_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_bn (BatchNormalization) (None, 57, 13, 288) 1152 block3c_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_activation (Activation) (None, 57, 13, 288) 0 block3c_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_se_squeeze (GlobalAvera (None, 288) 0 block3c_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_se_reshape (Reshape) (None, 1, 1, 288) 0 block3c_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_se_reduce (Conv2D) (None, 1, 1, 12) 3468 block3c_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_se_expand (Conv2D) (None, 1, 1, 288) 3744 block3c_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_se_excite (Multiply) (None, 57, 13, 288) 0 block3c_activation[0][0] \n", + " block3c_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_project_conv (Conv2D) (None, 57, 13, 48) 13824 block3c_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_project_bn (BatchNormal (None, 57, 13, 48) 192 block3c_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_drop (Dropout) (None, 57, 13, 48) 0 block3c_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_add (Add) (None, 57, 13, 48) 0 block3c_drop[0][0] \n", + " block3b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_expand_conv (Conv2D) (None, 57, 13, 288) 13824 block3c_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_expand_bn (BatchNormali (None, 57, 13, 288) 1152 block4a_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_expand_activation (Acti (None, 57, 13, 288) 0 block4a_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_dwconv_pad (ZeroPadding (None, 59, 15, 288) 0 block4a_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_dwconv (DepthwiseConv2D (None, 29, 7, 288) 2592 block4a_dwconv_pad[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_bn (BatchNormalization) (None, 29, 7, 288) 1152 block4a_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_activation (Activation) (None, 29, 7, 288) 0 block4a_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_se_squeeze (GlobalAvera (None, 288) 0 block4a_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_se_reshape (Reshape) (None, 1, 1, 288) 0 block4a_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_se_reduce (Conv2D) (None, 1, 1, 12) 3468 block4a_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_se_expand (Conv2D) (None, 1, 1, 288) 3744 block4a_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_se_excite (Multiply) (None, 29, 7, 288) 0 block4a_activation[0][0] \n", + " block4a_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_project_conv (Conv2D) (None, 29, 7, 88) 25344 block4a_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_project_bn (BatchNormal (None, 29, 7, 88) 352 block4a_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_expand_conv (Conv2D) (None, 29, 7, 528) 46464 block4a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_expand_bn (BatchNormali (None, 29, 7, 528) 2112 block4b_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_expand_activation (Acti (None, 29, 7, 528) 0 block4b_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_dwconv (DepthwiseConv2D (None, 29, 7, 528) 4752 block4b_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_bn (BatchNormalization) (None, 29, 7, 528) 2112 block4b_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_activation (Activation) (None, 29, 7, 528) 0 block4b_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_se_squeeze (GlobalAvera (None, 528) 0 block4b_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_se_reshape (Reshape) (None, 1, 1, 528) 0 block4b_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_se_reduce (Conv2D) (None, 1, 1, 22) 11638 block4b_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_se_expand (Conv2D) (None, 1, 1, 528) 12144 block4b_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_se_excite (Multiply) (None, 29, 7, 528) 0 block4b_activation[0][0] \n", + " block4b_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_project_conv (Conv2D) (None, 29, 7, 88) 46464 block4b_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_project_bn (BatchNormal (None, 29, 7, 88) 352 block4b_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_drop (Dropout) (None, 29, 7, 88) 0 block4b_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_add (Add) (None, 29, 7, 88) 0 block4b_drop[0][0] \n", + " block4a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_expand_conv (Conv2D) (None, 29, 7, 528) 46464 block4b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_expand_bn (BatchNormali (None, 29, 7, 528) 2112 block4c_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_expand_activation (Acti (None, 29, 7, 528) 0 block4c_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_dwconv (DepthwiseConv2D (None, 29, 7, 528) 4752 block4c_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_bn (BatchNormalization) (None, 29, 7, 528) 2112 block4c_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_activation (Activation) (None, 29, 7, 528) 0 block4c_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_se_squeeze (GlobalAvera (None, 528) 0 block4c_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_se_reshape (Reshape) (None, 1, 1, 528) 0 block4c_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_se_reduce (Conv2D) (None, 1, 1, 22) 11638 block4c_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_se_expand (Conv2D) (None, 1, 1, 528) 12144 block4c_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_se_excite (Multiply) (None, 29, 7, 528) 0 block4c_activation[0][0] \n", + " block4c_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_project_conv (Conv2D) (None, 29, 7, 88) 46464 block4c_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_project_bn (BatchNormal (None, 29, 7, 88) 352 block4c_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_drop (Dropout) (None, 29, 7, 88) 0 block4c_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_add (Add) (None, 29, 7, 88) 0 block4c_drop[0][0] \n", + " block4b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_expand_conv (Conv2D) (None, 29, 7, 528) 46464 block4c_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_expand_bn (BatchNormali (None, 29, 7, 528) 2112 block4d_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_expand_activation (Acti (None, 29, 7, 528) 0 block4d_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_dwconv (DepthwiseConv2D (None, 29, 7, 528) 4752 block4d_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_bn (BatchNormalization) (None, 29, 7, 528) 2112 block4d_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_activation (Activation) (None, 29, 7, 528) 0 block4d_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_se_squeeze (GlobalAvera (None, 528) 0 block4d_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_se_reshape (Reshape) (None, 1, 1, 528) 0 block4d_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_se_reduce (Conv2D) (None, 1, 1, 22) 11638 block4d_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_se_expand (Conv2D) (None, 1, 1, 528) 12144 block4d_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_se_excite (Multiply) (None, 29, 7, 528) 0 block4d_activation[0][0] \n", + " block4d_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_project_conv (Conv2D) (None, 29, 7, 88) 46464 block4d_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_project_bn (BatchNormal (None, 29, 7, 88) 352 block4d_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_drop (Dropout) (None, 29, 7, 88) 0 block4d_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_add (Add) (None, 29, 7, 88) 0 block4d_drop[0][0] \n", + " block4c_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_expand_conv (Conv2D) (None, 29, 7, 528) 46464 block4d_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_expand_bn (BatchNormali (None, 29, 7, 528) 2112 block5a_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_expand_activation (Acti (None, 29, 7, 528) 0 block5a_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_dwconv (DepthwiseConv2D (None, 29, 7, 528) 13200 block5a_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_bn (BatchNormalization) (None, 29, 7, 528) 2112 block5a_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_activation (Activation) (None, 29, 7, 528) 0 block5a_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_se_squeeze (GlobalAvera (None, 528) 0 block5a_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_se_reshape (Reshape) (None, 1, 1, 528) 0 block5a_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_se_reduce (Conv2D) (None, 1, 1, 22) 11638 block5a_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_se_expand (Conv2D) (None, 1, 1, 528) 12144 block5a_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_se_excite (Multiply) (None, 29, 7, 528) 0 block5a_activation[0][0] \n", + " block5a_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_project_conv (Conv2D) (None, 29, 7, 120) 63360 block5a_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_project_bn (BatchNormal (None, 29, 7, 120) 480 block5a_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_expand_conv (Conv2D) (None, 29, 7, 720) 86400 block5a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_expand_bn (BatchNormali (None, 29, 7, 720) 2880 block5b_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_expand_activation (Acti (None, 29, 7, 720) 0 block5b_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_dwconv (DepthwiseConv2D (None, 29, 7, 720) 18000 block5b_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_bn (BatchNormalization) (None, 29, 7, 720) 2880 block5b_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_activation (Activation) (None, 29, 7, 720) 0 block5b_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_se_squeeze (GlobalAvera (None, 720) 0 block5b_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_se_reshape (Reshape) (None, 1, 1, 720) 0 block5b_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_se_reduce (Conv2D) (None, 1, 1, 30) 21630 block5b_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_se_expand (Conv2D) (None, 1, 1, 720) 22320 block5b_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_se_excite (Multiply) (None, 29, 7, 720) 0 block5b_activation[0][0] \n", + " block5b_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_project_conv (Conv2D) (None, 29, 7, 120) 86400 block5b_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_project_bn (BatchNormal (None, 29, 7, 120) 480 block5b_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_drop (Dropout) (None, 29, 7, 120) 0 block5b_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_add (Add) (None, 29, 7, 120) 0 block5b_drop[0][0] \n", + " block5a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_expand_conv (Conv2D) (None, 29, 7, 720) 86400 block5b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_expand_bn (BatchNormali (None, 29, 7, 720) 2880 block5c_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_expand_activation (Acti (None, 29, 7, 720) 0 block5c_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_dwconv (DepthwiseConv2D (None, 29, 7, 720) 18000 block5c_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_bn (BatchNormalization) (None, 29, 7, 720) 2880 block5c_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_activation (Activation) (None, 29, 7, 720) 0 block5c_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_se_squeeze (GlobalAvera (None, 720) 0 block5c_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_se_reshape (Reshape) (None, 1, 1, 720) 0 block5c_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_se_reduce (Conv2D) (None, 1, 1, 30) 21630 block5c_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_se_expand (Conv2D) (None, 1, 1, 720) 22320 block5c_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_se_excite (Multiply) (None, 29, 7, 720) 0 block5c_activation[0][0] \n", + " block5c_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_project_conv (Conv2D) (None, 29, 7, 120) 86400 block5c_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_project_bn (BatchNormal (None, 29, 7, 120) 480 block5c_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_drop (Dropout) (None, 29, 7, 120) 0 block5c_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_add (Add) (None, 29, 7, 120) 0 block5c_drop[0][0] \n", + " block5b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_expand_conv (Conv2D) (None, 29, 7, 720) 86400 block5c_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_expand_bn (BatchNormali (None, 29, 7, 720) 2880 block5d_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_expand_activation (Acti (None, 29, 7, 720) 0 block5d_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_dwconv (DepthwiseConv2D (None, 29, 7, 720) 18000 block5d_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_bn (BatchNormalization) (None, 29, 7, 720) 2880 block5d_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_activation (Activation) (None, 29, 7, 720) 0 block5d_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_se_squeeze (GlobalAvera (None, 720) 0 block5d_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_se_reshape (Reshape) (None, 1, 1, 720) 0 block5d_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_se_reduce (Conv2D) (None, 1, 1, 30) 21630 block5d_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_se_expand (Conv2D) (None, 1, 1, 720) 22320 block5d_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_se_excite (Multiply) (None, 29, 7, 720) 0 block5d_activation[0][0] \n", + " block5d_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_project_conv (Conv2D) (None, 29, 7, 120) 86400 block5d_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_project_bn (BatchNormal (None, 29, 7, 120) 480 block5d_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_drop (Dropout) (None, 29, 7, 120) 0 block5d_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_add (Add) (None, 29, 7, 120) 0 block5d_drop[0][0] \n", + " block5c_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_expand_conv (Conv2D) (None, 29, 7, 720) 86400 block5d_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_expand_bn (BatchNormali (None, 29, 7, 720) 2880 block6a_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_expand_activation (Acti (None, 29, 7, 720) 0 block6a_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_dwconv_pad (ZeroPadding (None, 33, 11, 720) 0 block6a_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_dwconv (DepthwiseConv2D (None, 15, 4, 720) 18000 block6a_dwconv_pad[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_bn (BatchNormalization) (None, 15, 4, 720) 2880 block6a_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_activation (Activation) (None, 15, 4, 720) 0 block6a_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_se_squeeze (GlobalAvera (None, 720) 0 block6a_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_se_reshape (Reshape) (None, 1, 1, 720) 0 block6a_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_se_reduce (Conv2D) (None, 1, 1, 30) 21630 block6a_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_se_expand (Conv2D) (None, 1, 1, 720) 22320 block6a_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_se_excite (Multiply) (None, 15, 4, 720) 0 block6a_activation[0][0] \n", + " block6a_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_project_conv (Conv2D) (None, 15, 4, 208) 149760 block6a_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_project_bn (BatchNormal (None, 15, 4, 208) 832 block6a_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_expand_conv (Conv2D) (None, 15, 4, 1248) 259584 block6a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_expand_bn (BatchNormali (None, 15, 4, 1248) 4992 block6b_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_expand_activation (Acti (None, 15, 4, 1248) 0 block6b_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_dwconv (DepthwiseConv2D (None, 15, 4, 1248) 31200 block6b_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_bn (BatchNormalization) (None, 15, 4, 1248) 4992 block6b_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_activation (Activation) (None, 15, 4, 1248) 0 block6b_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_se_squeeze (GlobalAvera (None, 1248) 0 block6b_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_se_reshape (Reshape) (None, 1, 1, 1248) 0 block6b_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_se_reduce (Conv2D) (None, 1, 1, 52) 64948 block6b_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_se_expand (Conv2D) (None, 1, 1, 1248) 66144 block6b_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_se_excite (Multiply) (None, 15, 4, 1248) 0 block6b_activation[0][0] \n", + " block6b_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_project_conv (Conv2D) (None, 15, 4, 208) 259584 block6b_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_project_bn (BatchNormal (None, 15, 4, 208) 832 block6b_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_drop (Dropout) (None, 15, 4, 208) 0 block6b_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_add (Add) (None, 15, 4, 208) 0 block6b_drop[0][0] \n", + " block6a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_expand_conv (Conv2D) (None, 15, 4, 1248) 259584 block6b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_expand_bn (BatchNormali (None, 15, 4, 1248) 4992 block6c_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_expand_activation (Acti (None, 15, 4, 1248) 0 block6c_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_dwconv (DepthwiseConv2D (None, 15, 4, 1248) 31200 block6c_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_bn (BatchNormalization) (None, 15, 4, 1248) 4992 block6c_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_activation (Activation) (None, 15, 4, 1248) 0 block6c_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_se_squeeze (GlobalAvera (None, 1248) 0 block6c_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_se_reshape (Reshape) (None, 1, 1, 1248) 0 block6c_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_se_reduce (Conv2D) (None, 1, 1, 52) 64948 block6c_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_se_expand (Conv2D) (None, 1, 1, 1248) 66144 block6c_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_se_excite (Multiply) (None, 15, 4, 1248) 0 block6c_activation[0][0] \n", + " block6c_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_project_conv (Conv2D) (None, 15, 4, 208) 259584 block6c_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_project_bn (BatchNormal (None, 15, 4, 208) 832 block6c_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_drop (Dropout) (None, 15, 4, 208) 0 block6c_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_add (Add) (None, 15, 4, 208) 0 block6c_drop[0][0] \n", + " block6b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_expand_conv (Conv2D) (None, 15, 4, 1248) 259584 block6c_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_expand_bn (BatchNormali (None, 15, 4, 1248) 4992 block6d_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_expand_activation (Acti (None, 15, 4, 1248) 0 block6d_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_dwconv (DepthwiseConv2D (None, 15, 4, 1248) 31200 block6d_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_bn (BatchNormalization) (None, 15, 4, 1248) 4992 block6d_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_activation (Activation) (None, 15, 4, 1248) 0 block6d_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_se_squeeze (GlobalAvera (None, 1248) 0 block6d_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_se_reshape (Reshape) (None, 1, 1, 1248) 0 block6d_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_se_reduce (Conv2D) (None, 1, 1, 52) 64948 block6d_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_se_expand (Conv2D) (None, 1, 1, 1248) 66144 block6d_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_se_excite (Multiply) (None, 15, 4, 1248) 0 block6d_activation[0][0] \n", + " block6d_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_project_conv (Conv2D) (None, 15, 4, 208) 259584 block6d_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_project_bn (BatchNormal (None, 15, 4, 208) 832 block6d_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_drop (Dropout) (None, 15, 4, 208) 0 block6d_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_add (Add) (None, 15, 4, 208) 0 block6d_drop[0][0] \n", + " block6c_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_expand_conv (Conv2D) (None, 15, 4, 1248) 259584 block6d_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_expand_bn (BatchNormali (None, 15, 4, 1248) 4992 block6e_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_expand_activation (Acti (None, 15, 4, 1248) 0 block6e_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_dwconv (DepthwiseConv2D (None, 15, 4, 1248) 31200 block6e_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_bn (BatchNormalization) (None, 15, 4, 1248) 4992 block6e_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_activation (Activation) (None, 15, 4, 1248) 0 block6e_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_se_squeeze (GlobalAvera (None, 1248) 0 block6e_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_se_reshape (Reshape) (None, 1, 1, 1248) 0 block6e_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_se_reduce (Conv2D) (None, 1, 1, 52) 64948 block6e_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_se_expand (Conv2D) (None, 1, 1, 1248) 66144 block6e_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_se_excite (Multiply) (None, 15, 4, 1248) 0 block6e_activation[0][0] \n", + " block6e_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_project_conv (Conv2D) (None, 15, 4, 208) 259584 block6e_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_project_bn (BatchNormal (None, 15, 4, 208) 832 block6e_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_drop (Dropout) (None, 15, 4, 208) 0 block6e_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_add (Add) (None, 15, 4, 208) 0 block6e_drop[0][0] \n", + " block6d_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_expand_conv (Conv2D) (None, 15, 4, 1248) 259584 block6e_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_expand_bn (BatchNormali (None, 15, 4, 1248) 4992 block7a_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_expand_activation (Acti (None, 15, 4, 1248) 0 block7a_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_dwconv (DepthwiseConv2D (None, 15, 4, 1248) 11232 block7a_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_bn (BatchNormalization) (None, 15, 4, 1248) 4992 block7a_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_activation (Activation) (None, 15, 4, 1248) 0 block7a_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_se_squeeze (GlobalAvera (None, 1248) 0 block7a_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_se_reshape (Reshape) (None, 1, 1, 1248) 0 block7a_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_se_reduce (Conv2D) (None, 1, 1, 52) 64948 block7a_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_se_expand (Conv2D) (None, 1, 1, 1248) 66144 block7a_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_se_excite (Multiply) (None, 15, 4, 1248) 0 block7a_activation[0][0] \n", + " block7a_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_project_conv (Conv2D) (None, 15, 4, 352) 439296 block7a_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_project_bn (BatchNormal (None, 15, 4, 352) 1408 block7a_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_expand_conv (Conv2D) (None, 15, 4, 2112) 743424 block7a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_expand_bn (BatchNormali (None, 15, 4, 2112) 8448 block7b_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_expand_activation (Acti (None, 15, 4, 2112) 0 block7b_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_dwconv (DepthwiseConv2D (None, 15, 4, 2112) 19008 block7b_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_bn (BatchNormalization) (None, 15, 4, 2112) 8448 block7b_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_activation (Activation) (None, 15, 4, 2112) 0 block7b_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_se_squeeze (GlobalAvera (None, 2112) 0 block7b_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_se_reshape (Reshape) (None, 1, 1, 2112) 0 block7b_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_se_reduce (Conv2D) (None, 1, 1, 88) 185944 block7b_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_se_expand (Conv2D) (None, 1, 1, 2112) 187968 block7b_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_se_excite (Multiply) (None, 15, 4, 2112) 0 block7b_activation[0][0] \n", + " block7b_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_project_conv (Conv2D) (None, 15, 4, 352) 743424 block7b_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_project_bn (BatchNormal (None, 15, 4, 352) 1408 block7b_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_drop (Dropout) (None, 15, 4, 352) 0 block7b_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_add (Add) (None, 15, 4, 352) 0 block7b_drop[0][0] \n", + " block7a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "top_conv (Conv2D) (None, 15, 4, 1408) 495616 block7b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "top_bn (BatchNormalization) (None, 15, 4, 1408) 5632 top_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "top_activation (Activation) (None, 15, 4, 1408) 0 top_bn[0][0] \n", + "==================================================================================================\n", + "Total params: 7,768,569\n", + "Trainable params: 0\n", + "Non-trainable params: 7,768,569\n", + "__________________________________________________________________________________________________\n" + ] + } + ], + "source": [ + "model.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Add custom Dense Layers" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf\n", + "from tensorflow.keras import layers, Model\n", + "\n", + "x = model.output\n", + "\n", + "# Flatten layer\n", + "flatten = layers.Flatten()\n", + "\n", + "# Create output layer with 20 nodes and sigmoid activation to handle multiple classes and labels\n", + "bits_pred = layers.Dense(20, activation = 'sigmoid', name='bits_pred')\n", + "\n", + "output = bits_pred(flatten(x))\n", + "\n", + "# Create an instance of a Model\n", + "model_final = Model(model.input, output)\n", + "\n", + "# compile\n", + "model_final.compile(loss = 'binary_crossentropy',\n", + " optimizer='adam',\n", + " metrics = [tf.keras.metrics.BinaryAccuracy(threshold=0.5)])" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: \"functional_1\"\n", + "__________________________________________________________________________________________________\n", + "Layer (type) Output Shape Param # Connected to \n", + "==================================================================================================\n", + "input_1 (InputLayer) [(None, 450, 100, 3) 0 \n", + "__________________________________________________________________________________________________\n", + "rescaling (Rescaling) (None, 450, 100, 3) 0 input_1[0][0] \n", + "__________________________________________________________________________________________________\n", + "normalization (Normalization) (None, 450, 100, 3) 7 rescaling[0][0] \n", + "__________________________________________________________________________________________________\n", + "stem_conv_pad (ZeroPadding2D) (None, 451, 101, 3) 0 normalization[0][0] \n", + "__________________________________________________________________________________________________\n", + "stem_conv (Conv2D) (None, 225, 50, 32) 864 stem_conv_pad[0][0] \n", + "__________________________________________________________________________________________________\n", + "stem_bn (BatchNormalization) (None, 225, 50, 32) 128 stem_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "stem_activation (Activation) (None, 225, 50, 32) 0 stem_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_dwconv (DepthwiseConv2D (None, 225, 50, 32) 288 stem_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_bn (BatchNormalization) (None, 225, 50, 32) 128 block1a_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_activation (Activation) (None, 225, 50, 32) 0 block1a_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_se_squeeze (GlobalAvera (None, 32) 0 block1a_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_se_reshape (Reshape) (None, 1, 1, 32) 0 block1a_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_se_reduce (Conv2D) (None, 1, 1, 8) 264 block1a_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_se_expand (Conv2D) (None, 1, 1, 32) 288 block1a_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_se_excite (Multiply) (None, 225, 50, 32) 0 block1a_activation[0][0] \n", + " block1a_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_project_conv (Conv2D) (None, 225, 50, 16) 512 block1a_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1a_project_bn (BatchNormal (None, 225, 50, 16) 64 block1a_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_dwconv (DepthwiseConv2D (None, 225, 50, 16) 144 block1a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_bn (BatchNormalization) (None, 225, 50, 16) 64 block1b_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_activation (Activation) (None, 225, 50, 16) 0 block1b_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_se_squeeze (GlobalAvera (None, 16) 0 block1b_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_se_reshape (Reshape) (None, 1, 1, 16) 0 block1b_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_se_reduce (Conv2D) (None, 1, 1, 4) 68 block1b_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_se_expand (Conv2D) (None, 1, 1, 16) 80 block1b_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_se_excite (Multiply) (None, 225, 50, 16) 0 block1b_activation[0][0] \n", + " block1b_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_project_conv (Conv2D) (None, 225, 50, 16) 256 block1b_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_project_bn (BatchNormal (None, 225, 50, 16) 64 block1b_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_drop (Dropout) (None, 225, 50, 16) 0 block1b_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block1b_add (Add) (None, 225, 50, 16) 0 block1b_drop[0][0] \n", + " block1a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_expand_conv (Conv2D) (None, 225, 50, 96) 1536 block1b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_expand_bn (BatchNormali (None, 225, 50, 96) 384 block2a_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_expand_activation (Acti (None, 225, 50, 96) 0 block2a_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_dwconv_pad (ZeroPadding (None, 227, 51, 96) 0 block2a_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_dwconv (DepthwiseConv2D (None, 113, 25, 96) 864 block2a_dwconv_pad[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_bn (BatchNormalization) (None, 113, 25, 96) 384 block2a_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_activation (Activation) (None, 113, 25, 96) 0 block2a_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_se_squeeze (GlobalAvera (None, 96) 0 block2a_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_se_reshape (Reshape) (None, 1, 1, 96) 0 block2a_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_se_reduce (Conv2D) (None, 1, 1, 4) 388 block2a_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_se_expand (Conv2D) (None, 1, 1, 96) 480 block2a_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_se_excite (Multiply) (None, 113, 25, 96) 0 block2a_activation[0][0] \n", + " block2a_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_project_conv (Conv2D) (None, 113, 25, 24) 2304 block2a_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2a_project_bn (BatchNormal (None, 113, 25, 24) 96 block2a_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_expand_conv (Conv2D) (None, 113, 25, 144) 3456 block2a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_expand_bn (BatchNormali (None, 113, 25, 144) 576 block2b_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_expand_activation (Acti (None, 113, 25, 144) 0 block2b_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_dwconv (DepthwiseConv2D (None, 113, 25, 144) 1296 block2b_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_bn (BatchNormalization) (None, 113, 25, 144) 576 block2b_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_activation (Activation) (None, 113, 25, 144) 0 block2b_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_se_squeeze (GlobalAvera (None, 144) 0 block2b_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_se_reshape (Reshape) (None, 1, 1, 144) 0 block2b_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_se_reduce (Conv2D) (None, 1, 1, 6) 870 block2b_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_se_expand (Conv2D) (None, 1, 1, 144) 1008 block2b_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_se_excite (Multiply) (None, 113, 25, 144) 0 block2b_activation[0][0] \n", + " block2b_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_project_conv (Conv2D) (None, 113, 25, 24) 3456 block2b_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_project_bn (BatchNormal (None, 113, 25, 24) 96 block2b_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_drop (Dropout) (None, 113, 25, 24) 0 block2b_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2b_add (Add) (None, 113, 25, 24) 0 block2b_drop[0][0] \n", + " block2a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_expand_conv (Conv2D) (None, 113, 25, 144) 3456 block2b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_expand_bn (BatchNormali (None, 113, 25, 144) 576 block2c_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_expand_activation (Acti (None, 113, 25, 144) 0 block2c_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_dwconv (DepthwiseConv2D (None, 113, 25, 144) 1296 block2c_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_bn (BatchNormalization) (None, 113, 25, 144) 576 block2c_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_activation (Activation) (None, 113, 25, 144) 0 block2c_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_se_squeeze (GlobalAvera (None, 144) 0 block2c_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_se_reshape (Reshape) (None, 1, 1, 144) 0 block2c_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_se_reduce (Conv2D) (None, 1, 1, 6) 870 block2c_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_se_expand (Conv2D) (None, 1, 1, 144) 1008 block2c_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_se_excite (Multiply) (None, 113, 25, 144) 0 block2c_activation[0][0] \n", + " block2c_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_project_conv (Conv2D) (None, 113, 25, 24) 3456 block2c_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_project_bn (BatchNormal (None, 113, 25, 24) 96 block2c_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_drop (Dropout) (None, 113, 25, 24) 0 block2c_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block2c_add (Add) (None, 113, 25, 24) 0 block2c_drop[0][0] \n", + " block2b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_expand_conv (Conv2D) (None, 113, 25, 144) 3456 block2c_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_expand_bn (BatchNormali (None, 113, 25, 144) 576 block3a_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_expand_activation (Acti (None, 113, 25, 144) 0 block3a_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_dwconv_pad (ZeroPadding (None, 117, 29, 144) 0 block3a_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_dwconv (DepthwiseConv2D (None, 57, 13, 144) 3600 block3a_dwconv_pad[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_bn (BatchNormalization) (None, 57, 13, 144) 576 block3a_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_activation (Activation) (None, 57, 13, 144) 0 block3a_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_se_squeeze (GlobalAvera (None, 144) 0 block3a_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_se_reshape (Reshape) (None, 1, 1, 144) 0 block3a_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_se_reduce (Conv2D) (None, 1, 1, 6) 870 block3a_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_se_expand (Conv2D) (None, 1, 1, 144) 1008 block3a_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_se_excite (Multiply) (None, 57, 13, 144) 0 block3a_activation[0][0] \n", + " block3a_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_project_conv (Conv2D) (None, 57, 13, 48) 6912 block3a_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3a_project_bn (BatchNormal (None, 57, 13, 48) 192 block3a_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_expand_conv (Conv2D) (None, 57, 13, 288) 13824 block3a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_expand_bn (BatchNormali (None, 57, 13, 288) 1152 block3b_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_expand_activation (Acti (None, 57, 13, 288) 0 block3b_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_dwconv (DepthwiseConv2D (None, 57, 13, 288) 7200 block3b_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_bn (BatchNormalization) (None, 57, 13, 288) 1152 block3b_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_activation (Activation) (None, 57, 13, 288) 0 block3b_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_se_squeeze (GlobalAvera (None, 288) 0 block3b_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_se_reshape (Reshape) (None, 1, 1, 288) 0 block3b_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_se_reduce (Conv2D) (None, 1, 1, 12) 3468 block3b_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_se_expand (Conv2D) (None, 1, 1, 288) 3744 block3b_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_se_excite (Multiply) (None, 57, 13, 288) 0 block3b_activation[0][0] \n", + " block3b_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_project_conv (Conv2D) (None, 57, 13, 48) 13824 block3b_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_project_bn (BatchNormal (None, 57, 13, 48) 192 block3b_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_drop (Dropout) (None, 57, 13, 48) 0 block3b_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3b_add (Add) (None, 57, 13, 48) 0 block3b_drop[0][0] \n", + " block3a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_expand_conv (Conv2D) (None, 57, 13, 288) 13824 block3b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_expand_bn (BatchNormali (None, 57, 13, 288) 1152 block3c_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_expand_activation (Acti (None, 57, 13, 288) 0 block3c_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_dwconv (DepthwiseConv2D (None, 57, 13, 288) 7200 block3c_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_bn (BatchNormalization) (None, 57, 13, 288) 1152 block3c_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_activation (Activation) (None, 57, 13, 288) 0 block3c_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_se_squeeze (GlobalAvera (None, 288) 0 block3c_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_se_reshape (Reshape) (None, 1, 1, 288) 0 block3c_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_se_reduce (Conv2D) (None, 1, 1, 12) 3468 block3c_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_se_expand (Conv2D) (None, 1, 1, 288) 3744 block3c_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_se_excite (Multiply) (None, 57, 13, 288) 0 block3c_activation[0][0] \n", + " block3c_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_project_conv (Conv2D) (None, 57, 13, 48) 13824 block3c_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_project_bn (BatchNormal (None, 57, 13, 48) 192 block3c_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_drop (Dropout) (None, 57, 13, 48) 0 block3c_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block3c_add (Add) (None, 57, 13, 48) 0 block3c_drop[0][0] \n", + " block3b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_expand_conv (Conv2D) (None, 57, 13, 288) 13824 block3c_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_expand_bn (BatchNormali (None, 57, 13, 288) 1152 block4a_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_expand_activation (Acti (None, 57, 13, 288) 0 block4a_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_dwconv_pad (ZeroPadding (None, 59, 15, 288) 0 block4a_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_dwconv (DepthwiseConv2D (None, 29, 7, 288) 2592 block4a_dwconv_pad[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_bn (BatchNormalization) (None, 29, 7, 288) 1152 block4a_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_activation (Activation) (None, 29, 7, 288) 0 block4a_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_se_squeeze (GlobalAvera (None, 288) 0 block4a_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_se_reshape (Reshape) (None, 1, 1, 288) 0 block4a_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_se_reduce (Conv2D) (None, 1, 1, 12) 3468 block4a_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_se_expand (Conv2D) (None, 1, 1, 288) 3744 block4a_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_se_excite (Multiply) (None, 29, 7, 288) 0 block4a_activation[0][0] \n", + " block4a_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_project_conv (Conv2D) (None, 29, 7, 88) 25344 block4a_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4a_project_bn (BatchNormal (None, 29, 7, 88) 352 block4a_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_expand_conv (Conv2D) (None, 29, 7, 528) 46464 block4a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_expand_bn (BatchNormali (None, 29, 7, 528) 2112 block4b_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_expand_activation (Acti (None, 29, 7, 528) 0 block4b_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_dwconv (DepthwiseConv2D (None, 29, 7, 528) 4752 block4b_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_bn (BatchNormalization) (None, 29, 7, 528) 2112 block4b_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_activation (Activation) (None, 29, 7, 528) 0 block4b_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_se_squeeze (GlobalAvera (None, 528) 0 block4b_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_se_reshape (Reshape) (None, 1, 1, 528) 0 block4b_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_se_reduce (Conv2D) (None, 1, 1, 22) 11638 block4b_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_se_expand (Conv2D) (None, 1, 1, 528) 12144 block4b_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_se_excite (Multiply) (None, 29, 7, 528) 0 block4b_activation[0][0] \n", + " block4b_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_project_conv (Conv2D) (None, 29, 7, 88) 46464 block4b_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_project_bn (BatchNormal (None, 29, 7, 88) 352 block4b_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_drop (Dropout) (None, 29, 7, 88) 0 block4b_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4b_add (Add) (None, 29, 7, 88) 0 block4b_drop[0][0] \n", + " block4a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_expand_conv (Conv2D) (None, 29, 7, 528) 46464 block4b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_expand_bn (BatchNormali (None, 29, 7, 528) 2112 block4c_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_expand_activation (Acti (None, 29, 7, 528) 0 block4c_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_dwconv (DepthwiseConv2D (None, 29, 7, 528) 4752 block4c_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_bn (BatchNormalization) (None, 29, 7, 528) 2112 block4c_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_activation (Activation) (None, 29, 7, 528) 0 block4c_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_se_squeeze (GlobalAvera (None, 528) 0 block4c_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_se_reshape (Reshape) (None, 1, 1, 528) 0 block4c_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_se_reduce (Conv2D) (None, 1, 1, 22) 11638 block4c_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_se_expand (Conv2D) (None, 1, 1, 528) 12144 block4c_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_se_excite (Multiply) (None, 29, 7, 528) 0 block4c_activation[0][0] \n", + " block4c_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_project_conv (Conv2D) (None, 29, 7, 88) 46464 block4c_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_project_bn (BatchNormal (None, 29, 7, 88) 352 block4c_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_drop (Dropout) (None, 29, 7, 88) 0 block4c_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4c_add (Add) (None, 29, 7, 88) 0 block4c_drop[0][0] \n", + " block4b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_expand_conv (Conv2D) (None, 29, 7, 528) 46464 block4c_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_expand_bn (BatchNormali (None, 29, 7, 528) 2112 block4d_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_expand_activation (Acti (None, 29, 7, 528) 0 block4d_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_dwconv (DepthwiseConv2D (None, 29, 7, 528) 4752 block4d_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_bn (BatchNormalization) (None, 29, 7, 528) 2112 block4d_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_activation (Activation) (None, 29, 7, 528) 0 block4d_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_se_squeeze (GlobalAvera (None, 528) 0 block4d_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_se_reshape (Reshape) (None, 1, 1, 528) 0 block4d_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_se_reduce (Conv2D) (None, 1, 1, 22) 11638 block4d_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_se_expand (Conv2D) (None, 1, 1, 528) 12144 block4d_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_se_excite (Multiply) (None, 29, 7, 528) 0 block4d_activation[0][0] \n", + " block4d_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_project_conv (Conv2D) (None, 29, 7, 88) 46464 block4d_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_project_bn (BatchNormal (None, 29, 7, 88) 352 block4d_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_drop (Dropout) (None, 29, 7, 88) 0 block4d_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block4d_add (Add) (None, 29, 7, 88) 0 block4d_drop[0][0] \n", + " block4c_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_expand_conv (Conv2D) (None, 29, 7, 528) 46464 block4d_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_expand_bn (BatchNormali (None, 29, 7, 528) 2112 block5a_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_expand_activation (Acti (None, 29, 7, 528) 0 block5a_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_dwconv (DepthwiseConv2D (None, 29, 7, 528) 13200 block5a_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_bn (BatchNormalization) (None, 29, 7, 528) 2112 block5a_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_activation (Activation) (None, 29, 7, 528) 0 block5a_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_se_squeeze (GlobalAvera (None, 528) 0 block5a_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_se_reshape (Reshape) (None, 1, 1, 528) 0 block5a_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_se_reduce (Conv2D) (None, 1, 1, 22) 11638 block5a_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_se_expand (Conv2D) (None, 1, 1, 528) 12144 block5a_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_se_excite (Multiply) (None, 29, 7, 528) 0 block5a_activation[0][0] \n", + " block5a_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_project_conv (Conv2D) (None, 29, 7, 120) 63360 block5a_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5a_project_bn (BatchNormal (None, 29, 7, 120) 480 block5a_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_expand_conv (Conv2D) (None, 29, 7, 720) 86400 block5a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_expand_bn (BatchNormali (None, 29, 7, 720) 2880 block5b_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_expand_activation (Acti (None, 29, 7, 720) 0 block5b_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_dwconv (DepthwiseConv2D (None, 29, 7, 720) 18000 block5b_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_bn (BatchNormalization) (None, 29, 7, 720) 2880 block5b_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_activation (Activation) (None, 29, 7, 720) 0 block5b_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_se_squeeze (GlobalAvera (None, 720) 0 block5b_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_se_reshape (Reshape) (None, 1, 1, 720) 0 block5b_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_se_reduce (Conv2D) (None, 1, 1, 30) 21630 block5b_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_se_expand (Conv2D) (None, 1, 1, 720) 22320 block5b_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_se_excite (Multiply) (None, 29, 7, 720) 0 block5b_activation[0][0] \n", + " block5b_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_project_conv (Conv2D) (None, 29, 7, 120) 86400 block5b_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_project_bn (BatchNormal (None, 29, 7, 120) 480 block5b_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_drop (Dropout) (None, 29, 7, 120) 0 block5b_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5b_add (Add) (None, 29, 7, 120) 0 block5b_drop[0][0] \n", + " block5a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_expand_conv (Conv2D) (None, 29, 7, 720) 86400 block5b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_expand_bn (BatchNormali (None, 29, 7, 720) 2880 block5c_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_expand_activation (Acti (None, 29, 7, 720) 0 block5c_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_dwconv (DepthwiseConv2D (None, 29, 7, 720) 18000 block5c_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_bn (BatchNormalization) (None, 29, 7, 720) 2880 block5c_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_activation (Activation) (None, 29, 7, 720) 0 block5c_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_se_squeeze (GlobalAvera (None, 720) 0 block5c_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_se_reshape (Reshape) (None, 1, 1, 720) 0 block5c_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_se_reduce (Conv2D) (None, 1, 1, 30) 21630 block5c_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_se_expand (Conv2D) (None, 1, 1, 720) 22320 block5c_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_se_excite (Multiply) (None, 29, 7, 720) 0 block5c_activation[0][0] \n", + " block5c_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_project_conv (Conv2D) (None, 29, 7, 120) 86400 block5c_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_project_bn (BatchNormal (None, 29, 7, 120) 480 block5c_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_drop (Dropout) (None, 29, 7, 120) 0 block5c_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5c_add (Add) (None, 29, 7, 120) 0 block5c_drop[0][0] \n", + " block5b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_expand_conv (Conv2D) (None, 29, 7, 720) 86400 block5c_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_expand_bn (BatchNormali (None, 29, 7, 720) 2880 block5d_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_expand_activation (Acti (None, 29, 7, 720) 0 block5d_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_dwconv (DepthwiseConv2D (None, 29, 7, 720) 18000 block5d_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_bn (BatchNormalization) (None, 29, 7, 720) 2880 block5d_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_activation (Activation) (None, 29, 7, 720) 0 block5d_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_se_squeeze (GlobalAvera (None, 720) 0 block5d_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_se_reshape (Reshape) (None, 1, 1, 720) 0 block5d_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_se_reduce (Conv2D) (None, 1, 1, 30) 21630 block5d_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_se_expand (Conv2D) (None, 1, 1, 720) 22320 block5d_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_se_excite (Multiply) (None, 29, 7, 720) 0 block5d_activation[0][0] \n", + " block5d_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_project_conv (Conv2D) (None, 29, 7, 120) 86400 block5d_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_project_bn (BatchNormal (None, 29, 7, 120) 480 block5d_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_drop (Dropout) (None, 29, 7, 120) 0 block5d_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block5d_add (Add) (None, 29, 7, 120) 0 block5d_drop[0][0] \n", + " block5c_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_expand_conv (Conv2D) (None, 29, 7, 720) 86400 block5d_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_expand_bn (BatchNormali (None, 29, 7, 720) 2880 block6a_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_expand_activation (Acti (None, 29, 7, 720) 0 block6a_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_dwconv_pad (ZeroPadding (None, 33, 11, 720) 0 block6a_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_dwconv (DepthwiseConv2D (None, 15, 4, 720) 18000 block6a_dwconv_pad[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_bn (BatchNormalization) (None, 15, 4, 720) 2880 block6a_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_activation (Activation) (None, 15, 4, 720) 0 block6a_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_se_squeeze (GlobalAvera (None, 720) 0 block6a_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_se_reshape (Reshape) (None, 1, 1, 720) 0 block6a_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_se_reduce (Conv2D) (None, 1, 1, 30) 21630 block6a_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_se_expand (Conv2D) (None, 1, 1, 720) 22320 block6a_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_se_excite (Multiply) (None, 15, 4, 720) 0 block6a_activation[0][0] \n", + " block6a_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_project_conv (Conv2D) (None, 15, 4, 208) 149760 block6a_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6a_project_bn (BatchNormal (None, 15, 4, 208) 832 block6a_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_expand_conv (Conv2D) (None, 15, 4, 1248) 259584 block6a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_expand_bn (BatchNormali (None, 15, 4, 1248) 4992 block6b_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_expand_activation (Acti (None, 15, 4, 1248) 0 block6b_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_dwconv (DepthwiseConv2D (None, 15, 4, 1248) 31200 block6b_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_bn (BatchNormalization) (None, 15, 4, 1248) 4992 block6b_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_activation (Activation) (None, 15, 4, 1248) 0 block6b_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_se_squeeze (GlobalAvera (None, 1248) 0 block6b_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_se_reshape (Reshape) (None, 1, 1, 1248) 0 block6b_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_se_reduce (Conv2D) (None, 1, 1, 52) 64948 block6b_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_se_expand (Conv2D) (None, 1, 1, 1248) 66144 block6b_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_se_excite (Multiply) (None, 15, 4, 1248) 0 block6b_activation[0][0] \n", + " block6b_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_project_conv (Conv2D) (None, 15, 4, 208) 259584 block6b_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_project_bn (BatchNormal (None, 15, 4, 208) 832 block6b_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_drop (Dropout) (None, 15, 4, 208) 0 block6b_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6b_add (Add) (None, 15, 4, 208) 0 block6b_drop[0][0] \n", + " block6a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_expand_conv (Conv2D) (None, 15, 4, 1248) 259584 block6b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_expand_bn (BatchNormali (None, 15, 4, 1248) 4992 block6c_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_expand_activation (Acti (None, 15, 4, 1248) 0 block6c_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_dwconv (DepthwiseConv2D (None, 15, 4, 1248) 31200 block6c_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_bn (BatchNormalization) (None, 15, 4, 1248) 4992 block6c_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_activation (Activation) (None, 15, 4, 1248) 0 block6c_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_se_squeeze (GlobalAvera (None, 1248) 0 block6c_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_se_reshape (Reshape) (None, 1, 1, 1248) 0 block6c_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_se_reduce (Conv2D) (None, 1, 1, 52) 64948 block6c_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_se_expand (Conv2D) (None, 1, 1, 1248) 66144 block6c_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_se_excite (Multiply) (None, 15, 4, 1248) 0 block6c_activation[0][0] \n", + " block6c_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_project_conv (Conv2D) (None, 15, 4, 208) 259584 block6c_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_project_bn (BatchNormal (None, 15, 4, 208) 832 block6c_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_drop (Dropout) (None, 15, 4, 208) 0 block6c_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6c_add (Add) (None, 15, 4, 208) 0 block6c_drop[0][0] \n", + " block6b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_expand_conv (Conv2D) (None, 15, 4, 1248) 259584 block6c_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_expand_bn (BatchNormali (None, 15, 4, 1248) 4992 block6d_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_expand_activation (Acti (None, 15, 4, 1248) 0 block6d_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_dwconv (DepthwiseConv2D (None, 15, 4, 1248) 31200 block6d_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_bn (BatchNormalization) (None, 15, 4, 1248) 4992 block6d_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_activation (Activation) (None, 15, 4, 1248) 0 block6d_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_se_squeeze (GlobalAvera (None, 1248) 0 block6d_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_se_reshape (Reshape) (None, 1, 1, 1248) 0 block6d_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_se_reduce (Conv2D) (None, 1, 1, 52) 64948 block6d_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_se_expand (Conv2D) (None, 1, 1, 1248) 66144 block6d_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_se_excite (Multiply) (None, 15, 4, 1248) 0 block6d_activation[0][0] \n", + " block6d_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_project_conv (Conv2D) (None, 15, 4, 208) 259584 block6d_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_project_bn (BatchNormal (None, 15, 4, 208) 832 block6d_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_drop (Dropout) (None, 15, 4, 208) 0 block6d_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6d_add (Add) (None, 15, 4, 208) 0 block6d_drop[0][0] \n", + " block6c_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_expand_conv (Conv2D) (None, 15, 4, 1248) 259584 block6d_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_expand_bn (BatchNormali (None, 15, 4, 1248) 4992 block6e_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_expand_activation (Acti (None, 15, 4, 1248) 0 block6e_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_dwconv (DepthwiseConv2D (None, 15, 4, 1248) 31200 block6e_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_bn (BatchNormalization) (None, 15, 4, 1248) 4992 block6e_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_activation (Activation) (None, 15, 4, 1248) 0 block6e_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_se_squeeze (GlobalAvera (None, 1248) 0 block6e_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_se_reshape (Reshape) (None, 1, 1, 1248) 0 block6e_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_se_reduce (Conv2D) (None, 1, 1, 52) 64948 block6e_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_se_expand (Conv2D) (None, 1, 1, 1248) 66144 block6e_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_se_excite (Multiply) (None, 15, 4, 1248) 0 block6e_activation[0][0] \n", + " block6e_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_project_conv (Conv2D) (None, 15, 4, 208) 259584 block6e_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_project_bn (BatchNormal (None, 15, 4, 208) 832 block6e_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_drop (Dropout) (None, 15, 4, 208) 0 block6e_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block6e_add (Add) (None, 15, 4, 208) 0 block6e_drop[0][0] \n", + " block6d_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_expand_conv (Conv2D) (None, 15, 4, 1248) 259584 block6e_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_expand_bn (BatchNormali (None, 15, 4, 1248) 4992 block7a_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_expand_activation (Acti (None, 15, 4, 1248) 0 block7a_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_dwconv (DepthwiseConv2D (None, 15, 4, 1248) 11232 block7a_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_bn (BatchNormalization) (None, 15, 4, 1248) 4992 block7a_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_activation (Activation) (None, 15, 4, 1248) 0 block7a_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_se_squeeze (GlobalAvera (None, 1248) 0 block7a_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_se_reshape (Reshape) (None, 1, 1, 1248) 0 block7a_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_se_reduce (Conv2D) (None, 1, 1, 52) 64948 block7a_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_se_expand (Conv2D) (None, 1, 1, 1248) 66144 block7a_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_se_excite (Multiply) (None, 15, 4, 1248) 0 block7a_activation[0][0] \n", + " block7a_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_project_conv (Conv2D) (None, 15, 4, 352) 439296 block7a_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7a_project_bn (BatchNormal (None, 15, 4, 352) 1408 block7a_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_expand_conv (Conv2D) (None, 15, 4, 2112) 743424 block7a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_expand_bn (BatchNormali (None, 15, 4, 2112) 8448 block7b_expand_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_expand_activation (Acti (None, 15, 4, 2112) 0 block7b_expand_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_dwconv (DepthwiseConv2D (None, 15, 4, 2112) 19008 block7b_expand_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_bn (BatchNormalization) (None, 15, 4, 2112) 8448 block7b_dwconv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_activation (Activation) (None, 15, 4, 2112) 0 block7b_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_se_squeeze (GlobalAvera (None, 2112) 0 block7b_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_se_reshape (Reshape) (None, 1, 1, 2112) 0 block7b_se_squeeze[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_se_reduce (Conv2D) (None, 1, 1, 88) 185944 block7b_se_reshape[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_se_expand (Conv2D) (None, 1, 1, 2112) 187968 block7b_se_reduce[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_se_excite (Multiply) (None, 15, 4, 2112) 0 block7b_activation[0][0] \n", + " block7b_se_expand[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_project_conv (Conv2D) (None, 15, 4, 352) 743424 block7b_se_excite[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_project_bn (BatchNormal (None, 15, 4, 352) 1408 block7b_project_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_drop (Dropout) (None, 15, 4, 352) 0 block7b_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "block7b_add (Add) (None, 15, 4, 352) 0 block7b_drop[0][0] \n", + " block7a_project_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "top_conv (Conv2D) (None, 15, 4, 1408) 495616 block7b_add[0][0] \n", + "__________________________________________________________________________________________________\n", + "top_bn (BatchNormalization) (None, 15, 4, 1408) 5632 top_conv[0][0] \n", + "__________________________________________________________________________________________________\n", + "top_activation (Activation) (None, 15, 4, 1408) 0 top_bn[0][0] \n", + "__________________________________________________________________________________________________\n", + "flatten (Flatten) (None, 84480) 0 top_activation[0][0] \n", + "__________________________________________________________________________________________________\n", + "bits_pred (Dense) (None, 20) 1689620 flatten[0][0] \n", + "==================================================================================================\n", + "Total params: 9,458,189\n", + "Trainable params: 1,689,620\n", + "Non-trainable params: 7,768,569\n", + "__________________________________________________________________________________________________\n" + ] + } + ], + "source": [ + "model_final.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define early stopping\n", + "\n", + "I want the model to stop, only when the model started overfitting" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "from tensorflow.keras.callbacks import EarlyStopping\n", + "\n", + "early_stopping = EarlyStopping(monitor='val_loss', \n", + " min_delta = 0, \n", + " patience = 5, \n", + " verbose = 1,\n", + " mode ='min', \n", + " restore_best_weights = True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train the model" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/9999\n", + "28/28 - 47s - loss: 1.9921 - binary_accuracy: 0.6081 - val_loss: 0.9514 - val_binary_accuracy: 0.7152\n", + "Epoch 2/9999\n", + "28/28 - 46s - loss: 0.5876 - binary_accuracy: 0.7732 - val_loss: 0.5002 - val_binary_accuracy: 0.7948\n", + "Epoch 3/9999\n", + "28/28 - 46s - loss: 0.3907 - binary_accuracy: 0.8326 - val_loss: 0.4700 - val_binary_accuracy: 0.8142\n", + "Epoch 4/9999\n", + "28/28 - 46s - loss: 0.3345 - binary_accuracy: 0.8569 - val_loss: 0.4042 - val_binary_accuracy: 0.8303\n", + "Epoch 5/9999\n", + "28/28 - 46s - loss: 0.2991 - binary_accuracy: 0.8746 - val_loss: 0.4240 - val_binary_accuracy: 0.8390\n", + "Epoch 6/9999\n", + "28/28 - 46s - loss: 0.2881 - binary_accuracy: 0.8817 - val_loss: 0.4556 - val_binary_accuracy: 0.8288\n", + "Epoch 7/9999\n", + "28/28 - 46s - loss: 0.2470 - binary_accuracy: 0.9004 - val_loss: 0.3760 - val_binary_accuracy: 0.8468\n", + "Epoch 8/9999\n", + "28/28 - 46s - loss: 0.2231 - binary_accuracy: 0.9089 - val_loss: 0.3924 - val_binary_accuracy: 0.8487\n", + "Epoch 9/9999\n", + "28/28 - 46s - loss: 0.1960 - binary_accuracy: 0.9223 - val_loss: 0.3656 - val_binary_accuracy: 0.8560\n", + "Epoch 10/9999\n", + "28/28 - 46s - loss: 0.1825 - binary_accuracy: 0.9258 - val_loss: 0.3589 - val_binary_accuracy: 0.8652\n", + "Epoch 11/9999\n", + "28/28 - 46s - loss: 0.1816 - binary_accuracy: 0.9281 - val_loss: 0.3374 - val_binary_accuracy: 0.8703\n", + "Epoch 12/9999\n", + "28/28 - 46s - loss: 0.1669 - binary_accuracy: 0.9344 - val_loss: 0.4030 - val_binary_accuracy: 0.8515\n", + "Epoch 13/9999\n", + "28/28 - 46s - loss: 0.1733 - binary_accuracy: 0.9308 - val_loss: 0.3462 - val_binary_accuracy: 0.8775\n", + "Epoch 14/9999\n", + "28/28 - 46s - loss: 0.1619 - binary_accuracy: 0.9359 - val_loss: 0.3733 - val_binary_accuracy: 0.8650\n", + "Epoch 15/9999\n", + "28/28 - 46s - loss: 0.1519 - binary_accuracy: 0.9418 - val_loss: 0.3682 - val_binary_accuracy: 0.8662\n", + "Epoch 16/9999\n", + "Restoring model weights from the end of the best epoch.\n", + "28/28 - 46s - loss: 0.1406 - binary_accuracy: 0.9452 - val_loss: 0.3588 - val_binary_accuracy: 0.8730\n", + "Epoch 00016: early stopping\n" + ] + } + ], + "source": [ + "callbacks = [early_stopping]\n", + "history = model_final.fit(\n", + " train_generator,\n", + " steps_per_epoch = 28, \n", + " epochs = 9999, # We only want the training to stop after the early stopping condition is met\n", + " validation_data = test_generator,\n", + " verbose = 2, \n", + " callbacks = callbacks)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Evaluate" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "def plot_history(history):\n", + " f = plt.figure(figsize = (15,6))\n", + "\n", + " ax = f.add_subplot(121)\n", + " ax.plot(history.history['binary_accuracy'])\n", + " ax.plot(history.history['val_binary_accuracy'])\n", + " ax.legend(['training accuracy', 'validation accuracy'], \n", + " bbox_to_anchor = (0, 1.02, 1, 0.2), \n", + " loc = \"lower left\", \n", + " mode = \"expand\",\n", + " ncol = 2)\n", + "\n", + " ax2 = f.add_subplot(122)\n", + " ax2.plot(history.history['loss'])\n", + " ax2.plot(history.history['val_loss'])\n", + " ax2.legend(['training loss', 'validation loss'],\n", + " bbox_to_anchor = (0, 1.02, 1, 0.2),\n", + " loc = \"lower left\",\n", + " mode = \"expand\", \n", + " ncol = 2)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3AAAAGDCAYAAABqc/JJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdd3yV9d3/8dc3e56QkOSElbASIGHIEERQ0KrFgQtURBStaNVa62pr1VtbW0d/rdZ6095i3XWv4sKBC1SqAsoMEPbODhlk53x/f1wnEDBAgCTnnPB+Ph7nkXPOdV3nfBI45zrv813GWouIiIiIiIj4vyBfFyAiIiIiIiItowAnIiIiIiISIBTgREREREREAoQCnIiIiIiISIBQgBMREREREQkQCnAiIiIiIiIBIsTXBbTE4sWLk0NCQp4EBqLQKSISaDzAivr6+hnDhw/P93UxHY3OkSIiAeuIzo8BEeBCQkKeTElJGZCUlFQSFBSkhetERAKIx+MxBQUFmbm5uU8C5/q6no5G50gRkcB0pOfHQPmmbmBSUlKZTkwiIoEnKCjIJiUlleK0EEnr0zlSRCQAHen5MVACXJBOTCIigcv7Hh4o55xAo3OkiEiAOpLzo06mLVBYWBj80EMPJR3JsePGjetbWFgYfLB9br755q6zZ8+OPbLqRKQ1REVFDQXYtGlT6IQJE3o3t8/IkSP7zZ8/P+pgj3Pfffcll5eX73lvbcl7gEggC6RzZLdu3Qbt3LkzIIaPiByL/P1cfOutt3a955573Ef7OEdLAa4FioqKgp966qnk5rbV19cf9Nh58+atS0xMbDjYPo8++uiO888/v/woSmx3dXV1vi5BpE307Nmz7sMPP9xwpMfPmjXLXVFRsee9tSXvAf7E4/HQ0BAw5Yof0DlSRFrbsX4uPhQFuBa47bbbum/dujW8f//+mT//+c+7v/fee7GjRo3KmDhxYq9+/fplAZx22ml9srKyBvTt2zfrr3/9a2LjsY3f9q1Zsyasd+/eWVOmTEnr27dv1pgxY9IrKioMwKRJk3o+88wz8Y3733LLLV0zMzMHZGRkZP7www8RADt27Ag58cQT0zMzMwdMnTo1rWvXrs1+i3jZZZelDhw4cEDfvn2zbrnllq6N98+bNy9q6NCh/fv165c5aNCgASUlJUH19fVce+213TMyMjIzMjIy77///uSmNQPMnz8/auTIkf3A+dbh0ksvTRszZkz6hRde2GvNmjVhw4cP75eZmTkgMzNzwNy5c6Mbn+/uu+92Z2RkZPbr1y/zhhtu6LZy5crwzMzMAY3bly9fHp6VlTUAkTZw/fXXd2vaInDrrbd2vffee92lpaVBo0ePzmh8fb3wwgud9j92zZo1Yenp6VkAFRUV5pxzzumdkZGRefbZZ/eurq42jfs191r705/+lJyfnx86bty4jFGjRmXAvq+n3//+9+709PSs9PT0rPvuuy+58fkO9N7Q1EsvvRQ3ePDg/gMGDMg88cQTM7Zu3RoCUFpaGjR58uSeja/jZ599thPAG2+84crMzBzQr1+/zNGjR2c0/h2afnOYnp6etWbNmrDGGqZNm5aalZWVuX79+rDDeS8ZPnx4vwULFkQ27jNs2LD+3377bSRyTAikc2RTzb0ey8rKgsaPH9+3X79+menp6Vn/+te/4gFuuOGGbn369MnKyMjIvPbaa7u3zV9SpGPpiOfiphYsWBA5ZMiQ/hkZGZmnn356n4KCguDG5298vzjnnHN6A7z//vsx/fv3z+zfv3/mgAEDMktKSo4qgynAtcDDDz+8rUePHjWrV6/OnjVr1jaAZcuWRf/lL3/Zvn79+pUAL7744qaVK1euWrJkSfasWbPcubm5P2qm3bJlS8RNN92Uv27dupVxcXENzz//fHxzz5eYmFifnZ296mc/+1nBQw895Aa44447uo4bN648Ozt71YUXXliyc+fOsOaOfeSRR7avWLFi1erVq1d+/fXXsd9++21kdXW1ueyyy/o8+uijW9asWZM9b968NTExMZ6HH344afPmzeErV67MzsnJyZ4xY0bRof4Wy5Yti/roo4/Wvfvuuxu7du1a/+WXX+ZkZ2evevXVVzfccsstqQCvvfaa6/33349fvHjx6jVr1mTfe++9uVlZWTWxsbENjR/yZs2alTh16tRDPp/IkZg2bVrxm2++mdB4++23346fNm1aSVRUlOf9999fl52dvWrevHk5d955Z3ePx3PAx/nrX/+aHBkZ6cnJycm+5557dmZnZ+/5kqK519rdd9+dn5ycXDdv3rycb7/9NqfpY3355ZdRL730UufFixevWrRo0arnn38+6euvv46Elr03nH766RVLlixZvWrVquzJkycX33fffSkAd9xxRxeXy9WQk5OTnZOTk3322WeX79ixI+TGG2/s+dZbb61fs2ZN9uzZs9cf6m+2adOmiKuuuqpo1apV2RkZGbWH815y5ZVXFj755JOJAMuWLQuvra01o0aNqmrBP5V0AIF0jmx0oNfjW2+95UpJSalbs2ZN9tq1a1deeOGFZXl5ecFz5syJX7t27cqcnJzsBx54YOfR/9VEOr6OeC5u6sorr+z1wAMPbMvJycnOysqq+u1vf9sV4LHHHktZsWJFdk5OTvazzz67GeDhhx9OeeyxxzavXr06+5tvvlkdExNz4F+4BQKuH/iv31jaIye3/KD9Xg9XRkps5V8mD9l6OMcMHjx4d//+/Wsbb//5z392v//++50AcnNzQ1euXBmRkpKyu+kx3bp1qznxxBOrAIYOHVq5adOm8OYee+rUqSUAI0eOrHznnXfiAb777ruY2bNnrwOYPHlymcvlarYZ+Lnnnkt49tlnE+vr601BQUHo0qVLI4wxJCcn140bN64SICEhwQPw2Wefua677rqC0NBQANxu9yGblidMmLArJibGAtTW1pqrr746LTs7OzIoKIjNmzeHA8ydO9c1bdq0wtjYWE/Tx73yyisL//WvfyWOHDly69tvvx2/cOHCVYd6PukAZv+iB/nZrfqaJTmzkvP/ccDX7JgxY6qKiopCNm3aFLpz586QuLi4hvT09Nqamhpz8803d//mm29igoKCyM/PD9u2bVtIampqs/28vvrqq5ibbropH2DUqFFVGRkZlY3bmnutHSy0fPHFFzFnnXXWLpfL5QE4++yzSz7//PPYiy66aFdL3hs2btwYdv7553cvKCgIra2tDerRo0cNwPz5812vvPLKnm4mSUlJDS+99FLcyJEjyxvfo1ry2u7SpUvtT37ykz3vWYfzXnLllVeW/OUvf+lSU1Oz7fHHH0+cOnVq4aGeT9qGzpEHP0c2OtDr8dxzzy296667elx//fXdzjvvvNIJEyZU1NXVER4e7pkyZUra2WefXXrJJZeUHs7fQsQv6FwMHP25uFFRUVFweXl58Nlnn10BcM011xRddNFFvQH69etXdcEFF/Q699xzd1122WW7AE444YSK22+/vcfFF19cfOmll5b06dPnqAKcWuCOUFRU1J4//HvvvRc7b9682EWLFq1es2ZN9oABA6qqqqp+9LcNCwvbM0tYcHCwra+vb7ZpNiIiwgKEhITs2cfaQ08wtnr16rCZM2e6582bl5OTk5N96qmnllZXVwdZazHG/OgBDnR/cHCwbfwmZP/fIzo6es/vff/997uTk5PrVq1alb18+fLsurq6oCaP+6P6pk+fXvL555/HvfLKK50GDRpUmZKS0mH6Iov/mThxYskLL7wQ/+KLLyZMmjSpGGDWrFkJRUVFIcuXL1+1evXq7M6dO9c191ptqrn/ywd6rR3scQ72Gm7Je8ONN96YesMNN+Tn5ORkz5w5c3NNTc0BX28Heg2GhITYpt9y1tTU7Nmp6Xva4b6XxMbGek466aSyl156qdM777yTcPXVVxcf+C8hxwJ/PEc2daD9Bw8eXPP9999nDxo0qOquu+7qdvvtt3cJDQ1lyZIlqyZNmrRr9uzZncaPH59+WE8mcgzraOfilvj888/X/uIXvyhYvHhx9JAhQzLr6up44IEHcp988snNVVVVQSeeeOKAxu7fRyrgWuAO91vA1hAXF9ewe/fuA/6H2LVrV3BcXFxDbGys54cffohYunRp9IH2PVIjR46s+Pe//51w//3357711luusrKyH3U/KSkpCY6MjPQkJCQ0bN26NeSLL76IGzduXPmQIUOq8/LywubNmxc1bty4ypKSkqCYmBjPaaedVvb4448nnX322eWhoaHk5eUFu93uhu7du9d+/fXXURdffHHZa6+9dsDm49LS0uDu3bvXBgcHM3PmzM6NEx9MmDCh7P777+96zTXXFMfGxnoaHzcqKsqOGzeu9NZbb02dOXPmptb+G4mfOsi3c23p8ssvL77mmmt6lpSUhMybN28NOP9nExMT68LDw+27774bu2PHjoN2sxo7dmzFCy+8kDBx4sTyhQsXRuTk5ETBgV9rANHR0Q2lpaVBXbp02eexTj311Iqf/exnPf/4xz/mWmuZM2dO/LPPPtviAdrl5eXBqampdQDPPvts58b7x48fX/bII48kP/3001sBCgoKgk855ZTdt912W9rq1avD+vfvX9v4GuzZs2fNnDlzOgF89dVXUdu3b2/228XDfS8JDQ3luuuuK5w0aVLf448/vqIlLX7SNnSOPPA5sqkDvR43bdoUmpycXH/DDTcUx8bGep577rnOpaWlQRUVFUGXXHJJ6fjx4ysyMjIGtXb9Im1O52Lg6M/FjTp37tzgcrkaPvzw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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_history(history)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "pred_y = model_final.predict(test_generator)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([False, True, True, True, True, True, False, False, True,\n", + " False, False, False, False, False, True, False, True, True,\n", + " True, True])" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pred_y = pred_y > 0.5\n", + "pred_y[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[19, 18, 17, 16, 14, 10, 8, 5, 4, 3, 2, 1, 0]" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "true_y = test_df['class']\n", + "true_y[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "true positive: [77, 103, 96, 97, 72, 83, 83, 80, 71, 85, 90, 89, 87, 86, 77, 80, 90, 93, 111, 101] \n", + "true negative: [81, 77, 82, 77, 94, 83, 97, 97, 97, 91, 85, 90, 99, 91, 96, 93, 83, 79, 62, 76] \n", + "false positive: [2, 6, 15, 20, 17, 28, 6, 6, 2, 8, 14, 9, 4, 12, 15, 18, 14, 18, 21, 7] \n", + "false negative: [40, 14, 7, 6, 17, 6, 14, 17, 30, 16, 11, 12, 10, 11, 12, 9, 13, 10, 6, 16]\n" + ] + } + ], + "source": [ + "bt = [0] * 20\n", + "bf = [0] * 20\n", + "fp = [0] * 20\n", + "fn = [0] * 20\n", + "\n", + "for t_y, p_y in zip(true_y, pred_y):\n", + " p_y = np.where(p_y)[0]\n", + " for i in range(20):\n", + " if i in t_y and i in p_y:\n", + " bt[i] += 1\n", + " elif i not in t_y and i not in p_y:\n", + " bf[i] += 1\n", + " elif i in t_y and i not in p_y:\n", + " fn[i] += 1\n", + " else:\n", + " fp[i] += 1\n", + "print(\"true positive:\", bt, \"\\ntrue negative:\", bf, \"\\nfalse positive:\", fp, \"\\nfalse negative:\", fn)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7/7 [==============================] - 3s 440ms/step - loss: 0.3374 - binary_accuracy: 0.8703\n" + ] + }, + { + "data": { + "text/plain": [ + "[0.33740925788879395, 0.8702501058578491]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model_final.evaluate(test_generator)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import seaborn as sns\n", + "\n", + "f = plt.figure(figsize = (7,50))\n", + "sum_ax = f.add_subplot(6, 1, 1)\n", + "sns.heatmap([[sum(bt), sum(fp)], \n", + " [sum(fn), sum(bf)]],\n", + " annot = True, \n", + " cbar = False,\n", + " xticklabels = [\"True\", \"False\"], \n", + " yticklabels = [\"True\", \"False\"],\n", + " ax = sum_ax,\n", + " fmt='d')\n", + "sum_ax.set_title('All Bits')\n", + "sum_ax.set_ylabel(\"Predicted\")\n", + "sum_ax.set_xlabel(\"Actual\")\n", + "\n", + "for i in range(20):\n", + " ax = f.add_subplot(12, 2, i + 5)\n", + " sns.heatmap([[bt[i], fp[i]], \n", + " [fn[i], bf[i]]],\n", + " annot = True, \n", + " cbar = False,\n", + " xticklabels = [\"True\", \"False\"], \n", + " yticklabels = [\"True\", \"False\"],\n", + " ax = ax,\n", + " fmt='d')\n", + " ax.set_title('Bit {}'.format(i))\n", + " ax.set_ylabel(\"Predicted\")\n", + " ax.set_xlabel(\"Actual\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Save model" + ] + }, + { + "cell_type": "code", + "execution_count": 148, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING:tensorflow:From C:\\Users\\Thesis\\anaconda3\\envs\\tensorflow\\lib\\site-packages\\tensorflow\\python\\training\\tracking\\tracking.py:111: Model.state_updates (from tensorflow.python.keras.engine.training) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "This property should not be used in TensorFlow 2.0, as updates are applied automatically.\n", + "WARNING:tensorflow:From C:\\Users\\Thesis\\anaconda3\\envs\\tensorflow\\lib\\site-packages\\tensorflow\\python\\training\\tracking\\tracking.py:111: Layer.updates (from tensorflow.python.keras.engine.base_layer) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "This property should not be used in TensorFlow 2.0, as updates are applied automatically.\n", + "INFO:tensorflow:Assets written to: bar_cat_model_943\\assets\n" + ] + } + ], + "source": [ + "model_final.save('bar_cat_model_943')" + ] + } + ], + "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.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Chapter3/Bar Categorization-EfficientNetB3.ipynb b/Chapter3/Bar Categorization/Bar Categorization-EfficientNetB3.ipynb similarity index 100% rename from Chapter3/Bar Categorization-EfficientNetB3.ipynb rename to Chapter3/Bar Categorization/Bar Categorization-EfficientNetB3.ipynb diff --git a/Chapter3/Bar Categorization-ResNet101.ipynb b/Chapter3/Bar Categorization/Bar Categorization-ResNet101.ipynb similarity index 100% rename from Chapter3/Bar Categorization-ResNet101.ipynb rename to Chapter3/Bar Categorization/Bar Categorization-ResNet101.ipynb diff --git a/Chapter3/Bar Categorization-ResNet101_nolast.ipynb b/Chapter3/Bar Categorization/Bar Categorization-ResNet101_nolast.ipynb similarity index 100% rename from Chapter3/Bar Categorization-ResNet101_nolast.ipynb rename to Chapter3/Bar Categorization/Bar Categorization-ResNet101_nolast.ipynb diff --git a/Chapter3/Bar Categorization-ResNet50-nolast.ipynb b/Chapter3/Bar Categorization/Bar Categorization-ResNet50-nolast.ipynb similarity index 100% rename from Chapter3/Bar Categorization-ResNet50-nolast.ipynb rename to Chapter3/Bar Categorization/Bar Categorization-ResNet50-nolast.ipynb diff --git a/Chapter3/Bar Categorization-ResNet50.ipynb b/Chapter3/Bar Categorization/Bar Categorization-ResNet50.ipynb similarity index 100% rename from Chapter3/Bar Categorization-ResNet50.ipynb rename to Chapter3/Bar Categorization/Bar Categorization-ResNet50.ipynb diff --git a/Chapter3/Bar Categorization-VGG16.ipynb b/Chapter3/Bar Categorization/Bar Categorization-VGG16.ipynb similarity index 100% rename from Chapter3/Bar Categorization-VGG16.ipynb rename to Chapter3/Bar Categorization/Bar Categorization-VGG16.ipynb diff --git a/Chapter3/Bar Categorization-VGG16_nolast.ipynb b/Chapter3/Bar Categorization/Bar Categorization-VGG16_nolast.ipynb similarity index 100% rename from Chapter3/Bar Categorization-VGG16_nolast.ipynb rename to Chapter3/Bar Categorization/Bar Categorization-VGG16_nolast.ipynb diff --git a/Chapter3/Bar Categorization-VGG19-nolast.ipynb b/Chapter3/Bar Categorization/Bar Categorization-VGG19-nolast.ipynb similarity index 100% rename from Chapter3/Bar Categorization-VGG19-nolast.ipynb rename to Chapter3/Bar Categorization/Bar Categorization-VGG19-nolast.ipynb diff --git a/Chapter3/Bar Categorization-VGG19.ipynb b/Chapter3/Bar Categorization/Bar Categorization-VGG19.ipynb similarity index 100% rename from Chapter3/Bar Categorization-VGG19.ipynb rename to Chapter3/Bar Categorization/Bar Categorization-VGG19.ipynb