{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "# Painters Identification using ConvNets\n", "### Marco Tavora\n", "
\n", "\n", "\n", "\n", " \n", "## Index\n", "\n", "- [Building Convolutional Neural Networks](#convnets)\n", " - [Small ConvNets](#smallconvnets)\n", " - [Imports for Convnets](#importconvnets)\n", " - [Preprocessing](#keraspreprocessing)\n", " - [Training the model](#traincnn)\n", " - [Plotting the results](#plotting)\n", " - [Transfer learning: Using InceptionV3](#VGG16)\n", " - [Comments](#comments)\n", "- [References](#ref) \n", "\n", "
\n", "
\n", " \n", " \n", " " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Created using Python 3.6.4\n" ] } ], "source": [ "print('Created using Python', platform.python_version())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction\n", "\n", "The challenge of recognizing artists given their paintings has been, for a long time, far beyond the capability of algorithms. Recent advances in deep learning, specifically the development of convolutional neural networks, have made that task possible. One of the advantages of these methods is that, in contrast to several methods employed by art specialists, they are not invasive and do not interfere with the painting.\n", "\n", "\n", "## Overview\n", "\n", "I used Convolutional Neural Networks (ConvNets) to identify the artist of a given painting. The dataset contains a minimum of 400 paintings per artist
from a set of 37 famous artists. \n", "

\n", "I trained a small ConvNet built from scratch, and also used transfer learning, fine-tuning the top layers of a deep pre-trained networks (VGG16)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Problems with small datasets\n", "The number of training examples in our dataset is small (for image recognition standards). Therefore, making predictions with high accuracy avoiding overfitting becomes a difficult task. To build classification systems with the level of capability of current state-of-the-art models would need millions of training examples. Example of such models are the ImageNet models. Examples of these models include:\n", "\n", "- VGG16\n", "- VGG19\n", "- ResNet50\n", "- Inception V3\n", "- Xception\n", "\n", "\n", "\n", "## Preprocessing\n", "\n", "The `Keras` class `keras.preprocessing.image.ImageDataGenerator` generates batches of image data with real-time data augmentation and defines the configuration for both image data preparation and image data augmentation. Data augmentation is particularly useful in cases like the present one, where the number of images in the training set is not large, and overfitting can become an issue.\n", "\n", "To create an augmented image generator we can follow these steps:\n", "\n", "- We must first create an instance i.e. an augmented image generator (using the command below) where several arguments can be chosen. These arguments will determine the alterations to be performed on the images during training:\n", "\n", " datagen = ImageDataGenerator(arguments)\n", "\n", "- To use `datagen` to create new images we call the function `fit_generator( )` with the desired arguments.\n", "\n", "I will quickly explain some possible arguments of `ImageDataGenerator`:\n", "- `rotation range` defines the amplitude that the images will be rotated randomly during training. Rotations aren't always useful. For example, in the MNIST dataset all images have normalized orientation, so random rotations during training are not needed. In tour present case it is not clear how useful rotations are so I will choose an small argument (instead of just setting it to zero).\n", "- `rotation_range`, `width_shift_range`, `height_shift_range` and `shear_range`: the ranges of random shifts and random shears should be the same in our case, since the images were resized to have the same dimensions.\n", "- I set `fill mode` to be `nearest` which means that pixels that are missing will be filled by the nearest ones.\n", "- `horizontal_flip`: horizontal (and vertical) flips can be useful here since in many examples in our dataset there is no clear definition of orientation (again the MNIST dataset is an example where flipping is not useful)\n", "- We can also standardize pixel values using the `featurewise_center` and `feature_std_normalization` arguments.\n", "***\n", "\n", "## Transfer Learning\n", "One way to circunvent this issue is to use 'Transfer Learning', where we use a pre-trained model, modify its final layers and apply to our dataset. When the dataset is too small, these pre-trained models act as feature generators only (see discussion below). As will be illustrated later on, when the dataset in question has some reasonable size, one can drop some layers from the original model, stack a model on top of the network and perform some parameters fine-tuning. \n", "\n", "Before following this approach, I will, in the next section, build a small ConvNet \"from scratch\". " ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "import tensorflow as tf\n", "from keras.preprocessing.image import ImageDataGenerator, img_to_array, load_img\n", "from keras.models import Sequential \n", "from keras.preprocessing import image\n", "from keras.layers import Dropout, Flatten, Dense \n", "from keras import applications \n", "from keras.utils.np_utils import to_categorical \n", "from keras import applications\n", "from keras.applications.imagenet_utils import preprocess_input\n", "from imagenet_utils import decode_predictions\n", "import math, cv2 \n", "\n", "folder_train = './train_toy_3/'\n", "folder_test = './test_toy_3/'" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "datagen = ImageDataGenerator(\n", " featurewise_center=True,\n", " featurewise_std_normalization=True,\n", " rotation_range=0.15,\n", " width_shift_range=0.2,\n", " height_shift_range=0.2,\n", " rescale = 1./255,\n", " shear_range=0.2,\n", " zoom_range=0.2,\n", " horizontal_flip=True,\n", " fill_mode='nearest')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'channels_last'" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from keras.preprocessing.image import ImageDataGenerator, img_to_array, load_img \n", "from keras.models import Sequential\n", "from keras.layers import Conv2D, MaxPooling2D\n", "from keras.layers import Activation, Dropout, Flatten, Dense\n", "from keras import backend as K\n", "from keras.callbacks import EarlyStopping, Callback\n", "K.image_data_format() # this means that \"backend\": \"tensorflow\". Channels are RGB\n", "from keras import applications \n", "from keras.utils.np_utils import to_categorical \n", "import math, cv2 " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Defining the new size of the image\n", "\n", "- The images from Wikiart.org had a extremely large size, I wrote a simple function `preprocess( )` (see the notebook about data analysis in this repo) to resize the images. In the next cell I resize them again and play with the size to see how it impacts accuracy. \n", "- The reason why cropping the image is partly justified is that I believe, the style of the artist is present everywhere in the painting, so cropping shouldn't cause major problems." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "img_width, img_height = 120,120" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "TensorFlow Backend\n" ] }, { "data": { "text/plain": [ "(120, 120, 3)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "if K.image_data_format() == 'channels_first': \n", " input_shape = (3, img_width, img_height)\n", " print('Theano Backend')\n", "else:\n", " input_shape = (img_width, img_height, 3)\n", " print('TensorFlow Backend')\n", " \n", "input_shape" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1141" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "359" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nb_train_samples = 0\n", "for p in range(len(os.listdir(os.path.abspath(folder_train)))):\n", " nb_train_samples += len(os.listdir(os.path.abspath(folder_train) +'/'+ os.listdir(\n", " os.path.abspath(folder_train))[p]))\n", "nb_train_samples\n", "\n", "nb_test_samples = 0\n", "for p in range(len(os.listdir(os.path.abspath(folder_test)))):\n", " nb_test_samples += len(os.listdir(os.path.abspath(folder_test) +'/'+ os.listdir(\n", " os.path.abspath(folder_test))[p]))\n", "nb_test_samples" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Batches and Epochs:\n", "\n", "- Batch: a set of $N$ samples. The samples in a batch are processed independently, in parallel. If training, a batch results in only one update to the model (extracted from the docs).\n", "- Epoch: an arbitrary cutoff, generally defined as \"one pass over the entire dataset\", used to separate training into distinct phases, which is useful for logging and periodic evaluation. When using `evaluation_data` or `evaluation_split` with the `fit` method of Keras models, evaluation will be run at the end of every epoch (extracted from the docs).\n", "- Larger batch sizes:faster progress in training, but don't always converge as fast. \n", "- Smaller batch sizes: train slower, but can converge faster. It's definitely problem dependent." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The painters are ['Pablo_Picasso', 'Pierre-Auguste_Renoir', 'Rembrandt']\n" ] } ], "source": [ "train_data_dir = os.path.abspath(folder_train) # folder containing training set already subdivided\n", "validation_data_dir = os.path.abspath(folder_test) # folder containing test set already subdivided\n", "nb_train_samples = nb_train_samples\n", "nb_validation_samples = nb_test_samples\n", "epochs = 100\n", "batch_size = 16 # batch_size = 16\n", "num_classes = len(os.listdir(os.path.abspath(folder_train)))\n", "print('The painters are',os.listdir(os.path.abspath(folder_train)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Class for early stopping\n", "\n", "Model stops training when 10 epochs do not show gain in accuracy." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# rdcolema\n", "class EarlyStoppingByLossVal(Callback):\n", " \"\"\"Custom class to set a val loss target for early stopping\"\"\"\n", " def __init__(self, monitor='val_loss', value=0.45, verbose=0):\n", " super(Callback, self).__init__()\n", " self.monitor = monitor\n", " self.value = value\n", " self.verbose = verbose\n", "\n", " def on_epoch_end(self, epoch, logs={}):\n", " current = logs.get(self.monitor)\n", " if current is None:\n", " warnings.warn(\"Early stopping requires %s available!\" % self.monitor, RuntimeWarning)\n", "\n", " if current < self.value:\n", " if self.verbose > 0:\n", " print(\"Epoch %05d: early stopping THR\" % epoch)\n", " self.model.stop_training = True\n", "early_stopping = EarlyStopping(monitor='val_loss', patience=10, mode='auto') #" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "top_model_weights_path = 'bottleneck_fc_model.h5' " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Creating InceptionV3 model\n", "\n", "We now create the InceptionV3 model without the final fully-connected layers (setting `include_top=False`) and loading the ImageNet weights (by setting `weights ='imagenet`)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "from keras.applications.inception_v3 import InceptionV3\n", "model = applications.InceptionV3(include_top=False, weights='imagenet') " ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "__________________________________________________________________________________________________\n", "Layer (type) Output Shape Param # Connected to \n", "==================================================================================================\n", "input_2 (InputLayer) (None, None, None, 3 0 \n", "__________________________________________________________________________________________________\n", "conv2d_95 (Conv2D) (None, None, None, 3 864 input_2[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_95 (BatchNo (None, None, None, 3 96 conv2d_95[0][0] \n", "__________________________________________________________________________________________________\n", "activation_95 (Activation) (None, None, None, 3 0 batch_normalization_95[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_96 (Conv2D) (None, None, None, 3 9216 activation_95[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_96 (BatchNo (None, None, None, 3 96 conv2d_96[0][0] \n", "__________________________________________________________________________________________________\n", "activation_96 (Activation) (None, None, None, 3 0 batch_normalization_96[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_97 (Conv2D) (None, None, None, 6 18432 activation_96[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_97 (BatchNo (None, None, None, 6 192 conv2d_97[0][0] \n", "__________________________________________________________________________________________________\n", "activation_97 (Activation) (None, None, None, 6 0 batch_normalization_97[0][0] \n", "__________________________________________________________________________________________________\n", "max_pooling2d_5 (MaxPooling2D) (None, None, None, 6 0 activation_97[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_98 (Conv2D) (None, None, None, 8 5120 max_pooling2d_5[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_98 (BatchNo (None, None, None, 8 240 conv2d_98[0][0] \n", "__________________________________________________________________________________________________\n", "activation_98 (Activation) (None, None, None, 8 0 batch_normalization_98[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_99 (Conv2D) (None, None, None, 1 138240 activation_98[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_99 (BatchNo (None, None, None, 1 576 conv2d_99[0][0] \n", "__________________________________________________________________________________________________\n", "activation_99 (Activation) (None, None, None, 1 0 batch_normalization_99[0][0] \n", "__________________________________________________________________________________________________\n", "max_pooling2d_6 (MaxPooling2D) (None, None, None, 1 0 activation_99[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_103 (Conv2D) (None, None, None, 6 12288 max_pooling2d_6[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_103 (BatchN (None, None, None, 6 192 conv2d_103[0][0] \n", "__________________________________________________________________________________________________\n", "activation_103 (Activation) (None, None, None, 6 0 batch_normalization_103[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_101 (Conv2D) (None, None, None, 4 9216 max_pooling2d_6[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_104 (Conv2D) (None, None, None, 9 55296 activation_103[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_101 (BatchN (None, None, None, 4 144 conv2d_101[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_104 (BatchN (None, None, None, 9 288 conv2d_104[0][0] \n", "__________________________________________________________________________________________________\n", "activation_101 (Activation) (None, None, None, 4 0 batch_normalization_101[0][0] \n", "__________________________________________________________________________________________________\n", "activation_104 (Activation) (None, None, None, 9 0 batch_normalization_104[0][0] \n", "__________________________________________________________________________________________________\n", "average_pooling2d_10 (AveragePo (None, None, None, 1 0 max_pooling2d_6[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_100 (Conv2D) (None, None, None, 6 12288 max_pooling2d_6[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_102 (Conv2D) (None, None, None, 6 76800 activation_101[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_105 (Conv2D) (None, None, None, 9 82944 activation_104[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_106 (Conv2D) (None, None, None, 3 6144 average_pooling2d_10[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_100 (BatchN (None, None, None, 6 192 conv2d_100[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_102 (BatchN (None, None, None, 6 192 conv2d_102[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_105 (BatchN (None, None, None, 9 288 conv2d_105[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_106 (BatchN (None, None, None, 3 96 conv2d_106[0][0] \n", "__________________________________________________________________________________________________\n", "activation_100 (Activation) (None, None, None, 6 0 batch_normalization_100[0][0] \n", "__________________________________________________________________________________________________\n", "activation_102 (Activation) (None, None, None, 6 0 batch_normalization_102[0][0] \n", "__________________________________________________________________________________________________\n", "activation_105 (Activation) (None, None, None, 9 0 batch_normalization_105[0][0] \n", "__________________________________________________________________________________________________\n", "activation_106 (Activation) (None, None, None, 3 0 batch_normalization_106[0][0] \n", "__________________________________________________________________________________________________\n", "mixed0 (Concatenate) (None, None, None, 2 0 activation_100[0][0] \n", " activation_102[0][0] \n", " activation_105[0][0] \n", " activation_106[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_110 (Conv2D) (None, None, None, 6 16384 mixed0[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_110 (BatchN (None, None, None, 6 192 conv2d_110[0][0] \n", "__________________________________________________________________________________________________\n", "activation_110 (Activation) (None, None, None, 6 0 batch_normalization_110[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_108 (Conv2D) (None, None, None, 4 12288 mixed0[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_111 (Conv2D) (None, None, None, 9 55296 activation_110[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_108 (BatchN (None, None, None, 4 144 conv2d_108[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_111 (BatchN (None, None, None, 9 288 conv2d_111[0][0] \n", "__________________________________________________________________________________________________\n", "activation_108 (Activation) (None, None, None, 4 0 batch_normalization_108[0][0] \n", "__________________________________________________________________________________________________\n", "activation_111 (Activation) (None, None, None, 9 0 batch_normalization_111[0][0] \n", "__________________________________________________________________________________________________\n", "average_pooling2d_11 (AveragePo (None, None, None, 2 0 mixed0[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_107 (Conv2D) (None, None, None, 6 16384 mixed0[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_109 (Conv2D) (None, None, None, 6 76800 activation_108[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_112 (Conv2D) (None, None, None, 9 82944 activation_111[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_113 (Conv2D) (None, None, None, 6 16384 average_pooling2d_11[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_107 (BatchN (None, None, None, 6 192 conv2d_107[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_109 (BatchN (None, None, None, 6 192 conv2d_109[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_112 (BatchN (None, None, None, 9 288 conv2d_112[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_113 (BatchN (None, None, None, 6 192 conv2d_113[0][0] \n", "__________________________________________________________________________________________________\n", "activation_107 (Activation) (None, None, None, 6 0 batch_normalization_107[0][0] \n", "__________________________________________________________________________________________________\n", "activation_109 (Activation) (None, None, None, 6 0 batch_normalization_109[0][0] \n", "__________________________________________________________________________________________________\n", "activation_112 (Activation) (None, None, None, 9 0 batch_normalization_112[0][0] \n", "__________________________________________________________________________________________________\n", "activation_113 (Activation) (None, None, None, 6 0 batch_normalization_113[0][0] \n", "__________________________________________________________________________________________________\n", "mixed1 (Concatenate) (None, None, None, 2 0 activation_107[0][0] \n", " activation_109[0][0] \n", " activation_112[0][0] \n", " activation_113[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_117 (Conv2D) (None, None, None, 6 18432 mixed1[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_117 (BatchN (None, None, None, 6 192 conv2d_117[0][0] \n", "__________________________________________________________________________________________________\n", "activation_117 (Activation) (None, None, None, 6 0 batch_normalization_117[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_115 (Conv2D) (None, None, None, 4 13824 mixed1[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_118 (Conv2D) (None, None, None, 9 55296 activation_117[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_115 (BatchN (None, None, None, 4 144 conv2d_115[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_118 (BatchN (None, None, None, 9 288 conv2d_118[0][0] \n", "__________________________________________________________________________________________________\n", "activation_115 (Activation) (None, None, None, 4 0 batch_normalization_115[0][0] \n", "__________________________________________________________________________________________________\n", "activation_118 (Activation) (None, None, None, 9 0 batch_normalization_118[0][0] \n", "__________________________________________________________________________________________________\n", "average_pooling2d_12 (AveragePo (None, None, None, 2 0 mixed1[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_114 (Conv2D) (None, None, None, 6 18432 mixed1[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_116 (Conv2D) (None, None, None, 6 76800 activation_115[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_119 (Conv2D) (None, None, None, 9 82944 activation_118[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_120 (Conv2D) (None, None, None, 6 18432 average_pooling2d_12[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_114 (BatchN (None, None, None, 6 192 conv2d_114[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_116 (BatchN (None, None, None, 6 192 conv2d_116[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_119 (BatchN (None, None, None, 9 288 conv2d_119[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_120 (BatchN (None, None, None, 6 192 conv2d_120[0][0] \n", "__________________________________________________________________________________________________\n", "activation_114 (Activation) (None, None, None, 6 0 batch_normalization_114[0][0] \n", "__________________________________________________________________________________________________\n", "activation_116 (Activation) (None, None, None, 6 0 batch_normalization_116[0][0] \n", "__________________________________________________________________________________________________\n", "activation_119 (Activation) (None, None, None, 9 0 batch_normalization_119[0][0] \n", "__________________________________________________________________________________________________\n", "activation_120 (Activation) (None, None, None, 6 0 batch_normalization_120[0][0] \n", "__________________________________________________________________________________________________\n", "mixed2 (Concatenate) (None, None, None, 2 0 activation_114[0][0] \n", " activation_116[0][0] \n", " activation_119[0][0] \n", " activation_120[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_122 (Conv2D) (None, None, None, 6 18432 mixed2[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_122 (BatchN (None, None, None, 6 192 conv2d_122[0][0] \n", "__________________________________________________________________________________________________\n", "activation_122 (Activation) (None, None, None, 6 0 batch_normalization_122[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_123 (Conv2D) (None, None, None, 9 55296 activation_122[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_123 (BatchN (None, None, None, 9 288 conv2d_123[0][0] \n", "__________________________________________________________________________________________________\n", "activation_123 (Activation) (None, None, None, 9 0 batch_normalization_123[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_121 (Conv2D) (None, None, None, 3 995328 mixed2[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_124 (Conv2D) (None, None, None, 9 82944 activation_123[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_121 (BatchN (None, None, None, 3 1152 conv2d_121[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_124 (BatchN (None, None, None, 9 288 conv2d_124[0][0] \n", "__________________________________________________________________________________________________\n", "activation_121 (Activation) (None, None, None, 3 0 batch_normalization_121[0][0] \n", "__________________________________________________________________________________________________\n", "activation_124 (Activation) (None, None, None, 9 0 batch_normalization_124[0][0] \n", "__________________________________________________________________________________________________\n", "max_pooling2d_7 (MaxPooling2D) (None, None, None, 2 0 mixed2[0][0] \n", "__________________________________________________________________________________________________\n", "mixed3 (Concatenate) (None, None, None, 7 0 activation_121[0][0] \n", " activation_124[0][0] \n", " max_pooling2d_7[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_129 (Conv2D) (None, None, None, 1 98304 mixed3[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_129 (BatchN (None, None, None, 1 384 conv2d_129[0][0] \n", "__________________________________________________________________________________________________\n", "activation_129 (Activation) (None, None, None, 1 0 batch_normalization_129[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_130 (Conv2D) (None, None, None, 1 114688 activation_129[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_130 (BatchN (None, None, None, 1 384 conv2d_130[0][0] \n", "__________________________________________________________________________________________________\n", "activation_130 (Activation) (None, None, None, 1 0 batch_normalization_130[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_126 (Conv2D) (None, None, None, 1 98304 mixed3[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_131 (Conv2D) (None, None, None, 1 114688 activation_130[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_126 (BatchN (None, None, None, 1 384 conv2d_126[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_131 (BatchN (None, None, None, 1 384 conv2d_131[0][0] \n", "__________________________________________________________________________________________________\n", "activation_126 (Activation) (None, None, None, 1 0 batch_normalization_126[0][0] \n", "__________________________________________________________________________________________________\n", "activation_131 (Activation) (None, None, None, 1 0 batch_normalization_131[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_127 (Conv2D) (None, None, None, 1 114688 activation_126[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_132 (Conv2D) (None, None, None, 1 114688 activation_131[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_127 (BatchN (None, None, None, 1 384 conv2d_127[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_132 (BatchN (None, None, None, 1 384 conv2d_132[0][0] \n", "__________________________________________________________________________________________________\n", "activation_127 (Activation) (None, None, None, 1 0 batch_normalization_127[0][0] \n", "__________________________________________________________________________________________________\n", "activation_132 (Activation) (None, None, None, 1 0 batch_normalization_132[0][0] \n", "__________________________________________________________________________________________________\n", "average_pooling2d_13 (AveragePo (None, None, None, 7 0 mixed3[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_125 (Conv2D) (None, None, None, 1 147456 mixed3[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_128 (Conv2D) (None, None, None, 1 172032 activation_127[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_133 (Conv2D) (None, None, None, 1 172032 activation_132[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_134 (Conv2D) (None, None, None, 1 147456 average_pooling2d_13[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_125 (BatchN (None, None, None, 1 576 conv2d_125[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_128 (BatchN (None, None, None, 1 576 conv2d_128[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_133 (BatchN (None, None, None, 1 576 conv2d_133[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_134 (BatchN (None, None, None, 1 576 conv2d_134[0][0] \n", "__________________________________________________________________________________________________\n", "activation_125 (Activation) (None, None, None, 1 0 batch_normalization_125[0][0] \n", "__________________________________________________________________________________________________\n", "activation_128 (Activation) (None, None, None, 1 0 batch_normalization_128[0][0] \n", "__________________________________________________________________________________________________\n", "activation_133 (Activation) (None, None, None, 1 0 batch_normalization_133[0][0] \n", "__________________________________________________________________________________________________\n", "activation_134 (Activation) (None, None, None, 1 0 batch_normalization_134[0][0] \n", "__________________________________________________________________________________________________\n", "mixed4 (Concatenate) (None, None, None, 7 0 activation_125[0][0] \n", " activation_128[0][0] \n", " activation_133[0][0] \n", " activation_134[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_139 (Conv2D) (None, None, None, 1 122880 mixed4[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_139 (BatchN (None, None, None, 1 480 conv2d_139[0][0] \n", "__________________________________________________________________________________________________\n", "activation_139 (Activation) (None, None, None, 1 0 batch_normalization_139[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_140 (Conv2D) (None, None, None, 1 179200 activation_139[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_140 (BatchN (None, None, None, 1 480 conv2d_140[0][0] \n", "__________________________________________________________________________________________________\n", "activation_140 (Activation) (None, None, None, 1 0 batch_normalization_140[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_136 (Conv2D) (None, None, None, 1 122880 mixed4[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_141 (Conv2D) (None, None, None, 1 179200 activation_140[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_136 (BatchN (None, None, None, 1 480 conv2d_136[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_141 (BatchN (None, None, None, 1 480 conv2d_141[0][0] \n", "__________________________________________________________________________________________________\n", "activation_136 (Activation) (None, None, None, 1 0 batch_normalization_136[0][0] \n", "__________________________________________________________________________________________________\n", "activation_141 (Activation) (None, None, None, 1 0 batch_normalization_141[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_137 (Conv2D) (None, None, None, 1 179200 activation_136[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_142 (Conv2D) (None, None, None, 1 179200 activation_141[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_137 (BatchN (None, None, None, 1 480 conv2d_137[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_142 (BatchN (None, None, None, 1 480 conv2d_142[0][0] \n", "__________________________________________________________________________________________________\n", "activation_137 (Activation) (None, None, None, 1 0 batch_normalization_137[0][0] \n", "__________________________________________________________________________________________________\n", "activation_142 (Activation) (None, None, None, 1 0 batch_normalization_142[0][0] \n", "__________________________________________________________________________________________________\n", "average_pooling2d_14 (AveragePo (None, None, None, 7 0 mixed4[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_135 (Conv2D) (None, None, None, 1 147456 mixed4[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_138 (Conv2D) (None, None, None, 1 215040 activation_137[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_143 (Conv2D) (None, None, None, 1 215040 activation_142[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_144 (Conv2D) (None, None, None, 1 147456 average_pooling2d_14[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_135 (BatchN (None, None, None, 1 576 conv2d_135[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_138 (BatchN (None, None, None, 1 576 conv2d_138[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_143 (BatchN (None, None, None, 1 576 conv2d_143[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_144 (BatchN (None, None, None, 1 576 conv2d_144[0][0] \n", "__________________________________________________________________________________________________\n", "activation_135 (Activation) (None, None, None, 1 0 batch_normalization_135[0][0] \n", "__________________________________________________________________________________________________\n", "activation_138 (Activation) (None, None, None, 1 0 batch_normalization_138[0][0] \n", "__________________________________________________________________________________________________\n", "activation_143 (Activation) (None, None, None, 1 0 batch_normalization_143[0][0] \n", "__________________________________________________________________________________________________\n", "activation_144 (Activation) (None, None, None, 1 0 batch_normalization_144[0][0] \n", "__________________________________________________________________________________________________\n", "mixed5 (Concatenate) (None, None, None, 7 0 activation_135[0][0] \n", " activation_138[0][0] \n", " activation_143[0][0] \n", " activation_144[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_149 (Conv2D) (None, None, None, 1 122880 mixed5[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_149 (BatchN (None, None, None, 1 480 conv2d_149[0][0] \n", "__________________________________________________________________________________________________\n", "activation_149 (Activation) (None, None, None, 1 0 batch_normalization_149[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_150 (Conv2D) (None, None, None, 1 179200 activation_149[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_150 (BatchN (None, None, None, 1 480 conv2d_150[0][0] \n", "__________________________________________________________________________________________________\n", "activation_150 (Activation) (None, None, None, 1 0 batch_normalization_150[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_146 (Conv2D) (None, None, None, 1 122880 mixed5[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_151 (Conv2D) (None, None, None, 1 179200 activation_150[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_146 (BatchN (None, None, None, 1 480 conv2d_146[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_151 (BatchN (None, None, None, 1 480 conv2d_151[0][0] \n", "__________________________________________________________________________________________________\n", "activation_146 (Activation) (None, None, None, 1 0 batch_normalization_146[0][0] \n", "__________________________________________________________________________________________________\n", "activation_151 (Activation) (None, None, None, 1 0 batch_normalization_151[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_147 (Conv2D) (None, None, None, 1 179200 activation_146[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_152 (Conv2D) (None, None, None, 1 179200 activation_151[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_147 (BatchN (None, None, None, 1 480 conv2d_147[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_152 (BatchN (None, None, None, 1 480 conv2d_152[0][0] \n", "__________________________________________________________________________________________________\n", "activation_147 (Activation) (None, None, None, 1 0 batch_normalization_147[0][0] \n", "__________________________________________________________________________________________________\n", "activation_152 (Activation) (None, None, None, 1 0 batch_normalization_152[0][0] \n", "__________________________________________________________________________________________________\n", "average_pooling2d_15 (AveragePo (None, None, None, 7 0 mixed5[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_145 (Conv2D) (None, None, None, 1 147456 mixed5[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_148 (Conv2D) (None, None, None, 1 215040 activation_147[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_153 (Conv2D) (None, None, None, 1 215040 activation_152[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_154 (Conv2D) (None, None, None, 1 147456 average_pooling2d_15[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_145 (BatchN (None, None, None, 1 576 conv2d_145[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_148 (BatchN (None, None, None, 1 576 conv2d_148[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_153 (BatchN (None, None, None, 1 576 conv2d_153[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_154 (BatchN (None, None, None, 1 576 conv2d_154[0][0] \n", "__________________________________________________________________________________________________\n", "activation_145 (Activation) (None, None, None, 1 0 batch_normalization_145[0][0] \n", "__________________________________________________________________________________________________\n", "activation_148 (Activation) (None, None, None, 1 0 batch_normalization_148[0][0] \n", "__________________________________________________________________________________________________\n", "activation_153 (Activation) (None, None, None, 1 0 batch_normalization_153[0][0] \n", "__________________________________________________________________________________________________\n", "activation_154 (Activation) (None, None, None, 1 0 batch_normalization_154[0][0] \n", "__________________________________________________________________________________________________\n", "mixed6 (Concatenate) (None, None, None, 7 0 activation_145[0][0] \n", " activation_148[0][0] \n", " activation_153[0][0] \n", " activation_154[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_159 (Conv2D) (None, None, None, 1 147456 mixed6[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_159 (BatchN (None, None, None, 1 576 conv2d_159[0][0] \n", "__________________________________________________________________________________________________\n", "activation_159 (Activation) (None, None, None, 1 0 batch_normalization_159[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_160 (Conv2D) (None, None, None, 1 258048 activation_159[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_160 (BatchN (None, None, None, 1 576 conv2d_160[0][0] \n", "__________________________________________________________________________________________________\n", "activation_160 (Activation) (None, None, None, 1 0 batch_normalization_160[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_156 (Conv2D) (None, None, None, 1 147456 mixed6[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_161 (Conv2D) (None, None, None, 1 258048 activation_160[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_156 (BatchN (None, None, None, 1 576 conv2d_156[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_161 (BatchN (None, None, None, 1 576 conv2d_161[0][0] \n", "__________________________________________________________________________________________________\n", "activation_156 (Activation) (None, None, None, 1 0 batch_normalization_156[0][0] \n", "__________________________________________________________________________________________________\n", "activation_161 (Activation) (None, None, None, 1 0 batch_normalization_161[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_157 (Conv2D) (None, None, None, 1 258048 activation_156[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_162 (Conv2D) (None, None, None, 1 258048 activation_161[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_157 (BatchN (None, None, None, 1 576 conv2d_157[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_162 (BatchN (None, None, None, 1 576 conv2d_162[0][0] \n", "__________________________________________________________________________________________________\n", "activation_157 (Activation) (None, None, None, 1 0 batch_normalization_157[0][0] \n", "__________________________________________________________________________________________________\n", "activation_162 (Activation) (None, None, None, 1 0 batch_normalization_162[0][0] \n", "__________________________________________________________________________________________________\n", "average_pooling2d_16 (AveragePo (None, None, None, 7 0 mixed6[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_155 (Conv2D) (None, None, None, 1 147456 mixed6[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_158 (Conv2D) (None, None, None, 1 258048 activation_157[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_163 (Conv2D) (None, None, None, 1 258048 activation_162[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_164 (Conv2D) (None, None, None, 1 147456 average_pooling2d_16[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_155 (BatchN (None, None, None, 1 576 conv2d_155[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_158 (BatchN (None, None, None, 1 576 conv2d_158[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_163 (BatchN (None, None, None, 1 576 conv2d_163[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_164 (BatchN (None, None, None, 1 576 conv2d_164[0][0] \n", "__________________________________________________________________________________________________\n", "activation_155 (Activation) (None, None, None, 1 0 batch_normalization_155[0][0] \n", "__________________________________________________________________________________________________\n", "activation_158 (Activation) (None, None, None, 1 0 batch_normalization_158[0][0] \n", "__________________________________________________________________________________________________\n", "activation_163 (Activation) (None, None, None, 1 0 batch_normalization_163[0][0] \n", "__________________________________________________________________________________________________\n", "activation_164 (Activation) (None, None, None, 1 0 batch_normalization_164[0][0] \n", "__________________________________________________________________________________________________\n", "mixed7 (Concatenate) (None, None, None, 7 0 activation_155[0][0] \n", " activation_158[0][0] \n", " activation_163[0][0] \n", " activation_164[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_167 (Conv2D) (None, None, None, 1 147456 mixed7[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_167 (BatchN (None, None, None, 1 576 conv2d_167[0][0] \n", "__________________________________________________________________________________________________\n", "activation_167 (Activation) (None, None, None, 1 0 batch_normalization_167[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_168 (Conv2D) (None, None, None, 1 258048 activation_167[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_168 (BatchN (None, None, None, 1 576 conv2d_168[0][0] \n", "__________________________________________________________________________________________________\n", "activation_168 (Activation) (None, None, None, 1 0 batch_normalization_168[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_165 (Conv2D) (None, None, None, 1 147456 mixed7[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_169 (Conv2D) (None, None, None, 1 258048 activation_168[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_165 (BatchN (None, None, None, 1 576 conv2d_165[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_169 (BatchN (None, None, None, 1 576 conv2d_169[0][0] \n", "__________________________________________________________________________________________________\n", "activation_165 (Activation) (None, None, None, 1 0 batch_normalization_165[0][0] \n", "__________________________________________________________________________________________________\n", "activation_169 (Activation) (None, None, None, 1 0 batch_normalization_169[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_166 (Conv2D) (None, None, None, 3 552960 activation_165[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_170 (Conv2D) (None, None, None, 1 331776 activation_169[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_166 (BatchN (None, None, None, 3 960 conv2d_166[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_170 (BatchN (None, None, None, 1 576 conv2d_170[0][0] \n", "__________________________________________________________________________________________________\n", "activation_166 (Activation) (None, None, None, 3 0 batch_normalization_166[0][0] \n", "__________________________________________________________________________________________________\n", "activation_170 (Activation) (None, None, None, 1 0 batch_normalization_170[0][0] \n", "__________________________________________________________________________________________________\n", "max_pooling2d_8 (MaxPooling2D) (None, None, None, 7 0 mixed7[0][0] \n", "__________________________________________________________________________________________________\n", "mixed8 (Concatenate) (None, None, None, 1 0 activation_166[0][0] \n", " activation_170[0][0] \n", " max_pooling2d_8[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_175 (Conv2D) (None, None, None, 4 573440 mixed8[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_175 (BatchN (None, None, None, 4 1344 conv2d_175[0][0] \n", "__________________________________________________________________________________________________\n", "activation_175 (Activation) (None, None, None, 4 0 batch_normalization_175[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_172 (Conv2D) (None, None, None, 3 491520 mixed8[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_176 (Conv2D) (None, None, None, 3 1548288 activation_175[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_172 (BatchN (None, None, None, 3 1152 conv2d_172[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_176 (BatchN (None, None, None, 3 1152 conv2d_176[0][0] \n", "__________________________________________________________________________________________________\n", "activation_172 (Activation) (None, None, None, 3 0 batch_normalization_172[0][0] \n", "__________________________________________________________________________________________________\n", "activation_176 (Activation) (None, None, None, 3 0 batch_normalization_176[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_173 (Conv2D) (None, None, None, 3 442368 activation_172[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_174 (Conv2D) (None, None, None, 3 442368 activation_172[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_177 (Conv2D) (None, None, None, 3 442368 activation_176[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_178 (Conv2D) (None, None, None, 3 442368 activation_176[0][0] \n", "__________________________________________________________________________________________________\n", "average_pooling2d_17 (AveragePo (None, None, None, 1 0 mixed8[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_171 (Conv2D) (None, None, None, 3 409600 mixed8[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_173 (BatchN (None, None, None, 3 1152 conv2d_173[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_174 (BatchN (None, None, None, 3 1152 conv2d_174[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_177 (BatchN (None, None, None, 3 1152 conv2d_177[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_178 (BatchN (None, None, None, 3 1152 conv2d_178[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_179 (Conv2D) (None, None, None, 1 245760 average_pooling2d_17[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_171 (BatchN (None, None, None, 3 960 conv2d_171[0][0] \n", "__________________________________________________________________________________________________\n", "activation_173 (Activation) (None, None, None, 3 0 batch_normalization_173[0][0] \n", "__________________________________________________________________________________________________\n", "activation_174 (Activation) (None, None, None, 3 0 batch_normalization_174[0][0] \n", "__________________________________________________________________________________________________\n", "activation_177 (Activation) (None, None, None, 3 0 batch_normalization_177[0][0] \n", "__________________________________________________________________________________________________\n", "activation_178 (Activation) (None, None, None, 3 0 batch_normalization_178[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_179 (BatchN (None, None, None, 1 576 conv2d_179[0][0] \n", "__________________________________________________________________________________________________\n", "activation_171 (Activation) (None, None, None, 3 0 batch_normalization_171[0][0] \n", "__________________________________________________________________________________________________\n", "mixed9_0 (Concatenate) (None, None, None, 7 0 activation_173[0][0] \n", " activation_174[0][0] \n", "__________________________________________________________________________________________________\n", "concatenate_3 (Concatenate) (None, None, None, 7 0 activation_177[0][0] \n", " activation_178[0][0] \n", "__________________________________________________________________________________________________\n", "activation_179 (Activation) (None, None, None, 1 0 batch_normalization_179[0][0] \n", "__________________________________________________________________________________________________\n", "mixed9 (Concatenate) (None, None, None, 2 0 activation_171[0][0] \n", " mixed9_0[0][0] \n", " concatenate_3[0][0] \n", " activation_179[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_184 (Conv2D) (None, None, None, 4 917504 mixed9[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_184 (BatchN (None, None, None, 4 1344 conv2d_184[0][0] \n", "__________________________________________________________________________________________________\n", "activation_184 (Activation) (None, None, None, 4 0 batch_normalization_184[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_181 (Conv2D) (None, None, None, 3 786432 mixed9[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_185 (Conv2D) (None, None, None, 3 1548288 activation_184[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_181 (BatchN (None, None, None, 3 1152 conv2d_181[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_185 (BatchN (None, None, None, 3 1152 conv2d_185[0][0] \n", "__________________________________________________________________________________________________\n", "activation_181 (Activation) (None, None, None, 3 0 batch_normalization_181[0][0] \n", "__________________________________________________________________________________________________\n", "activation_185 (Activation) (None, None, None, 3 0 batch_normalization_185[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_182 (Conv2D) (None, None, None, 3 442368 activation_181[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_183 (Conv2D) (None, None, None, 3 442368 activation_181[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_186 (Conv2D) (None, None, None, 3 442368 activation_185[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_187 (Conv2D) (None, None, None, 3 442368 activation_185[0][0] \n", "__________________________________________________________________________________________________\n", "average_pooling2d_18 (AveragePo (None, None, None, 2 0 mixed9[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_180 (Conv2D) (None, None, None, 3 655360 mixed9[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_182 (BatchN (None, None, None, 3 1152 conv2d_182[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_183 (BatchN (None, None, None, 3 1152 conv2d_183[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_186 (BatchN (None, None, None, 3 1152 conv2d_186[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_187 (BatchN (None, None, None, 3 1152 conv2d_187[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_188 (Conv2D) (None, None, None, 1 393216 average_pooling2d_18[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_180 (BatchN (None, None, None, 3 960 conv2d_180[0][0] \n", "__________________________________________________________________________________________________\n", "activation_182 (Activation) (None, None, None, 3 0 batch_normalization_182[0][0] \n", "__________________________________________________________________________________________________\n", "activation_183 (Activation) (None, None, None, 3 0 batch_normalization_183[0][0] \n", "__________________________________________________________________________________________________\n", "activation_186 (Activation) (None, None, None, 3 0 batch_normalization_186[0][0] \n", "__________________________________________________________________________________________________\n", "activation_187 (Activation) (None, None, None, 3 0 batch_normalization_187[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_188 (BatchN (None, None, None, 1 576 conv2d_188[0][0] \n", "__________________________________________________________________________________________________\n", "activation_180 (Activation) (None, None, None, 3 0 batch_normalization_180[0][0] \n", "__________________________________________________________________________________________________\n", "mixed9_1 (Concatenate) (None, None, None, 7 0 activation_182[0][0] \n", " activation_183[0][0] \n", "__________________________________________________________________________________________________\n", "concatenate_4 (Concatenate) (None, None, None, 7 0 activation_186[0][0] \n", " activation_187[0][0] \n", "__________________________________________________________________________________________________\n", "activation_188 (Activation) (None, None, None, 1 0 batch_normalization_188[0][0] \n", "__________________________________________________________________________________________________\n", "mixed10 (Concatenate) (None, None, None, 2 0 activation_180[0][0] \n", " mixed9_1[0][0] \n", " concatenate_4[0][0] \n", " activation_188[0][0] \n", "==================================================================================================\n", "Total params: 21,802,784\n", "Trainable params: 21,768,352\n", "Non-trainable params: 34,432\n", "__________________________________________________________________________________________________\n" ] } ], "source": [ "applications.InceptionV3(include_top=False, weights='imagenet').summary()" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "__________________________________________________________________________________________________\n", "Layer (type) Output Shape Param # Connected to \n", "==================================================================================================\n", "input_3 (InputLayer) (None, None, None, 3 0 \n", "__________________________________________________________________________________________________\n", "conv2d_189 (Conv2D) (None, None, None, 3 864 input_3[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_189 (BatchN (None, None, None, 3 96 conv2d_189[0][0] \n", "__________________________________________________________________________________________________\n", "activation_189 (Activation) (None, None, None, 3 0 batch_normalization_189[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_190 (Conv2D) (None, None, None, 3 9216 activation_189[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_190 (BatchN (None, None, None, 3 96 conv2d_190[0][0] \n", "__________________________________________________________________________________________________\n", "activation_190 (Activation) (None, None, None, 3 0 batch_normalization_190[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_191 (Conv2D) (None, None, None, 6 18432 activation_190[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_191 (BatchN (None, None, None, 6 192 conv2d_191[0][0] \n", "__________________________________________________________________________________________________\n", "activation_191 (Activation) (None, None, None, 6 0 batch_normalization_191[0][0] \n", "__________________________________________________________________________________________________\n", "max_pooling2d_9 (MaxPooling2D) (None, None, None, 6 0 activation_191[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_192 (Conv2D) (None, None, None, 8 5120 max_pooling2d_9[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_192 (BatchN (None, None, None, 8 240 conv2d_192[0][0] \n", "__________________________________________________________________________________________________\n", "activation_192 (Activation) (None, None, None, 8 0 batch_normalization_192[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_193 (Conv2D) (None, None, None, 1 138240 activation_192[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_193 (BatchN (None, None, None, 1 576 conv2d_193[0][0] \n", "__________________________________________________________________________________________________\n", "activation_193 (Activation) (None, None, None, 1 0 batch_normalization_193[0][0] \n", "__________________________________________________________________________________________________\n", "max_pooling2d_10 (MaxPooling2D) (None, None, None, 1 0 activation_193[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_197 (Conv2D) (None, None, None, 6 12288 max_pooling2d_10[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_197 (BatchN (None, None, None, 6 192 conv2d_197[0][0] \n", "__________________________________________________________________________________________________\n", "activation_197 (Activation) (None, None, None, 6 0 batch_normalization_197[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_195 (Conv2D) (None, None, None, 4 9216 max_pooling2d_10[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_198 (Conv2D) (None, None, None, 9 55296 activation_197[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_195 (BatchN (None, None, None, 4 144 conv2d_195[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_198 (BatchN (None, None, None, 9 288 conv2d_198[0][0] \n", "__________________________________________________________________________________________________\n", "activation_195 (Activation) (None, None, None, 4 0 batch_normalization_195[0][0] \n", "__________________________________________________________________________________________________\n", "activation_198 (Activation) (None, None, None, 9 0 batch_normalization_198[0][0] \n", "__________________________________________________________________________________________________\n", "average_pooling2d_19 (AveragePo (None, None, None, 1 0 max_pooling2d_10[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_194 (Conv2D) (None, None, None, 6 12288 max_pooling2d_10[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_196 (Conv2D) (None, None, None, 6 76800 activation_195[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_199 (Conv2D) (None, None, None, 9 82944 activation_198[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_200 (Conv2D) (None, None, None, 3 6144 average_pooling2d_19[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_194 (BatchN (None, None, None, 6 192 conv2d_194[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_196 (BatchN (None, None, None, 6 192 conv2d_196[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_199 (BatchN (None, None, None, 9 288 conv2d_199[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_200 (BatchN (None, None, None, 3 96 conv2d_200[0][0] \n", "__________________________________________________________________________________________________\n", "activation_194 (Activation) (None, None, None, 6 0 batch_normalization_194[0][0] \n", "__________________________________________________________________________________________________\n", "activation_196 (Activation) (None, None, None, 6 0 batch_normalization_196[0][0] \n", "__________________________________________________________________________________________________\n", "activation_199 (Activation) (None, None, None, 9 0 batch_normalization_199[0][0] \n", "__________________________________________________________________________________________________\n", "activation_200 (Activation) (None, None, None, 3 0 batch_normalization_200[0][0] \n", "__________________________________________________________________________________________________\n", "mixed0 (Concatenate) (None, None, None, 2 0 activation_194[0][0] \n", " activation_196[0][0] \n", " activation_199[0][0] \n", " activation_200[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_204 (Conv2D) (None, None, None, 6 16384 mixed0[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_204 (BatchN (None, None, None, 6 192 conv2d_204[0][0] \n", "__________________________________________________________________________________________________\n", "activation_204 (Activation) (None, None, None, 6 0 batch_normalization_204[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_202 (Conv2D) (None, None, None, 4 12288 mixed0[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_205 (Conv2D) (None, None, None, 9 55296 activation_204[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_202 (BatchN (None, None, None, 4 144 conv2d_202[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_205 (BatchN (None, None, None, 9 288 conv2d_205[0][0] \n", "__________________________________________________________________________________________________\n", "activation_202 (Activation) (None, None, None, 4 0 batch_normalization_202[0][0] \n", "__________________________________________________________________________________________________\n", "activation_205 (Activation) (None, None, None, 9 0 batch_normalization_205[0][0] \n", "__________________________________________________________________________________________________\n", "average_pooling2d_20 (AveragePo (None, None, None, 2 0 mixed0[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_201 (Conv2D) (None, None, None, 6 16384 mixed0[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_203 (Conv2D) (None, None, None, 6 76800 activation_202[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_206 (Conv2D) (None, None, None, 9 82944 activation_205[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_207 (Conv2D) (None, None, None, 6 16384 average_pooling2d_20[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_201 (BatchN (None, None, None, 6 192 conv2d_201[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_203 (BatchN (None, None, None, 6 192 conv2d_203[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_206 (BatchN (None, None, None, 9 288 conv2d_206[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_207 (BatchN (None, None, None, 6 192 conv2d_207[0][0] \n", "__________________________________________________________________________________________________\n", "activation_201 (Activation) (None, None, None, 6 0 batch_normalization_201[0][0] \n", "__________________________________________________________________________________________________\n", "activation_203 (Activation) (None, None, None, 6 0 batch_normalization_203[0][0] \n", "__________________________________________________________________________________________________\n", "activation_206 (Activation) (None, None, None, 9 0 batch_normalization_206[0][0] \n", "__________________________________________________________________________________________________\n", "activation_207 (Activation) (None, None, None, 6 0 batch_normalization_207[0][0] \n", "__________________________________________________________________________________________________\n", "mixed1 (Concatenate) (None, None, None, 2 0 activation_201[0][0] \n", " activation_203[0][0] \n", " activation_206[0][0] \n", " activation_207[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_211 (Conv2D) (None, None, None, 6 18432 mixed1[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_211 (BatchN (None, None, None, 6 192 conv2d_211[0][0] \n", "__________________________________________________________________________________________________\n", "activation_211 (Activation) (None, None, None, 6 0 batch_normalization_211[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_209 (Conv2D) (None, None, None, 4 13824 mixed1[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_212 (Conv2D) (None, None, None, 9 55296 activation_211[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_209 (BatchN (None, None, None, 4 144 conv2d_209[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_212 (BatchN (None, None, None, 9 288 conv2d_212[0][0] \n", "__________________________________________________________________________________________________\n", "activation_209 (Activation) (None, None, None, 4 0 batch_normalization_209[0][0] \n", "__________________________________________________________________________________________________\n", "activation_212 (Activation) (None, None, None, 9 0 batch_normalization_212[0][0] \n", "__________________________________________________________________________________________________\n", "average_pooling2d_21 (AveragePo (None, None, None, 2 0 mixed1[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_208 (Conv2D) (None, None, None, 6 18432 mixed1[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_210 (Conv2D) (None, None, None, 6 76800 activation_209[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_213 (Conv2D) (None, None, None, 9 82944 activation_212[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_214 (Conv2D) (None, None, None, 6 18432 average_pooling2d_21[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_208 (BatchN (None, None, None, 6 192 conv2d_208[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_210 (BatchN (None, None, None, 6 192 conv2d_210[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_213 (BatchN (None, None, None, 9 288 conv2d_213[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_214 (BatchN (None, None, None, 6 192 conv2d_214[0][0] \n", "__________________________________________________________________________________________________\n", "activation_208 (Activation) (None, None, None, 6 0 batch_normalization_208[0][0] \n", "__________________________________________________________________________________________________\n", "activation_210 (Activation) (None, None, None, 6 0 batch_normalization_210[0][0] \n", "__________________________________________________________________________________________________\n", "activation_213 (Activation) (None, None, None, 9 0 batch_normalization_213[0][0] \n", "__________________________________________________________________________________________________\n", "activation_214 (Activation) (None, None, None, 6 0 batch_normalization_214[0][0] \n", "__________________________________________________________________________________________________\n", "mixed2 (Concatenate) (None, None, None, 2 0 activation_208[0][0] \n", " activation_210[0][0] \n", " activation_213[0][0] \n", " activation_214[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_216 (Conv2D) (None, None, None, 6 18432 mixed2[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_216 (BatchN (None, None, None, 6 192 conv2d_216[0][0] \n", "__________________________________________________________________________________________________\n", "activation_216 (Activation) (None, None, None, 6 0 batch_normalization_216[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_217 (Conv2D) (None, None, None, 9 55296 activation_216[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_217 (BatchN (None, None, None, 9 288 conv2d_217[0][0] \n", "__________________________________________________________________________________________________\n", "activation_217 (Activation) (None, None, None, 9 0 batch_normalization_217[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_215 (Conv2D) (None, None, None, 3 995328 mixed2[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_218 (Conv2D) (None, None, None, 9 82944 activation_217[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_215 (BatchN (None, None, None, 3 1152 conv2d_215[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_218 (BatchN (None, None, None, 9 288 conv2d_218[0][0] \n", "__________________________________________________________________________________________________\n", "activation_215 (Activation) (None, None, None, 3 0 batch_normalization_215[0][0] \n", "__________________________________________________________________________________________________\n", "activation_218 (Activation) (None, None, None, 9 0 batch_normalization_218[0][0] \n", "__________________________________________________________________________________________________\n", "max_pooling2d_11 (MaxPooling2D) (None, None, None, 2 0 mixed2[0][0] \n", "__________________________________________________________________________________________________\n", "mixed3 (Concatenate) (None, None, None, 7 0 activation_215[0][0] \n", " activation_218[0][0] \n", " max_pooling2d_11[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_223 (Conv2D) (None, None, None, 1 98304 mixed3[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_223 (BatchN (None, None, None, 1 384 conv2d_223[0][0] \n", "__________________________________________________________________________________________________\n", "activation_223 (Activation) (None, None, None, 1 0 batch_normalization_223[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_224 (Conv2D) (None, None, None, 1 114688 activation_223[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_224 (BatchN (None, None, None, 1 384 conv2d_224[0][0] \n", "__________________________________________________________________________________________________\n", "activation_224 (Activation) (None, None, None, 1 0 batch_normalization_224[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_220 (Conv2D) (None, None, None, 1 98304 mixed3[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_225 (Conv2D) (None, None, None, 1 114688 activation_224[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_220 (BatchN (None, None, None, 1 384 conv2d_220[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_225 (BatchN (None, None, None, 1 384 conv2d_225[0][0] \n", "__________________________________________________________________________________________________\n", "activation_220 (Activation) (None, None, None, 1 0 batch_normalization_220[0][0] \n", "__________________________________________________________________________________________________\n", "activation_225 (Activation) (None, None, None, 1 0 batch_normalization_225[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_221 (Conv2D) (None, None, None, 1 114688 activation_220[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_226 (Conv2D) (None, None, None, 1 114688 activation_225[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_221 (BatchN (None, None, None, 1 384 conv2d_221[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_226 (BatchN (None, None, None, 1 384 conv2d_226[0][0] \n", "__________________________________________________________________________________________________\n", "activation_221 (Activation) (None, None, None, 1 0 batch_normalization_221[0][0] \n", "__________________________________________________________________________________________________\n", "activation_226 (Activation) (None, None, None, 1 0 batch_normalization_226[0][0] \n", "__________________________________________________________________________________________________\n", "average_pooling2d_22 (AveragePo (None, None, None, 7 0 mixed3[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_219 (Conv2D) (None, None, None, 1 147456 mixed3[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_222 (Conv2D) (None, None, None, 1 172032 activation_221[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_227 (Conv2D) (None, None, None, 1 172032 activation_226[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_228 (Conv2D) (None, None, None, 1 147456 average_pooling2d_22[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_219 (BatchN (None, None, None, 1 576 conv2d_219[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_222 (BatchN (None, None, None, 1 576 conv2d_222[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_227 (BatchN (None, None, None, 1 576 conv2d_227[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_228 (BatchN (None, None, None, 1 576 conv2d_228[0][0] \n", "__________________________________________________________________________________________________\n", "activation_219 (Activation) (None, None, None, 1 0 batch_normalization_219[0][0] \n", "__________________________________________________________________________________________________\n", "activation_222 (Activation) (None, None, None, 1 0 batch_normalization_222[0][0] \n", "__________________________________________________________________________________________________\n", "activation_227 (Activation) (None, None, None, 1 0 batch_normalization_227[0][0] \n", "__________________________________________________________________________________________________\n", "activation_228 (Activation) (None, None, None, 1 0 batch_normalization_228[0][0] \n", "__________________________________________________________________________________________________\n", "mixed4 (Concatenate) (None, None, None, 7 0 activation_219[0][0] \n", " activation_222[0][0] \n", " activation_227[0][0] \n", " activation_228[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_233 (Conv2D) (None, None, None, 1 122880 mixed4[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_233 (BatchN (None, None, None, 1 480 conv2d_233[0][0] \n", "__________________________________________________________________________________________________\n", "activation_233 (Activation) (None, None, None, 1 0 batch_normalization_233[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_234 (Conv2D) (None, None, None, 1 179200 activation_233[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_234 (BatchN (None, None, None, 1 480 conv2d_234[0][0] \n", "__________________________________________________________________________________________________\n", "activation_234 (Activation) (None, None, None, 1 0 batch_normalization_234[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_230 (Conv2D) (None, None, None, 1 122880 mixed4[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_235 (Conv2D) (None, None, None, 1 179200 activation_234[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_230 (BatchN (None, None, None, 1 480 conv2d_230[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_235 (BatchN (None, None, None, 1 480 conv2d_235[0][0] \n", "__________________________________________________________________________________________________\n", "activation_230 (Activation) (None, None, None, 1 0 batch_normalization_230[0][0] \n", "__________________________________________________________________________________________________\n", "activation_235 (Activation) (None, None, None, 1 0 batch_normalization_235[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_231 (Conv2D) (None, None, None, 1 179200 activation_230[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_236 (Conv2D) (None, None, None, 1 179200 activation_235[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_231 (BatchN (None, None, None, 1 480 conv2d_231[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_236 (BatchN (None, None, None, 1 480 conv2d_236[0][0] \n", "__________________________________________________________________________________________________\n", "activation_231 (Activation) (None, None, None, 1 0 batch_normalization_231[0][0] \n", "__________________________________________________________________________________________________\n", "activation_236 (Activation) (None, None, None, 1 0 batch_normalization_236[0][0] \n", "__________________________________________________________________________________________________\n", "average_pooling2d_23 (AveragePo (None, None, None, 7 0 mixed4[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_229 (Conv2D) (None, None, None, 1 147456 mixed4[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_232 (Conv2D) (None, None, None, 1 215040 activation_231[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_237 (Conv2D) (None, None, None, 1 215040 activation_236[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_238 (Conv2D) (None, None, None, 1 147456 average_pooling2d_23[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_229 (BatchN (None, None, None, 1 576 conv2d_229[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_232 (BatchN (None, None, None, 1 576 conv2d_232[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_237 (BatchN (None, None, None, 1 576 conv2d_237[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_238 (BatchN (None, None, None, 1 576 conv2d_238[0][0] \n", "__________________________________________________________________________________________________\n", "activation_229 (Activation) (None, None, None, 1 0 batch_normalization_229[0][0] \n", "__________________________________________________________________________________________________\n", "activation_232 (Activation) (None, None, None, 1 0 batch_normalization_232[0][0] \n", "__________________________________________________________________________________________________\n", "activation_237 (Activation) (None, None, None, 1 0 batch_normalization_237[0][0] \n", "__________________________________________________________________________________________________\n", "activation_238 (Activation) (None, None, None, 1 0 batch_normalization_238[0][0] \n", "__________________________________________________________________________________________________\n", "mixed5 (Concatenate) (None, None, None, 7 0 activation_229[0][0] \n", " activation_232[0][0] \n", " activation_237[0][0] \n", " activation_238[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_243 (Conv2D) (None, None, None, 1 122880 mixed5[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_243 (BatchN (None, None, None, 1 480 conv2d_243[0][0] \n", "__________________________________________________________________________________________________\n", "activation_243 (Activation) (None, None, None, 1 0 batch_normalization_243[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_244 (Conv2D) (None, None, None, 1 179200 activation_243[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_244 (BatchN (None, None, None, 1 480 conv2d_244[0][0] \n", "__________________________________________________________________________________________________\n", "activation_244 (Activation) (None, None, None, 1 0 batch_normalization_244[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_240 (Conv2D) (None, None, None, 1 122880 mixed5[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_245 (Conv2D) (None, None, None, 1 179200 activation_244[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_240 (BatchN (None, None, None, 1 480 conv2d_240[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_245 (BatchN (None, None, None, 1 480 conv2d_245[0][0] \n", "__________________________________________________________________________________________________\n", "activation_240 (Activation) (None, None, None, 1 0 batch_normalization_240[0][0] \n", "__________________________________________________________________________________________________\n", "activation_245 (Activation) (None, None, None, 1 0 batch_normalization_245[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_241 (Conv2D) (None, None, None, 1 179200 activation_240[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_246 (Conv2D) (None, None, None, 1 179200 activation_245[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_241 (BatchN (None, None, None, 1 480 conv2d_241[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_246 (BatchN (None, None, None, 1 480 conv2d_246[0][0] \n", "__________________________________________________________________________________________________\n", "activation_241 (Activation) (None, None, None, 1 0 batch_normalization_241[0][0] \n", "__________________________________________________________________________________________________\n", "activation_246 (Activation) (None, None, None, 1 0 batch_normalization_246[0][0] \n", "__________________________________________________________________________________________________\n", "average_pooling2d_24 (AveragePo (None, None, None, 7 0 mixed5[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_239 (Conv2D) (None, None, None, 1 147456 mixed5[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_242 (Conv2D) (None, None, None, 1 215040 activation_241[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_247 (Conv2D) (None, None, None, 1 215040 activation_246[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_248 (Conv2D) (None, None, None, 1 147456 average_pooling2d_24[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_239 (BatchN (None, None, None, 1 576 conv2d_239[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_242 (BatchN (None, None, None, 1 576 conv2d_242[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_247 (BatchN (None, None, None, 1 576 conv2d_247[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_248 (BatchN (None, None, None, 1 576 conv2d_248[0][0] \n", "__________________________________________________________________________________________________\n", "activation_239 (Activation) (None, None, None, 1 0 batch_normalization_239[0][0] \n", "__________________________________________________________________________________________________\n", "activation_242 (Activation) (None, None, None, 1 0 batch_normalization_242[0][0] \n", "__________________________________________________________________________________________________\n", "activation_247 (Activation) (None, None, None, 1 0 batch_normalization_247[0][0] \n", "__________________________________________________________________________________________________\n", "activation_248 (Activation) (None, None, None, 1 0 batch_normalization_248[0][0] \n", "__________________________________________________________________________________________________\n", "mixed6 (Concatenate) (None, None, None, 7 0 activation_239[0][0] \n", " activation_242[0][0] \n", " activation_247[0][0] \n", " activation_248[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_253 (Conv2D) (None, None, None, 1 147456 mixed6[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_253 (BatchN (None, None, None, 1 576 conv2d_253[0][0] \n", "__________________________________________________________________________________________________\n", "activation_253 (Activation) (None, None, None, 1 0 batch_normalization_253[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_254 (Conv2D) (None, None, None, 1 258048 activation_253[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_254 (BatchN (None, None, None, 1 576 conv2d_254[0][0] \n", "__________________________________________________________________________________________________\n", "activation_254 (Activation) (None, None, None, 1 0 batch_normalization_254[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_250 (Conv2D) (None, None, None, 1 147456 mixed6[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_255 (Conv2D) (None, None, None, 1 258048 activation_254[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_250 (BatchN (None, None, None, 1 576 conv2d_250[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_255 (BatchN (None, None, None, 1 576 conv2d_255[0][0] \n", "__________________________________________________________________________________________________\n", "activation_250 (Activation) (None, None, None, 1 0 batch_normalization_250[0][0] \n", "__________________________________________________________________________________________________\n", "activation_255 (Activation) (None, None, None, 1 0 batch_normalization_255[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_251 (Conv2D) (None, None, None, 1 258048 activation_250[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_256 (Conv2D) (None, None, None, 1 258048 activation_255[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_251 (BatchN (None, None, None, 1 576 conv2d_251[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_256 (BatchN (None, None, None, 1 576 conv2d_256[0][0] \n", "__________________________________________________________________________________________________\n", "activation_251 (Activation) (None, None, None, 1 0 batch_normalization_251[0][0] \n", "__________________________________________________________________________________________________\n", "activation_256 (Activation) (None, None, None, 1 0 batch_normalization_256[0][0] \n", "__________________________________________________________________________________________________\n", "average_pooling2d_25 (AveragePo (None, None, None, 7 0 mixed6[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_249 (Conv2D) (None, None, None, 1 147456 mixed6[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_252 (Conv2D) (None, None, None, 1 258048 activation_251[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_257 (Conv2D) (None, None, None, 1 258048 activation_256[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_258 (Conv2D) (None, None, None, 1 147456 average_pooling2d_25[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_249 (BatchN (None, None, None, 1 576 conv2d_249[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_252 (BatchN (None, None, None, 1 576 conv2d_252[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_257 (BatchN (None, None, None, 1 576 conv2d_257[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_258 (BatchN (None, None, None, 1 576 conv2d_258[0][0] \n", "__________________________________________________________________________________________________\n", "activation_249 (Activation) (None, None, None, 1 0 batch_normalization_249[0][0] \n", "__________________________________________________________________________________________________\n", "activation_252 (Activation) (None, None, None, 1 0 batch_normalization_252[0][0] \n", "__________________________________________________________________________________________________\n", "activation_257 (Activation) (None, None, None, 1 0 batch_normalization_257[0][0] \n", "__________________________________________________________________________________________________\n", "activation_258 (Activation) (None, None, None, 1 0 batch_normalization_258[0][0] \n", "__________________________________________________________________________________________________\n", "mixed7 (Concatenate) (None, None, None, 7 0 activation_249[0][0] \n", " activation_252[0][0] \n", " activation_257[0][0] \n", " activation_258[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_261 (Conv2D) (None, None, None, 1 147456 mixed7[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_261 (BatchN (None, None, None, 1 576 conv2d_261[0][0] \n", "__________________________________________________________________________________________________\n", "activation_261 (Activation) (None, None, None, 1 0 batch_normalization_261[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_262 (Conv2D) (None, None, None, 1 258048 activation_261[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_262 (BatchN (None, None, None, 1 576 conv2d_262[0][0] \n", "__________________________________________________________________________________________________\n", "activation_262 (Activation) (None, None, None, 1 0 batch_normalization_262[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_259 (Conv2D) (None, None, None, 1 147456 mixed7[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_263 (Conv2D) (None, None, None, 1 258048 activation_262[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_259 (BatchN (None, None, None, 1 576 conv2d_259[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_263 (BatchN (None, None, None, 1 576 conv2d_263[0][0] \n", "__________________________________________________________________________________________________\n", "activation_259 (Activation) (None, None, None, 1 0 batch_normalization_259[0][0] \n", "__________________________________________________________________________________________________\n", "activation_263 (Activation) (None, None, None, 1 0 batch_normalization_263[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_260 (Conv2D) (None, None, None, 3 552960 activation_259[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_264 (Conv2D) (None, None, None, 1 331776 activation_263[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_260 (BatchN (None, None, None, 3 960 conv2d_260[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_264 (BatchN (None, None, None, 1 576 conv2d_264[0][0] \n", "__________________________________________________________________________________________________\n", "activation_260 (Activation) (None, None, None, 3 0 batch_normalization_260[0][0] \n", "__________________________________________________________________________________________________\n", "activation_264 (Activation) (None, None, None, 1 0 batch_normalization_264[0][0] \n", "__________________________________________________________________________________________________\n", "max_pooling2d_12 (MaxPooling2D) (None, None, None, 7 0 mixed7[0][0] \n", "__________________________________________________________________________________________________\n", "mixed8 (Concatenate) (None, None, None, 1 0 activation_260[0][0] \n", " activation_264[0][0] \n", " max_pooling2d_12[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_269 (Conv2D) (None, None, None, 4 573440 mixed8[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_269 (BatchN (None, None, None, 4 1344 conv2d_269[0][0] \n", "__________________________________________________________________________________________________\n", "activation_269 (Activation) (None, None, None, 4 0 batch_normalization_269[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_266 (Conv2D) (None, None, None, 3 491520 mixed8[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_270 (Conv2D) (None, None, None, 3 1548288 activation_269[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_266 (BatchN (None, None, None, 3 1152 conv2d_266[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_270 (BatchN (None, None, None, 3 1152 conv2d_270[0][0] \n", "__________________________________________________________________________________________________\n", "activation_266 (Activation) (None, None, None, 3 0 batch_normalization_266[0][0] \n", "__________________________________________________________________________________________________\n", "activation_270 (Activation) (None, None, None, 3 0 batch_normalization_270[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_267 (Conv2D) (None, None, None, 3 442368 activation_266[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_268 (Conv2D) (None, None, None, 3 442368 activation_266[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_271 (Conv2D) (None, None, None, 3 442368 activation_270[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_272 (Conv2D) (None, None, None, 3 442368 activation_270[0][0] \n", "__________________________________________________________________________________________________\n", "average_pooling2d_26 (AveragePo (None, None, None, 1 0 mixed8[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_265 (Conv2D) (None, None, None, 3 409600 mixed8[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_267 (BatchN (None, None, None, 3 1152 conv2d_267[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_268 (BatchN (None, None, None, 3 1152 conv2d_268[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_271 (BatchN (None, None, None, 3 1152 conv2d_271[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_272 (BatchN (None, None, None, 3 1152 conv2d_272[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_273 (Conv2D) (None, None, None, 1 245760 average_pooling2d_26[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_265 (BatchN (None, None, None, 3 960 conv2d_265[0][0] \n", "__________________________________________________________________________________________________\n", "activation_267 (Activation) (None, None, None, 3 0 batch_normalization_267[0][0] \n", "__________________________________________________________________________________________________\n", "activation_268 (Activation) (None, None, None, 3 0 batch_normalization_268[0][0] \n", "__________________________________________________________________________________________________\n", "activation_271 (Activation) (None, None, None, 3 0 batch_normalization_271[0][0] \n", "__________________________________________________________________________________________________\n", "activation_272 (Activation) (None, None, None, 3 0 batch_normalization_272[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_273 (BatchN (None, None, None, 1 576 conv2d_273[0][0] \n", "__________________________________________________________________________________________________\n", "activation_265 (Activation) (None, None, None, 3 0 batch_normalization_265[0][0] \n", "__________________________________________________________________________________________________\n", "mixed9_0 (Concatenate) (None, None, None, 7 0 activation_267[0][0] \n", " activation_268[0][0] \n", "__________________________________________________________________________________________________\n", "concatenate_5 (Concatenate) (None, None, None, 7 0 activation_271[0][0] \n", " activation_272[0][0] \n", "__________________________________________________________________________________________________\n", "activation_273 (Activation) (None, None, None, 1 0 batch_normalization_273[0][0] \n", "__________________________________________________________________________________________________\n", "mixed9 (Concatenate) (None, None, None, 2 0 activation_265[0][0] \n", " mixed9_0[0][0] \n", " concatenate_5[0][0] \n", " activation_273[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_278 (Conv2D) (None, None, None, 4 917504 mixed9[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_278 (BatchN (None, None, None, 4 1344 conv2d_278[0][0] \n", "__________________________________________________________________________________________________\n", "activation_278 (Activation) (None, None, None, 4 0 batch_normalization_278[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_275 (Conv2D) (None, None, None, 3 786432 mixed9[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_279 (Conv2D) (None, None, None, 3 1548288 activation_278[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_275 (BatchN (None, None, None, 3 1152 conv2d_275[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_279 (BatchN (None, None, None, 3 1152 conv2d_279[0][0] \n", "__________________________________________________________________________________________________\n", "activation_275 (Activation) (None, None, None, 3 0 batch_normalization_275[0][0] \n", "__________________________________________________________________________________________________\n", "activation_279 (Activation) (None, None, None, 3 0 batch_normalization_279[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_276 (Conv2D) (None, None, None, 3 442368 activation_275[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_277 (Conv2D) (None, None, None, 3 442368 activation_275[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_280 (Conv2D) (None, None, None, 3 442368 activation_279[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_281 (Conv2D) (None, None, None, 3 442368 activation_279[0][0] \n", "__________________________________________________________________________________________________\n", "average_pooling2d_27 (AveragePo (None, None, None, 2 0 mixed9[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_274 (Conv2D) (None, None, None, 3 655360 mixed9[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_276 (BatchN (None, None, None, 3 1152 conv2d_276[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_277 (BatchN (None, None, None, 3 1152 conv2d_277[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_280 (BatchN (None, None, None, 3 1152 conv2d_280[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_281 (BatchN (None, None, None, 3 1152 conv2d_281[0][0] \n", "__________________________________________________________________________________________________\n", "conv2d_282 (Conv2D) (None, None, None, 1 393216 average_pooling2d_27[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_274 (BatchN (None, None, None, 3 960 conv2d_274[0][0] \n", "__________________________________________________________________________________________________\n", "activation_276 (Activation) (None, None, None, 3 0 batch_normalization_276[0][0] \n", "__________________________________________________________________________________________________\n", "activation_277 (Activation) (None, None, None, 3 0 batch_normalization_277[0][0] \n", "__________________________________________________________________________________________________\n", "activation_280 (Activation) (None, None, None, 3 0 batch_normalization_280[0][0] \n", "__________________________________________________________________________________________________\n", "activation_281 (Activation) (None, None, None, 3 0 batch_normalization_281[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_282 (BatchN (None, None, None, 1 576 conv2d_282[0][0] \n", "__________________________________________________________________________________________________\n", "activation_274 (Activation) (None, None, None, 3 0 batch_normalization_274[0][0] \n", "__________________________________________________________________________________________________\n", "mixed9_1 (Concatenate) (None, None, None, 7 0 activation_276[0][0] \n", " activation_277[0][0] \n", "__________________________________________________________________________________________________\n", "concatenate_6 (Concatenate) (None, None, None, 7 0 activation_280[0][0] \n", " activation_281[0][0] \n", "__________________________________________________________________________________________________\n", "activation_282 (Activation) (None, None, None, 1 0 batch_normalization_282[0][0] \n", "__________________________________________________________________________________________________\n", "mixed10 (Concatenate) (None, None, None, 2 0 activation_274[0][0] \n", " mixed9_1[0][0] \n", " concatenate_6[0][0] \n", " activation_282[0][0] \n", "==================================================================================================\n", "Total params: 21,802,784\n", "Trainable params: 21,768,352\n", "Non-trainable params: 34,432\n", "__________________________________________________________________________________________________\n" ] }, { "data": { "text/plain": [ "NoneType" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(applications.InceptionV3(include_top=False, weights='imagenet').summary())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Training and running images on InceptionV3\n", "\n", "We first create the generator. The generator is an iterator that generates batches of images when requested using e.g. `flow( )`." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 1141 images belonging to 3 classes.\n", "Number of training samples: 1141\n", "Number of classes: 3\n" ] } ], "source": [ "datagen = ImageDataGenerator(rescale=1. / 255) \n", " \n", "generator = datagen.flow_from_directory(\n", " train_data_dir, \n", " target_size=(img_width, img_height), \n", " batch_size=batch_size, \n", " class_mode=None, \n", " shuffle=False) \n", " \n", "nb_train_samples = len(generator.filenames) \n", "num_classes = len(generator.class_indices) \n", "predict_size_train = int(math.ceil(nb_train_samples / batch_size)) \n", "print('Number of training samples:',nb_train_samples)\n", "print('Number of classes:',num_classes)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Bottleneck features\n", "\n", "The extracted features, which are the last activation maps before the fully-connected layers in the pre-trained model, are called \"bottleneck features\". The function `predict_generator( )` generates predictions for the input samples from a data generator." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "bottleneck_features_train = model.predict_generator(generator, predict_size_train) # these are numpy arrays" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2, 2, 2048)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "(1141, 2, 2, 2048)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bottleneck_features_train[0].shape\n", "bottleneck_features_train.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the next cell, we save the bottleneck features to help training our data:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "np.save('bottleneck_features_train.npy', bottleneck_features_train) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using `predict( )` we see that, indeed, `ResNet50` is able to identify some objects in the painting. The function `decode_predictions` decodes the results into a list of tuples of the form (class, description, probability). We see below that the model identifies the house in the image as a castle or mosque and shows correctly a non-zero probability of finding a seashore in the painting. In this case, `ResNet50` acts as a feature generator." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Repeating the steps for the validation data:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 359 images belonging to 3 classes.\n", "Number of testing samples: 359\n" ] } ], "source": [ "generator = datagen.flow_from_directory( \n", " validation_data_dir, \n", " target_size=(img_width, img_height), \n", " batch_size=batch_size, \n", " class_mode=None, \n", " shuffle=False) \n", " \n", "nb_validation_samples = len(generator.filenames) \n", " \n", "predict_size_validation = int(math.ceil(nb_validation_samples / batch_size)) \n", "print('Number of testing samples:',nb_validation_samples)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "bottleneck_features_validation = model.predict_generator( \n", " generator, predict_size_validation) \n", " \n", "np.save('bottleneck_features_validation.npy', bottleneck_features_validation) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Training the fully-connected network (the top-model)\n", "\n", "We now load the features just obtained, get the class labels for the training set and convert the latter into categorial vectors:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 1141 images belonging to 3 classes.\n" ] } ], "source": [ "datagen_top = ImageDataGenerator(rescale=1./255) \n", "generator_top = datagen_top.flow_from_directory(\n", " train_data_dir, \n", " target_size=(img_width, img_height), \n", " batch_size=batch_size, \n", " class_mode='categorical', \n", " shuffle=False) \n", " \n", "nb_train_samples = len(generator_top.filenames) \n", "num_classes = len(generator_top.class_indices) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Loading the features:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "train_data = np.load('bottleneck_features_train.npy') " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Converting training data into vectors of categories:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Classes before dummification: [0 0 0 ... 2 2 2]\n", "Classes after dummification:\n", "\n", " [[1. 0. 0.]\n", " [1. 0. 0.]\n", " [1. 0. 0.]\n", " ...\n", " [0. 0. 1.]\n", " [0. 0. 1.]\n", " [0. 0. 1.]]\n" ] } ], "source": [ "train_labels = generator_top.classes \n", "print('Classes before dummification:',train_labels) \n", "train_labels = to_categorical(train_labels, num_classes=num_classes) \n", "print('Classes after dummification:\\n\\n',train_labels) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Again repeating the process with the validation data:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 359 images belonging to 3 classes.\n" ] } ], "source": [ "generator_top = datagen_top.flow_from_directory(\n", " validation_data_dir, \n", " target_size=(img_width, img_height), \n", " batch_size=batch_size, \n", " class_mode=None, \n", " shuffle=False) \n", " \n", "nb_validation_samples = len(generator_top.filenames) " ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "validation_data = np.load('bottleneck_features_validation.npy') " ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "validation_labels = generator_top.classes \n", "validation_labels = to_categorical(validation_labels, num_classes=num_classes) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Building the small FL model using bottleneck features as input" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train on 1141 samples, validate on 359 samples\n", "Epoch 1/100\n", "1141/1141 [==============================] - 11s 9ms/step - loss: 2.0881 - acc: 0.5451 - val_loss: 0.6892 - val_acc: 0.5162\n", "Epoch 2/100\n", "1141/1141 [==============================] - 7s 7ms/step - loss: 1.1520 - acc: 0.5504 - val_loss: 0.6889 - val_acc: 0.5395\n", "Epoch 3/100\n", "1141/1141 [==============================] - 9s 8ms/step - loss: 0.9261 - acc: 0.5828 - val_loss: 0.6833 - val_acc: 0.6667\n", "Epoch 4/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.7618 - acc: 0.6377 - val_loss: 0.6764 - val_acc: 0.6667\n", "Epoch 5/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.7100 - acc: 0.6506 - val_loss: 0.6688 - val_acc: 0.6667\n", "Epoch 6/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.6894 - acc: 0.6564 - val_loss: 0.6629 - val_acc: 0.6667\n", "Epoch 7/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6817 - acc: 0.6564 - val_loss: 0.6582 - val_acc: 0.6667\n", "Epoch 8/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6646 - acc: 0.6620 - val_loss: 0.6529 - val_acc: 0.6667\n", "Epoch 9/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6609 - acc: 0.6611 - val_loss: 0.6496 - val_acc: 0.6667\n", "Epoch 10/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6547 - acc: 0.6640 - val_loss: 0.6464 - val_acc: 0.6667\n", "Epoch 11/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6498 - acc: 0.6658 - val_loss: 0.6444 - val_acc: 0.6667\n", "Epoch 12/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6476 - acc: 0.6635 - val_loss: 0.6431 - val_acc: 0.6667\n", "Epoch 13/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6472 - acc: 0.6687 - val_loss: 0.6421 - val_acc: 0.6667\n", "Epoch 14/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6383 - acc: 0.6684 - val_loss: 0.6410 - val_acc: 0.6667\n", "Epoch 15/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6428 - acc: 0.6664 - val_loss: 0.6406 - val_acc: 0.6667\n", "Epoch 16/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6456 - acc: 0.6661 - val_loss: 0.6405 - val_acc: 0.6667\n", "Epoch 17/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6360 - acc: 0.6655 - val_loss: 0.6399 - val_acc: 0.6667\n", "Epoch 18/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6394 - acc: 0.6693 - val_loss: 0.6388 - val_acc: 0.6667\n", "Epoch 19/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6381 - acc: 0.6673 - val_loss: 0.6388 - val_acc: 0.6667\n", "Epoch 20/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6315 - acc: 0.6699 - val_loss: 0.6381 - val_acc: 0.6667\n", "Epoch 21/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6302 - acc: 0.6678 - val_loss: 0.6372 - val_acc: 0.6667\n", "Epoch 22/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6333 - acc: 0.6684 - val_loss: 0.6373 - val_acc: 0.6667\n", "Epoch 23/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6253 - acc: 0.6693 - val_loss: 0.6350 - val_acc: 0.6667\n", "Epoch 24/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6258 - acc: 0.6710 - val_loss: 0.6328 - val_acc: 0.6667\n", "Epoch 25/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.6290 - acc: 0.6699 - val_loss: 0.6387 - val_acc: 0.6667\n", "Epoch 26/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.6214 - acc: 0.6710 - val_loss: 0.6362 - val_acc: 0.6667\n", "Epoch 27/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.6270 - acc: 0.6743 - val_loss: 0.6289 - val_acc: 0.6667\n", "Epoch 28/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6067 - acc: 0.6786 - val_loss: 0.6241 - val_acc: 0.6667\n", "Epoch 29/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.6300 - acc: 0.6728 - val_loss: 0.6186 - val_acc: 0.6667\n", "Epoch 30/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.6143 - acc: 0.6748 - val_loss: 0.6254 - val_acc: 0.6667\n", "Epoch 31/100\n", "1141/1141 [==============================] - 7s 7ms/step - loss: 0.6055 - acc: 0.6819 - val_loss: 0.6178 - val_acc: 0.6667\n", "Epoch 32/100\n", "1141/1141 [==============================] - 7s 7ms/step - loss: 0.6077 - acc: 0.6766 - val_loss: 0.6134 - val_acc: 0.6667\n", "Epoch 33/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.6089 - acc: 0.6769 - val_loss: 0.6127 - val_acc: 0.6667\n", "Epoch 34/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.6073 - acc: 0.6822 - val_loss: 0.6172 - val_acc: 0.6667\n", "Epoch 35/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.5992 - acc: 0.6868 - val_loss: 0.6035 - val_acc: 0.6667\n", "Epoch 36/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.5829 - acc: 0.6933 - val_loss: 0.5998 - val_acc: 0.6741\n", "Epoch 37/100\n", "1141/1141 [==============================] - 7s 7ms/step - loss: 0.5954 - acc: 0.6871 - val_loss: 0.6113 - val_acc: 0.6667\n", "Epoch 38/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.5815 - acc: 0.6997 - val_loss: 0.5970 - val_acc: 0.6667\n", "Epoch 39/100\n", "1141/1141 [==============================] - 9s 8ms/step - loss: 0.5909 - acc: 0.7035 - val_loss: 0.6026 - val_acc: 0.6667\n", "Epoch 40/100\n", "1141/1141 [==============================] - 10s 9ms/step - loss: 0.5967 - acc: 0.7000 - val_loss: 0.5928 - val_acc: 0.6667\n", "Epoch 41/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.5772 - acc: 0.7128 - val_loss: 0.5862 - val_acc: 0.6695\n", "Epoch 42/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.5595 - acc: 0.7204 - val_loss: 0.5464 - val_acc: 0.7140\n", "Epoch 43/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.5503 - acc: 0.7260 - val_loss: 0.5634 - val_acc: 0.7047\n", "Epoch 44/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.5751 - acc: 0.7017 - val_loss: 0.5466 - val_acc: 0.7270\n", "Epoch 45/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.5538 - acc: 0.7155 - val_loss: 0.5375 - val_acc: 0.7159\n", "Epoch 46/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.5611 - acc: 0.7155 - val_loss: 0.5113 - val_acc: 0.7307\n", "Epoch 47/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.5330 - acc: 0.7309 - val_loss: 0.5145 - val_acc: 0.7233\n", "Epoch 48/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.5614 - acc: 0.7096 - val_loss: 0.5104 - val_acc: 0.7326\n", "Epoch 49/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.5503 - acc: 0.7245 - val_loss: 0.5418 - val_acc: 0.7103\n", "Epoch 50/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.5288 - acc: 0.7327 - val_loss: 0.5266 - val_acc: 0.7149\n", "Epoch 51/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.5171 - acc: 0.7365 - val_loss: 0.5271 - val_acc: 0.7196\n", "Epoch 52/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.5515 - acc: 0.7219 - val_loss: 0.5054 - val_acc: 0.7289\n", "Epoch 53/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.5327 - acc: 0.7306 - val_loss: 0.5284 - val_acc: 0.7149\n", "Epoch 54/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.5272 - acc: 0.7333 - val_loss: 0.5085 - val_acc: 0.7279\n", "Epoch 55/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.5529 - acc: 0.7236 - val_loss: 0.5148 - val_acc: 0.7224\n", "Epoch 56/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.5332 - acc: 0.7286 - val_loss: 0.5071 - val_acc: 0.7270\n", "Epoch 57/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.5040 - acc: 0.7438 - val_loss: 0.5283 - val_acc: 0.7168\n", "Epoch 58/100\n", "1141/1141 [==============================] - 7s 7ms/step - loss: 0.5262 - acc: 0.7356 - val_loss: 0.5099 - val_acc: 0.7437\n", "Epoch 59/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.5072 - acc: 0.7458 - val_loss: 0.5100 - val_acc: 0.7521\n", "Epoch 60/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.5077 - acc: 0.7417 - val_loss: 0.5012 - val_acc: 0.7419\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 61/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.4850 - acc: 0.7444 - val_loss: 0.4959 - val_acc: 0.7586\n", "Epoch 62/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.4797 - acc: 0.7543 - val_loss: 0.5178 - val_acc: 0.7549\n", "Epoch 63/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.4812 - acc: 0.7523 - val_loss: 0.5022 - val_acc: 0.7493\n", "Epoch 64/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.4847 - acc: 0.7502 - val_loss: 0.5773 - val_acc: 0.7642\n", "Epoch 65/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.4638 - acc: 0.7584 - val_loss: 0.5520 - val_acc: 0.7577\n", "Epoch 66/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.4509 - acc: 0.7680 - val_loss: 0.5132 - val_acc: 0.7474\n", "Epoch 67/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.4727 - acc: 0.7572 - val_loss: 0.5313 - val_acc: 0.7549\n", "Epoch 68/100\n", "1141/1141 [==============================] - 7s 7ms/step - loss: 0.4962 - acc: 0.7476 - val_loss: 0.5024 - val_acc: 0.7419\n", "Epoch 69/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.4667 - acc: 0.7523 - val_loss: 0.5785 - val_acc: 0.7707\n", "Epoch 70/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.4522 - acc: 0.7639 - val_loss: 0.5848 - val_acc: 0.7669\n", "Epoch 71/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.4753 - acc: 0.7508 - val_loss: 0.5101 - val_acc: 0.7465\n", "Epoch 72/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.4514 - acc: 0.7628 - val_loss: 0.7056 - val_acc: 0.7586\n", "Epoch 73/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.4521 - acc: 0.7625 - val_loss: 0.6092 - val_acc: 0.7688\n", "Epoch 74/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.4256 - acc: 0.7713 - val_loss: 0.6536 - val_acc: 0.7660\n", "Epoch 75/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.4273 - acc: 0.7683 - val_loss: 0.5098 - val_acc: 0.7781\n", "Epoch 76/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.4464 - acc: 0.7631 - val_loss: 0.5127 - val_acc: 0.7716\n", "Epoch 77/100\n", "1141/1141 [==============================] - 7s 7ms/step - loss: 0.4477 - acc: 0.7604 - val_loss: 0.6532 - val_acc: 0.7567\n", "Epoch 78/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.4260 - acc: 0.7710 - val_loss: 0.6301 - val_acc: 0.7669\n", "Epoch 79/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.4279 - acc: 0.7745 - val_loss: 0.5796 - val_acc: 0.7651\n", "Epoch 80/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.4192 - acc: 0.7718 - val_loss: 0.6002 - val_acc: 0.7679\n", "Epoch 81/100\n", "1141/1141 [==============================] - 7s 7ms/step - loss: 0.4291 - acc: 0.7753 - val_loss: 0.6881 - val_acc: 0.7623\n", "Epoch 82/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.4175 - acc: 0.7748 - val_loss: 0.5897 - val_acc: 0.7623\n", "Epoch 83/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.4091 - acc: 0.7791 - val_loss: 0.5913 - val_acc: 0.7837\n", "Epoch 84/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.4593 - acc: 0.7648 - val_loss: 0.5414 - val_acc: 0.7604\n", "Epoch 85/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.4384 - acc: 0.7739 - val_loss: 0.6986 - val_acc: 0.7669\n", "Epoch 86/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.4354 - acc: 0.7689 - val_loss: 0.5528 - val_acc: 0.7493\n", "Epoch 87/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.4276 - acc: 0.7730 - val_loss: 0.6663 - val_acc: 0.7539\n", "Epoch 88/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.4430 - acc: 0.7642 - val_loss: 0.5774 - val_acc: 0.7716\n", "Epoch 89/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.4170 - acc: 0.7736 - val_loss: 0.5437 - val_acc: 0.7781\n", "Epoch 90/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.3802 - acc: 0.7826 - val_loss: 0.6280 - val_acc: 0.7716\n", "Epoch 91/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.3738 - acc: 0.7923 - val_loss: 0.6289 - val_acc: 0.7809\n", "Epoch 92/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.3825 - acc: 0.7824 - val_loss: 0.6491 - val_acc: 0.7734\n", "Epoch 93/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.3849 - acc: 0.7870 - val_loss: 0.6365 - val_acc: 0.7855\n", "Epoch 94/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.3839 - acc: 0.7835 - val_loss: 0.6183 - val_acc: 0.7883\n", "Epoch 95/100\n", "1141/1141 [==============================] - 8s 7ms/step - loss: 0.3926 - acc: 0.7794 - val_loss: 0.8045 - val_acc: 0.7772\n", "Epoch 96/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.3915 - acc: 0.7479 - val_loss: 0.9111 - val_acc: 0.7679\n", "Epoch 97/100\n", "1141/1141 [==============================] - 7s 7ms/step - loss: 0.4029 - acc: 0.7423 - val_loss: 0.8113 - val_acc: 0.7790\n", "Epoch 98/100\n", "1141/1141 [==============================] - 7s 7ms/step - loss: 0.4213 - acc: 0.7213 - val_loss: 0.5641 - val_acc: 0.7632\n", "Epoch 99/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.4014 - acc: 0.7426 - val_loss: 0.6712 - val_acc: 0.7772\n", "Epoch 100/100\n", "1141/1141 [==============================] - 7s 6ms/step - loss: 0.4086 - acc: 0.7564 - val_loss: 0.6618 - val_acc: 0.7632\n", "359/359 [==============================] - 0s 623us/step\n", "[INFO] accuracy: 76.32%\n", "[INFO] Loss: 0.661828470014264\n" ] } ], "source": [ "model = Sequential() \n", "model.add(Flatten(input_shape=train_data.shape[1:])) \n", "# model.add(Dense(1024, activation='relu')) \n", "# model.add(Dropout(0.5))\n", "model.add(Dense(512, activation='relu')) \n", "model.add(Dropout(0.5)) \n", "model.add(Dense(256, activation='relu')) \n", "model.add(Dropout(0.5)) \n", "model.add(Dense(128, activation='relu')) \n", "model.add(Dropout(0.5)) \n", "model.add(Dense(64, activation='relu')) \n", "model.add(Dropout(0.5)) \n", "model.add(Dense(32, activation='relu')) \n", "model.add(Dropout(0.5)) \n", "model.add(Dense(16, activation='relu')) \n", "model.add(Dropout(0.5)) \n", "model.add(Dense(8, activation='relu')) # Not valid for minimum = 500\n", "model.add(Dropout(0.5)) \n", "# model.add(Dense(4, activation='relu')) # Not valid for minimum = 500\n", "# model.add(Dropout(0.5)) \n", "model.add(Dense(num_classes, activation='sigmoid')) \n", " \n", "model.compile(optimizer='Adam', \n", " loss='binary_crossentropy', metrics=['accuracy']) \n", " \n", "history = model.fit(train_data, train_labels, \n", " epochs=epochs, \n", " batch_size=batch_size, \n", " validation_data=(validation_data, validation_labels)) \n", " \n", "model.save_weights(top_model_weights_path) \n", " \n", "(eval_loss, eval_accuracy) = model.evaluate(\n", " validation_data, validation_labels, \n", " batch_size=batch_size, verbose=1)\n", "\n", "print(\"[INFO] accuracy: {:.2f}%\".format(eval_accuracy * 100)) \n", "print(\"[INFO] Loss: {}\".format(eval_loss)) " ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2, 2, 2048)" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "train_data.shape[1:]" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "# model.evaluate( \n", "# validation_data, validation_labels, batch_size=batch_size, verbose=1) " ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "# model.predict_classes(validation_data)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "# model.metrics_names" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "#top_k_categorical_accuracy(y_true, y_pred, k=5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting the accuracy history" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "Text(0.5,1,'model accuracy')" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "Text(0,0.5,'accuracy')" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "Text(0.5,0,'epoch')" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(1) \n", " \n", " # summarize history for accuracy \n", " \n", "plt.subplot(211) \n", "plt.plot(history.history['acc']) \n", "plt.plot(history.history['val_acc']) \n", "plt.title('model accuracy') \n", "plt.ylabel('accuracy') \n", "plt.xlabel('epoch') \n", "#pylab.ylim([0.4,0.68])\n", "plt.legend(['train', 'test'], loc='upper left') " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting the loss history" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "Text(0.5,1,'model loss')" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "Text(0,0.5,'loss')" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "Text(0.5,0,'epoch')" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "(0, 60)" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pylab\n", "plt.subplot(212) \n", "plt.plot(history.history['loss']) \n", "plt.plot(history.history['val_loss']) \n", "plt.title('model loss') \n", "plt.ylabel('loss') \n", "plt.xlabel('epoch') \n", "plt.legend(['train', 'test'], loc='upper left') \n", "pylab.xlim([0,60])\n", "# pylab.ylim([0,1000])\n", "plt.show() " ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "image/png": "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jjrkGA5JklR0p59+OnPnzuWnP/0pxx9//Pr9r732Gm95y1v46Ec/ytvf/naGDRvGSy+9xO23386ECROYMWNGmwXsUkrMnz8fgMMOO4x99tmHyy67jD322KNidy/VHwNHHXIMhyRJxbDzv/6s1lXostlffsdWu9f999/P//zP/3DGGWe0CRsA2267LRdeeCHve9/7uO222/jABz6w/lhTU9NGq2VHBNtuu+1Wqbd6hoGjDq1c08rada009nOIjSRJKp4HHngAyMZwVGqFmDNnDgCzZs0CYMyYMRx11FH8+te/5pBDDuFd73oXRx55JIcddhgDBw7cavVWzzBw1Kllq9YxdLCBQ5IkFc9rr70GZAO7f/azjluBli5duv7n2267jUsvvZQf/vCHXHDBBQAMHjyY9773vXzta19jxIgRPVtp9RgDR51aunotQwf3r3U1JElSJ7ZmN6UiGTp0KADXX389/+f//J8ulWlpaeHSSy/l0ksv5dlnn+Xee+/l+uuv57vf/S4vvvgid955Z09WWT3If0KvUw4clyRJRfXGN74RgJkzZ3ar/Lhx4/jABz7AXXfdxdixY/nVr37FihUrAOjXrx8A69atq05l1eMMHHXKgeOSJKmoJk6cyEEHHcSNN97If//3f1c855FHHmHBggUAvPjiizz88MMbnbNkyRKWLVvGgAED1geNQYMGMWjQIJ577rmeewGqKrtU1SkX/5MkSUUVEdxyyy1MmTKF0047jSuuuIJDDz2UbbbZhueff55HHnmExx9/nL/+9a8MHz6cZ555hiOPPJL999+f8ePHM3bsWBYuXMjtt9/OwoUL+fznP8+AAQPWX3/KlCnccccdnHzyyey///40NjZy9NFHr29ZUX0xcNQpu1RJkqQi23XXXXnkkUf45je/yU9+8hO+973vkVJizJgx7LvvvnzmM5/h9a9/PQB77bUXF110ETNmzOA3v/kNr732Gttuuy177703V155Jaecckqba1977bWce+65zJgxg+nTp9Pa2srAgQMNHHXKwFGn7FIlSZLq1ezZs7t03rBhw7j44ou5+OKLOz1v5MiRXHLJJV2+/9ixY7nlllu6fL5qq1BjOCJi24j4cET8JCKeiogVEbEoIn4bER+KiM16PRGxY0R8NyJejIhVETE7Iq6MiOGdlNknIm6OiFciYmVEPBERl0TEoC1/hRvYwiFJkqTeoGgtHKcC1wAvAfcAzwGjgJOA64C3RcSpKaW0qQtFxG7A74DtgZ8CjwOHAZ8E3hoRb0kpvdauzOHA3UB/4FbgeWAycBEwJSKmpJRWVeOF2sIhSZKk3qBogeNJ4HjgZyml1tLOiPg88EfgZLLw8aMuXOv/koWNT6SUriq71teB84B/Bz5atr8fcAMwGDghpXRbvr8BuDm/93nAl7fg9a23dJVTvUmSJKn4CtWlKqV0d0rp9vKwke+fC1ybP520qetExK7AscBs4D/aHb4YWAa8PyKay/ZPBPYG7iuFjfzercC/5E8/GhHR5RfUCbtUSZIkqTcoVODYhDX5tivf1Cfn219VCC9LgPvJWjLeWKHML9pfLKX0DFnryzhg182oc4cMHJIkSeoNitalqqKIaAQ+kD/dKBBUsGe+fbKD438jawHZA7hrM8rskT+e3kR9H+rg0F6lH5YYOCRJktQL9JYWji8D+wE/Tyn9sgvnD823izo4Xto/bAvLdJstHJIkSeoNCt/CERGfAD5NNsvU+6t12Xy7ydmuulMmpXRwxQtkLR8HgYFDkiRJvUOhWzgi4mPAN4HHgKNSSvO7WLTUGjG0g+PbtDuvu2W6zWlxJUmS1BsUNnBExLnA1cCjZGFj7mYUfyLf7tHB8d3zbfl4je6U6TYDhyRJknqDQgaOiPgs8A3gT2Rh45XNvMQ9+fbY9quTR8QQ4C3ACuD3ZYfuzrdvrVCfXcmCyLPAM5tZl4qWuQ6HJEmSeoHCBY6IuJBskPhDwJSU0rxOzu0fEXvlq4qvl1J6GvgVsDPwsXbFLgGage+llJaV7b8XmAVMiIjjy+7RAHwlf3ptV1Y574plq9dSpUtJkiRJNVOoQeMR8UHgC8A6YCbwiQrr7M1OKU3Lfx5LFhKeJQsX5f4Z+B3wrYiYkp93OHAUWbeofys/OaW0LiLOJGvpuDUibgWeA6YAh5Ct3fGNKrzG/H6wfPU6mpsK9SuSJEmS2ihaC8cu+bYfcC7ZquDtH2d05UJ5K8chwDSyoPFpYDfgW8CbUkqvVSjzB+BQ4Kdk63ScRzaI/AvAMSmlVd17WRv0a9gQoJypSpIk9RVPPfUUEcGHP/zhNvvf9773ERG88MILXb7WjjvuyOtf//pqV7GNjuqrjRUqcKSUpqaUYhOPSWXnz8737dzB9Z5PKZ2ZUhqTUhqQUhqXUvpkZ7NdpZQeSymdmlIamVJqSintkVK6OKW0ohqvsSxvuPifJEmqudNOO42I4JprrtnkuccccwwRwfTp07dCzXrW2rVriQiOPvroWlel8AoVOPqChrCFQ5Ik1Y+zzjoLgO985zudnjd79mzuuusuxowZw3HHHVe1+3/ta19j1qxZjB49umrXrIZx48Yxa9YsvvSlL9W6KnXPwFFnGsqaOJwaV5Ik1dqkSZPYY489eOSRR3j44Yc7PO/6668npcSZZ55JY2P1xqCOGTOGvfbaq6rXrIb+/fuz11571V0QqkcGjjrTr00Lh1PjSpKk2vunf/onoONWjnXr1nHDDTe0GdMwZ84cLrnkEt785jczevRoBgwYwNixYzn99NN5/PHHu3zvjsZwpJT41re+xT777ENTUxNjx47lE5/4BIsXL654nYULF/LVr36Vo446irFjxzJgwAC23357TjzxRP74xz+2Ofe6666jf//+ANx1111ExPpHqUWjszEcL774ImeffTbjxo2jqamJ7bffnpNPPplHHnlko3Ovu+46IoIbb7yRu+66i4kTJ9LS0sLQoUN55zvfyRNPPLFRmaIxcNSZ8jEcS1etqV1FJEmSch/84AcZMGAAP/jBD1i+fPlGx++8807mzJnD0UcfzS67ZHP83HPPPXz1q19lxIgRnHzyyZx77rkcdthh3HzzzRx22GE8+uijW1Snc845h09+8pMsWrSIj3zkI7znPe/hjjvu4Nhjj2XNmo2/Qz366KNccMEFNDY28s53vpNPfepTTJkyhV//+tccccQR/OY3v1l/7kEHHcSFF14IwC677MLFF1+8/jFhwoRO6/X0009z8MEHc+2117LHHnvwqU99imOOOYbbb7+dN73pTdx5550Vy02fPp23vvWtDBs2jLPPPps3v/nN3HHHHUycOJH58zscXlwMKSUfdfIAHhq1695p3GfvSOM+e0f63gOzkyRJqp3HHnssPfbYY7WuRl1497vfnYB0ww03bHTs+OOPT0C65ZZb1u+bO3duWrJkyUbnPvzww2nw4MHpuOOOa7P/b3/7WwLShz70oTb7Tz/99ASk559/fv2+e++9NwFp9913T/Pnz1+/f/ny5enQQw9NQNptt93aXGfBggVp3rx5G9Vn9uzZadSoUWm//fZrs3/NmjUJSFOmTKnwbnRc38mTJycgffnLX26z/7777ksNDQ1p5MiRadmyZev3f+c730lAamxsTPfcc0+bMueff34C0hVXXFGxDpV09TN70EEHJeChtBW+49ZXZzi161LlGA5Jkura1KG1rkHXTV20RcXPOussbr75Zq677jrOOOOM9ftfeuklfv7znzNq1ChOOOGE9ftHjRpV8ToHHnggEydO5K677mLdunX069dvs+tyww03AHDhhRcyfPjw9fsHDRrEpZdeyjHHHLNRmWHDhlW81rhx4zjppJO45pprePHFF9lhhx02uz4ls2fP5u6772aXXXbh05/+dJtjRx55JO9+97u56abc0ARHAAAgAElEQVSbmD59Oqeddlqb46effjqTJk1qs++ss87i8ssv36jLV9HYparONLgOhyRJqkOTJ09mt9124/7772fWrFnr999www2sXbuWM844Y/24h5LbbruNd7zjHYwePZr+/fuvHwdx5513smLFim53FSoNXp84ceJGxyZMmEBDQ+WvuDNnzuTUU09lp512oqmpaX19SlP+zpkzp1v1KSmN0ZgwYULFQe6TJ09uc165Qw45ZKN9O+20EwALFizYonrVmi0cdabNOhwrDRySJKk+lAZIf+5zn+O6667jiiuuIKXEd7/73YqDp7/+9a/z6U9/mhEjRnD00Uczbtw4Bg0aRETw4x//mL/+9a+sWtW9NZMXLcpaayq1ogwYMKBNq0fJLbfcwnvf+14GDRrEMcccw6677kpzczMNDQ3cfffdzJw5s9v1aV+vMWPGVDxe2r9w4cKNjlVqgSmFlnXrij2RkIGjzvSLoDX/2RYOSZLq3BZ2UyqaM888k4suuojvfe97XHbZZcycOZOnn36ayZMnt1nZe82aNUydOpUddtiBhx9+eKNgMHPmzC2qx9ChWVe2l19+mde97nVtjq1evZoFCxZs9AX+wgsvZODAgTz00EPsueeebY49//zzW1yn8nrNnTu34vGXXnqpzXl9hV2q6kybLlWrDRySJKl+jBo1iuOPP5558+Yxffp0rrvuOmDD4oAlL7/8MkuWLOGII47YKGwsXry4YpeizXHQQQcBcO+992507L777qO1tXWj/U8//TT77bffRmFj3bp13H///RudX+qWtTmtCwceeCCQBapK5e6555429e8rDBx1pnyl8aWuwyFJkupMaU2OK664gp/85CeMHDmSd73rXW3OGTNmDAMHDuTBBx9k2bJl6/evXr2aj3/841s8JuHMM88E4Itf/GKb7kkrVqzg85//fMUy48aN44knnmjT+pBS4qKLLqq41kVDQwPDhw/nueee63K9dt55Z4466iiefvpprrrqqjbH7r//fn74wx+y7bbbthlc3xfYparO9CtfaXyl63BIkqT6cuyxx7LLLrusnznpnHPOYcCAAW3O6devH+eccw6XX345+++/P8cffzyrVq3i7rvvZtGiRUycOLFi60RXTZgwgbPPPptrrrmGfffdl1NOOYXGxkamT5/Odtttx/bbb79RmfPOO49zzjmH8ePHc/LJJ9PY2MjMmTN58sknOe6447jjjjs2KjNlyhRuvfVWTjjhBA488EAaGxuZNGkSRxxxRId1+/a3v80RRxzBeeedx5133snBBx/Mc889xy233EJjYyPTpk2jubm526+9iGzhqDPlg8ZdaVySJNWbiOBDH/rQ+uelFo/2LrvsMr761a/S1NTEt7/9baZPn87hhx/Ogw8+yI477rjF9bj66qu58sor2Wabbbj22mu56aabePvb386vfvWrjWbLAvjYxz7G9ddfz6hRo7jhhhv4r//6L3beeWf+8Ic/cMABB1S8x1VXXcV73/teHnjgAb74xS9y4YUXMmPGjE7rtfvuu/PQQw/xkY98hFmzZnH55Zfzi1/8gne84x3cf//9HHfccVv82osmUrbgnOpARDy03xvGH7TkbV8CYOywQdz/r5NrXCtJkvqu0vSve++9d41rInVNVz+zBx98MA8//PDDKaWDe7pOtnDUGQeNS5IkqTcxcNSZ9iuN2wIlSZKkIjNw1JkI6N8vCx1r1iVWrd14WjdJkiSpKAwcdai5acPkYS7+J0mSpCIzcNSh5gHlgcOZqiRJklRcBo46NGTghsCx1BYOSZIkFZiBow6Vd6kycEiSJKkr6nWyIQNHHXIMhyRJ9SHy2SNbW53ERfWvFDiibNbTemDgqEMtTf3W/2wLhyRJtdPU1ATAsmXLalwTadNKn9PS57ZeGDjqUIstHJIk1YUhQ4YAMHfuXJYsWUJra2vddltR35RSorW1lSVLljB37lxgw+e2XjRu+hRtbY7hkCSpPowYMYJly5axfPlyXnjhhVpXR9qkwYMHM2LEiFpXow0DRx1qMXBIklQXGhoa2GmnnZg/fz5Llixh1apVtnCo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\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 277, "width": 398 } }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import pylab\n", "%matplotlib inline\n", "%config InlineBackend.figure_format = 'retina'\n", "fig = plt.figure()\n", "plt.plot(history.history['loss'])\n", "plt.plot(history.history['val_loss'])\n", "plt.title('Classification Model Loss')\n", "plt.xlabel('Epoch')\n", "plt.ylabel('Loss')\n", "pylab.xlim([0,60])\n", "plt.legend(['Test', 'Validation'], loc='upper right')\n", "fig.savefig('loss.png')\n", "plt.show();" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "image/png": "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JWo0XsTB65IkqXwuvPBCAO68884t5ps/fz7Tpk1jyJAhnHTSSW32+t/+9reZN28egwcPbrNrtoVhw4Yxb948/vEf/7HcRSk0g5FK5OB1SZJUIY4++mj2228/5s6dy5w5c1rMd9ddd5FS4oILLqCqqu2WJBgyZAgHHHBAm16zLXTr1o0DDjig4oKkojEYqUSlg9eH2DIiSZLK6wtf+ALQcuvIxo0bmTJlSqMxFAsXLuS6667j8MMPZ/DgwVRXVzN06FDOOeccXnzxxVa/dktjRlJKfP/73+cDH/gANTU1DB06lK985Su8++67zV5nxYoV3HTTTUyYMIGhQ4dSXV3N7rvvzsc//nF+97vfNco7efJkunXrBsC0adOIiIatviVkS2NGFi1axMUXX8ywYcOoqalh99135/TTT2fu3Lmb5Z08eTIRwX333ce0adMYP348u+yyC3369OHkk0/mpZdeavW/VREZjFSajevhvSXZ4269YODI8pZHkiTt9M477zyqq6v5yU9+wurVqzc7/uSTT7Jw4UKOOeYYRowYAcDTTz/NTTfdRP/+/Tn99NO59NJLGTt2LA8++CBjx47lT3/60w6V6ZJLLuGrX/0qK1eu5Itf/CJnnnkmjz/+OMcddxzr16/fLP+f/vQnrrzySqqqqjj55JP52te+xqRJk/jlL3/JkUceya9+9auGvKNHj+aqq64CYMSIEVxzzTUN27hx47ZYrldffZUxY8Zwxx13sN9++/G1r32NY489lscee4yPfvSjPPnkk82eN3XqVI4//nj69u3LxRdfzOGHH87jjz/O+PHjWb58+Q78S1W4lJJbhWzA7NEf2Dela3bNtrs+liRJUvm88MIL6YUXXih3MSrCpz71qQSkKVOmbHbslFNOSUB66KGHGtKWLFmSamtrN8s7Z86c1LNnz3TSSSc1Sv/zn/+cgPS5z32uUfo555yTgLRgwYKGtGeeeSYBaeTIkWn58uUN6atXr06HHXZYAtI+++zT6DrvvPNOWrp06WblmT9/fho0aFA68MADG6WvX78+AWnSpEnN/Gu0XN6JEycmIN14442N0p999tnUpUuXNHDgwLRq1aqG9DvvvDMBqaqqKj399NONzrniiisSkG655ZZmy9Cc1tbZ0aNHJ2B2KvPv38rqfCdYX/LXBseLSJJU2a7tU+4StN61K3fo9AsvvJAHH3yQyZMnc/755zekL168mJ///OcMGjSIU089tSF90KBBzV7nkEMOYfz48UybNo2NGzfSteu2zxo6ZcoUAK666ir69evXkN6jRw+uv/56jj322M3O6du3b7PXGjZsGKeddhq33347ixYtYo899tjm8tSbP38+06dPZ8SIEVx++eWNjh111FF86lOf4v7772fq1KmcffbZjY6fc845HH300Y3SLrzwQm6++ebNupF1JnbTqjQGI5IkqQJNnDiRffbZh1mzZjFv3ryG9ClTprBhwwbOP//8hnEW9R599FFOPPFEBg8eTLdu3RrGXTz55JOsWbNmu7sf1Q+kHz9+/GbHxo0bR5cuzf/EnTlzJp/85CfZa6+9qKmpaShP/bTFCxcu3K7y1KsfEzJu3LhmB9xPnDixUb5Shx566GZpe+21FwDvvPPODpWrktkyUmnWrwFqsscOXpckSRWifrD2N77xDSZPnswtt9xCSom777672YHc3/nOd7j88svp378/xxxzDMOGDaNHjx5EBP/+7//O888/z7p167arLCtXZq08zbW+VFdXN2otqffQQw9x1lln0aNHD4499lj23ntvevXqRZcuXZg+fTozZ87c7vI0LdeQIUOaPV6fvmLFis2ONddyUx/QbNy4cYfKVckMRipN3XqgBqp3gQHtu3KoJEnaQTvY9aloLrjgAq6++mruvfdebrjhBmbOnMmrr77KxIkTG614vn79eq699lr22GMP5syZs1nQMHPmzB0qR58+Wfe4v/zlL/zVX/1Vo2Pvv/8+77zzzmY/7q+66iq6d+/O7Nmz2X///RsdW7BgwQ6XqbRcS5Ysafb44sWLG+WT3bQq15APQQtNjJIkSeUwaNAgTjnlFJYuXcrUqVOZPHkysGlhxHp/+ctfqK2t5cgjj9wsEHn33Xeb7aa0LUaPHg3AM888s9mxZ599lrq6us3SX331VQ488MDNApGNGzcya9aszfLXd/XallaJQw7JutjPnDmz2fOefvrpRuWXwUjlcryIJEmqQPVrjtxyyy387Gc/Y+DAgXziE59olGfIkCF0796d3//+96xataoh/f333+fLX/7yDo+BuOCCCwD41re+1ajL05o1a/jmN7/Z7DnDhg3jpZdeatRqkVLi6quvbnYtjy5dutCvXz/eeOONVpdr+PDhTJgwgVdffZXbbrut0bFZs2bxwAMPMGDAgEYD/Xd2dtOqVI4XkSRJFei4445jxIgRDTM8XXLJJVRXVzfK07VrVy655BJuvvlmDjroIE455RTWrVvH9OnTWblyJePHj2+2VaO1xo0bx8UXX8ztt9/OBz/4Qc444wyqqqqYOnUqu+22G7vvvvtm51x22WVccsklHHzwwZx++ulUVVUxc+ZMXn75ZU466SQef/zxzc6ZNGkSDz/8MKeeeiqHHHIIVVVVHH300Rx55JEtlu2HP/whRx55JJdddhlPPvkkY8aM4Y033uChhx6iqqqKe+65h169em33e+9sbBmpVLaMSJKkChQRfO5zn2t4Xt9S0tQNN9zATTfdRE1NDT/84Q+ZOnUqH/7wh/n973/PnnvuucPl+MEPfsCtt97Krrvuyh133MH999/PCSecwFNPPbXZrF4AX/rSl7jrrrsYNGgQU6ZM4cc//jHDhw/nt7/9LR/60IeafY3bbruNs846i9/85jd861vf4qqrrmLGjBlbLNfIkSOZPXs2X/ziF5k3bx4333wzv/jFLzjxxBOZNWsWJ5100g6/984kUrbYnipARMwePaTL6Nlf3gP+/nXHjEiSVGb1U9iOGjWqzCWRWqe1dXbMmDHMmTNnTkppTEeUqyX+2q1EDl6XJEnSTsBfvJVoD8eLSJIkqfMzGKk0uw6FUc6wIEmSpM7PYKTS9NoN9jqs3KWQJEmS2p3BiCRJkqSyMBiRJEmSVBYGI5IkSVInUMQlOwxGJEmSWhARANTV1ZW5JNLW1Qcj9fW2CAxGJEmSWlBTUwPAqlWrylwSaevq62l9vS0CgxFJkqQW9O7dG4AlS5ZQW1tLXV1dIbvCqPNKKVFXV0dtbS1LliwBNtXbIqgqdwEkSZIqVf/+/Vm1ahWrV6/mzTffLHdxpK3q2bMn/fv3L3cxWs1gRJIkqQVdunRhr732Yvny5dTW1rJu3TpbRlRxIoKamhp69+5N//796dKlOJ2fDEYkSZK2oEuXLgwcOJCBAweWuyhSp1OcsEmSJElSp2IwIkmSJKksDEYkSZIklYXBiCRJkqSyMBiRJEmSVBYGI5IkSZLKwmBEkiRJUlmEC/dUjohY1qNHj/6jRo0qd1EkSZLUic2bN481a9YsTykNKGc5DEYqSESsA7oCfyx3WVRRDsj3L5a1FKo01gs1x3qh5lgv1JwPARtTSjXlLIQrsFeWPwGklMaUuyCqHBExG6wXasx6oeZYL9Qc64WaU18vys0xI5IkSZLKwmBEkiRJUlkYjEiSJEkqC4MRSZIkSWVhMCJJkiSpLJzaV5IkSVJZ2DIiSZIkqSwMRiRJkiSVhcGIJEmSpLIwGJEkSZJUFgYjkiRJksrCYESSJElSWRiMSJIkSSoLg5EKEBF7RsTdEbEoItZFxPyIuDUi+pW7bGo/ETEgIj4fET+LiFciYk1ErIyI/4yIz0VEs/8/I+LwiPh5RCyPiNUR8d8RcWlEdO3o96COERGfiYiUb59vIc9JETEjr0PvRcRvI+K8ji6r2l9EHBUR/xYRi/PvjMUR8VREnNBMXj8vOrmIODG//2/m3yOvRcRDEfHRFvJbJzqJiDgjIm6LiJkR8W7+HXHfVs7Z5vvf3t8vLnpYZhGxD/BrYHfgEeBFYCwwAXgJOCKltKx8JVR7iYiLgNuBxcDTwBvAIOA0oA/wb8AnU8l/0og4NU9fCzwALAdOBvYHHk4pfbIj34PaX0TsBTwPdAV2Ab6QUprcJM8lwG3AMrJ68T5wBrAncEtK6YoOLbTaTURcCXwLWAo8Tvb5MRA4BHg6pfT1krx+XnRyEfHPwNfJ/u9PJasX+wKnAFXAuSml+0ryWyc6kYj4A/Ah4D3gTeAA4McppU+3kH+b73+HfL+klNzKuAH/ASTgy03Sv5On31HuMrq1272fmH8IdGmSPpgsMEnA6SXpuwJvAeuAQ0vSu5MFtAk4q9zvy61N60gAvwJeBb6d3+PPN8kzPP9iWQYML0nvB7ySn/PRcr8XtzapD5/M7+cvgd7NHO9W8tjPi06+5d8VG4ElwO5Njk3I7/Fr1onOu+X3eWT+XXF0fg/vayHvNt//jvp+sZtWGUXE3sBxwHzgX5ocvgZYBXwmInp1cNHUAVJK01NKj6WU6pqkLwHuyJ8eXXLoDGA34P6U0nMl+dcCV+ZPL26/EqsMvkIWtF5A9nnQnM8CNcAPUkrz6xNTSu8A1+dPL2rHMqoD5N02/xlYDZydUqptmieltL7kqZ8Xnd8wsu72v00pvVV6IKX0NFBLVgfqWSc6mZTS0ymlP6c8QtiK7bn/HfL9YjBSXhPz/VPN/CCtBWYBPYGPdHTBVHb1Pyo2lKTV15dfNJP/WbIfKYdHRE17FkwdIyJGATcC30spPbuFrFuqF082yaPiOhwYAfwceCcfJ/D3EfHVFsYG+HnR+f2ZrMvM2IgYWHogIsYBvclaVutZJ3Zu23P/O+T7xWCkvPbP9y+3cPzP+X6/DiiLKkREVAHn5k9LPwBarC8ppQ3A/5D1Ed67XQuodpfXgR+Rddf75layb6leLCZrUdkzInq2aSHV0Q7L938B5pCNF7kRuBX4dUQ8ExGlfwX386KTSyktB/6ebKzhCxHxfyPihoh4EHiKrDvfF0tOsU7s3Lbn/nfI94vBSHn1yfcrWzhen963A8qiynEjcCDw85TSf5SkW192HleTDUg+P6W0Zit5W1sv+rRwXMWwe76/COgBHEP2l+8DycYejgMeKsnv58VOIKV0K9mkJ1XAF4B/IBtbtAC4p0n3LevEzm177n+HfL8YjFS2yPdOebaTiIivAJeTzar2mW09Pd9bXwosIsaStYbcklL6TVtcMt9bL4qtftrNAM5IKU1LKb2XUvp/wCfIZtIZ39J0rs2wXnQCEfF14GHgHmAfoBcwBngN+HFE3LQtl8v31omd0/bc/zapMwYj5bW1iHLXJvnUiUXEl4DvAS8AE/Im+FLWl06upHvWy8BVrTyttfXi3R0omsrvnXz/Wkrpj6UH8taz+lbUsfnez4tOLiKOJpvU4NGU0tdSSq+llFanlOaQBagLgcvzyXLAOrGz25773yHfLwYj5fVSvm9pTMjIfN/SmBJ1EhFxKfAD4E9kgciSZrK1WF/yH7EjyAa8v9Ze5VS724Xs/o4C1pYsdJjIZtgDuDNPuzV/vqV6MYTsL6VvppRWt3PZ1b7q7/OKFo7XBys9muT386LzOinfP930QP7//Xdkv/MOyZOtEzu37bn/HfL9YjBSXvUfIMc1XW07InoDRwBrgP/q6IKp40TE3wPfBf5AFoi81ULW6fn++GaOjSObee3XKaV1bV9KdZB1wF0tbHPzPP+ZP6/vwrWlevE3TfKouJ4l+6EwMiKqmzl+YL6fn+/9vOj86mc92q2F4/Xp7+d768TObXvuf8d8v5R7wZadfcNFD3fqjawrTgKeA/pvJe+uwNu4YNVOuQHX0vyihyNw0cOdYgPuy+/nPzZJPxaoI2s16Zun+XnRyTfgU/l9XAIMbXLsb/I6sQYYYJ3o/ButW/Rwm+5/R32/RH5RlUlE7ENWCXYHHgHmAR8mW1XzZeDwlNKy8pVQ7SUiziMbdLgRuI3m++nOTyndU3LOx8kGK64F7geWA6eQTb/3MPCp5H/qTikiriXrqvWFlNLkJse+DHyf7AvjAbK/hJ4B7Ek2EP6Kji2t2kNE7E62/tS+wEyybjjDyMYHJLLFEB8qye/nRSeW96j4D7KZ1WqBn5EFJqPIunAFcGlK6Xsl51gnOpH8fn48fzoY+BhZN6uZedrS0s//7bn/HfL9Uu5Izi0B7AVMARbnN/l1soHMW/xLuVuxNzb9pXtL24xmzjuCfOEzsr96PQ9cBnQt93ty65D68vkWjp8MPEP2o2QV8HvgvHKX263N60F/spbz/8m/L5aR/SHrIy3k9/OiE29AN+BSsu7c75J15XuLbB2a46wTnXtrxe+I+W1x/9v7+8WWEUmSJEll4QB2SZIkSWVhMCJJkiSpLAxGJEmSJJWFwYgkSZKksjAYkSRJklQWBiOSJEmSysJgRJIkSVJZGIxIkiRJKguDEUmSJEllYTAiSZIkqSwMRiRJkiSVhcGIJEklIuLaiEgRcXS5yyJJnZ3BiCSpTeU/5Le2HV3uckqSyq+q3AWQJHVa123h2PyOKoQkqXIZjEiS2kVK6dpyl0GSVNnspiVJKqvSMRoRcV5EzI2INRHxVkTcHRGDWzhvZETcGxELI+L9iFiUPx/ZQv6uEXFRRMyKiJX5a7wSEZO3cM4ZEfG7iFgdEcsj4v6IGNqW71+Sdma2jEiSKsVlwHHAA8AvgCOBC4CjI+LDKaW36zNGxGHAr4DewKPAC8ABwDnAqRExKaX0XEn+auAJ4BhgAfAT4F1gOPAJ4D+BPzcpz98Cp+TXfwb4MHAm8KGIODiltK4t37wk7YwMRiRJ7SIirm3h0NqU0o3NpP8N8OGU0tySa3wXuBS4EfhcnhbAvcCuwKdTSj8uyX8mcD9wX0R8IKVUlx+6liwQeQz4ZGkgERE1+bWaOh44LKX0fEnenwD/CzgVeLDFNy9JapVIKZW7DJKkTiQitvbFsjKl1Lck/7XANcDdKaXPNblWH+B1oAbom1JaFxFHkLVk/CaldHgzrz+TrFVlfErp2YjoCiwDqoF9U0qLtlL++vL8U0rpyibHJgDTgVtSSlds5X1KkrbCMSOSpHaRUooWtr4tnPJMM9dYCfwB6A6MypNH5/vpLVynPv2QfH8A0Af4760FIk0810zagnzfbxuuI0lqgcGIJKlS/KWF9CX5vk+T/eIW8ten922yX7iN5VnRTNqGfN91G68lSWqGwYgkqVIMaiG9fjatlU32zc6yBQxpkq8+qHAWLEmqMAYjkqRKMb5pQj5m5GBgLTAvT64f4H50C9epT5+T718kC0j+OiL2aIuCSpLahsGIJKlSfCYiDmmSdi1Zt6yflsyANQt4CTgyIs4ozZw/Hwe8TDbInZTSRuBfgR7AHfnsWaXnVEfEbm38XiRJreDUvpKkdrGFqX0BpqaU/tAk7UlgVkQ8SDbu48h8mw/8Q32mlFKKiPOAXwIPRMQjZK0f+wMfB2qBc0um9QW4jmydkJOBlyPi8TzfXmRrm/wdcM92vVFJ0nYzGJEktZdrtnBsPtksWaW+C/yMbF2RM4H3yAKEb6aU3irNmFL6bb7w4ZVk64ecDCwFfgp8K6X0UpP870fE8cBFwLnAeUAAi/LX/M9tf3uSpB3lOiOSpLIqWddjQkppRnlLI0nqSI4ZkSRJklQWBiOSJEmSysJgRJIkSVJZOGZEkiRJUlnYMiJJkiSpLAxGJEmSJJWFwYgkSZKksjAYkSRJklQWBiOSJEmSysJgRJIkSVJZGIxIkiRJKguDEUmSJEllYTAiSZIkqSwMRiRJkiSVhcGIJEmSpLIwGJEkSZJUFgYjkiRJksri/wOnlShnTDusfQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 277, "width": 401 } }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "%config InlineBackend.figure_format = 'retina'\n", "\n", "fig = plt.figure()\n", "plt.plot(history.history['acc'])\n", "plt.plot(history.history['val_acc'])\n", "plt.plot(figsize=(15,15))\n", "plt.title('Classification Model Accuracy')\n", "plt.xlabel('Epoch')\n", "plt.ylabel('Accuracy')\n", "pylab.xlim([0,100])\n", "plt.legend(['Test', 'Validation', 'Success Metric'], loc='lower right')\n", "fig.savefig('acc.png')\n", "plt.show();" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/Users/marcotavora/capstone_phase_2\r\n" ] } ], "source": [ "!pwd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Predictions" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "os.listdir(os.path.abspath('train_toy_3/Pierre-Auguste_Renoir))" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "array([[[220., 215., 211.],\n", " [207., 202., 198.],\n", " [184., 179., 175.],\n", " ...,\n", " [218., 205., 199.],\n", " [221., 206., 211.],\n", " [229., 212., 228.]],\n", "\n", " [[207., 202., 198.],\n", " [208., 203., 199.],\n", " [214., 209., 205.],\n", " ...,\n", " [201., 188., 180.],\n", " [197., 182., 185.],\n", " [204., 188., 198.]],\n", "\n", " [[218., 213., 209.],\n", " [208., 203., 199.],\n", " [207., 202., 198.],\n", " ...,\n", " [210., 200., 190.],\n", " [209., 198., 194.],\n", " [223., 211., 213.]],\n", "\n", " ...,\n", "\n", " [[237., 215., 95.],\n", " [239., 219., 98.],\n", " [248., 227., 108.],\n", " ...,\n", " [253., 217., 131.],\n", " [242., 206., 118.],\n", " [219., 182., 94.]],\n", "\n", " [[246., 223., 111.],\n", " [250., 228., 116.],\n", " [244., 222., 110.],\n", " ...,\n", " [232., 195., 106.],\n", " [237., 200., 111.],\n", " [233., 194., 103.]],\n", "\n", " [[240., 214., 117.],\n", " [243., 219., 121.],\n", " [244., 220., 120.],\n", " ...,\n", " [240., 203., 112.],\n", " [231., 192., 101.],\n", " [240., 199., 107.]]], dtype=float32)" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "image_path = os.path.abspath('test_toy_3/Pierre-Auguste_Renoir/91485.jpg')\n", "orig = cv2.imread(image_path) \n", "image = load_img(image_path, target_size=(120,120)) \n", "image\n", "image = img_to_array(image) \n", "image" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[[[0.8627451 , 0.84313726, 0.827451 ],\n", " [0.8117647 , 0.7921569 , 0.7764706 ],\n", " [0.72156864, 0.7019608 , 0.6862745 ],\n", " ...,\n", " [0.85490197, 0.8039216 , 0.78039217],\n", " [0.8666667 , 0.80784315, 0.827451 ],\n", " [0.8980392 , 0.83137256, 0.89411765]],\n", "\n", " [[0.8117647 , 0.7921569 , 0.7764706 ],\n", " [0.8156863 , 0.79607844, 0.78039217],\n", " [0.8392157 , 0.81960785, 0.8039216 ],\n", " ...,\n", " [0.7882353 , 0.7372549 , 0.7058824 ],\n", " [0.77254903, 0.7137255 , 0.7254902 ],\n", " [0.8 , 0.7372549 , 0.7764706 ]],\n", "\n", " [[0.85490197, 0.8352941 , 0.81960785],\n", " [0.8156863 , 0.79607844, 0.78039217],\n", " [0.8117647 , 0.7921569 , 0.7764706 ],\n", " ...,\n", " [0.8235294 , 0.78431374, 0.74509805],\n", " [0.81960785, 0.7764706 , 0.7607843 ],\n", " [0.8745098 , 0.827451 , 0.8352941 ]],\n", "\n", " ...,\n", "\n", " [[0.92941177, 0.84313726, 0.37254903],\n", " [0.9372549 , 0.85882354, 0.38431373],\n", " [0.972549 , 0.8901961 , 0.42352942],\n", " ...,\n", " [0.99215686, 0.8509804 , 0.5137255 ],\n", " [0.9490196 , 0.80784315, 0.4627451 ],\n", " [0.85882354, 0.7137255 , 0.36862746]],\n", "\n", " [[0.9647059 , 0.8745098 , 0.43529412],\n", " [0.98039216, 0.89411765, 0.45490196],\n", " [0.95686275, 0.87058824, 0.43137255],\n", " ...,\n", " [0.9098039 , 0.7647059 , 0.41568628],\n", " [0.92941177, 0.78431374, 0.43529412],\n", " [0.9137255 , 0.7607843 , 0.40392157]],\n", "\n", " [[0.9411765 , 0.8392157 , 0.45882353],\n", " [0.9529412 , 0.85882354, 0.4745098 ],\n", " [0.95686275, 0.8627451 , 0.47058824],\n", " ...,\n", " [0.9411765 , 0.79607844, 0.4392157 ],\n", " [0.90588236, 0.7529412 , 0.39607844],\n", " [0.9411765 , 0.78039217, 0.41960785]]]], dtype=float32)" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "image = image / 255. \n", "image = np.expand_dims(image, axis=0) \n", "image" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# build the VGG16 network \n", "#model = applications.VGG16(include_top=False, weights='imagenet') \n", "model = applications.InceptionV3(include_top=False, weights='imagenet') \n", "# get the bottleneck prediction from the pre-trained VGG16 model \n", "bottleneck_prediction = model.predict(image)" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [], "source": [ "# build top model \n", "model = Sequential() \n", "model.add(Flatten(input_shape=train_data.shape[1:])) \n", "# model.add(Dense(1024, activation='relu')) \n", "# model.add(Dropout(0.5))\n", "model.add(Dense(512, activation='relu')) \n", "model.add(Dropout(0.5)) \n", "model.add(Dense(256, activation='relu')) \n", "model.add(Dropout(0.5)) \n", "model.add(Dense(128, activation='relu')) \n", "model.add(Dropout(0.5)) \n", "model.add(Dense(64, activation='relu')) \n", "model.add(Dropout(0.5)) \n", "model.add(Dense(32, activation='relu')) \n", "model.add(Dropout(0.5)) \n", "model.add(Dense(16, activation='relu')) \n", "model.add(Dropout(0.5)) \n", "model.add(Dense(8, activation='relu')) # Not valid for minimum = 500\n", "model.add(Dropout(0.5)) \n", "# model.add(Dense(4, activation='relu')) # Not valid for minimum = 500\n", "# model.add(Dropout(0.5)) \n", "model.add(Dense(num_classes, activation='sigmoid')) " ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [], "source": [ "model.load_weights(top_model_weights_path) \n", " \n", "# use the bottleneck prediction on the top model to get the final classification \n", "class_predicted = model.predict_classes(bottleneck_prediction)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "inID = class_predicted[0] \n", " \n", "class_dictionary = generator_top.class_indices \n", " \n", "inv_map = {v: k for k, v in class_dictionary.items()} \n", " \n", "label = inv_map[inID] \n", " \n", "# get the prediction label \n", "print(\"Image ID: {}, Label: {}\".format(inID, label)) \n", " \n", "# display the predictions with the image \n", "cv2.putText(orig, \"Predicted: {}\".format(label), (10, 30), cv2.FONT_HERSHEY_PLAIN, 1.5, (43, 99, 255), 2) \n", " \n", "cv2.imshow(\"Classification\", orig) \n", "cv2.waitKey(0) \n", "cv2.destroyAllWindows()" ] } ], "metadata": { "kernelspec": { "display_name": "Python [conda env:anaconda3]", "language": "python", "name": "conda-env-anaconda3-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.4" } }, "nbformat": 4, "nbformat_minor": 2 }