Skip to content
Snippets Groups Projects
Jupyter Notebook Block 5 - Object Detection and Segmentation.ipynb 1.88 MiB
Newer Older
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "dWyPGNkCGhIX"
   },
   "source": [
    "# Part I : Create Your Own Dataset and Train it with ConvNets\n",
    "\n",
    "In this part of the notebook, you will set up your own dataset for image classification. Please specify \n",
    "under `queries` the image categories you are interested in. Under `limit` specify the number of images \n",
    "you want to download for each image category. \n",
    "\n",
    "You do not need to understand the class `simple_image_download`, just execute the cell after you have specified \n",
    "the download folder.\n"
   ]
  },
  {
   "cell_type": "code",
Simon van Hemert's avatar
Simon van Hemert committed
   "execution_count": 7,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "8rckz3ZuGhIc",
    "outputId": "6f615f06-759a-4eea-839e-658155df8d36"
   },
   "outputs": [],
   "source": [
    "import os\n",
    "import time\n",
    "import urllib\n",
    "import requests\n",
    "from urllib.parse import quote\n",
    "import array as arr\n",
    "\n",
    "\n",
    "# Specifiy the queries\n",
Mirko Birbaumer's avatar
Mirko Birbaumer committed
    "queries = \"brad pitt, johnny depp, leonardo dicaprio, robert de niro, angelina jolie, sandra bullock, catherine deneuve, marion cotillard\"\n",
Simon van Hemert's avatar
Simon van Hemert committed
    "limit = 10\n",
    "download_folder = \"./train/\"\n",
    "\n",
    "\n",
    "class simple_image_download:\n",
    "    def __init__(self):\n",
    "        pass\n",
    "\n",
    "    def urls(self, keywords, limit, download_folder):\n",
    "        keyword_to_search = [str(item).strip() for item in keywords.split(',')]\n",
    "        i = 0\n",
    "        links = []\n",
    "        while i < len(keyword_to_search):\n",
    "            url = 'https://www.google.com/search?q=' + quote(\n",
    "                keyword_to_search[i].encode(\n",
    "                    'utf-8')) + '&biw=1536&bih=674&tbm=isch&sxsrf=ACYBGNSXXpS6YmAKUiLKKBs6xWb4uUY5gA:1581168823770&source=lnms&sa=X&ved=0ahUKEwioj8jwiMLnAhW9AhAIHbXTBMMQ_AUI3QUoAQ'\n",
    "            raw_html = self._download_page(url)\n",
    "\n",
    "            end_object = -1;\n",
    "\n",
    "            j = 0\n",
    "            while j < limit:\n",
    "                while (True):\n",
    "                    try:\n",
    "                        new_line = raw_html.find('\"https://', end_object + 1)\n",
    "                        end_object = raw_html.find('\"', new_line + 1)\n",
    "\n",
    "                        buffor = raw_html.find('\\\\', new_line + 1, end_object)\n",
    "                        if buffor != -1:\n",
    "                            object_raw = (raw_html[new_line + 1:buffor])\n",
    "                        else:\n",
    "                            object_raw = (raw_html[new_line + 1:end_object])\n",
    "\n",
    "                        if '.jpg' in object_raw or 'png' in object_raw or '.ico' in object_raw or '.gif' in object_raw or '.jpeg' in object_raw:\n",
    "                            break\n",
    "\n",
    "                    except Exception as e:\n",
    "                        print(e)\n",
    "                        break\n",
    "\n",
    "                links.append(object_raw)\n",
    "                j += 1\n",
    "\n",
    "            i += 1\n",
    "        return(links)\n",
    "\n",
    "\n",
    "    def download(self, keywords, limit, download_folder):\n",
    "        keyword_to_search = [str(item).strip() for item in keywords.split(',')]\n",
    "        main_directory = download_folder\n",
    "        i = 0\n",
    "\n",
    "        while i < len(keyword_to_search):\n",
    "            self._create_directories(main_directory, keyword_to_search[i])\n",
    "            url = 'https://www.google.com/search?q=' + quote(\n",
    "                keyword_to_search[i].encode('utf-8')) + '&biw=1536&bih=674&tbm=isch&sxsrf=ACYBGNSXXpS6YmAKUiLKKBs6xWb4uUY5gA:1581168823770&source=lnms&sa=X&ved=0ahUKEwioj8jwiMLnAhW9AhAIHbXTBMMQ_AUI3QUoAQ'\n",
    "            raw_html = self._download_page(url)\n",
    "\n",
    "            end_object = -1;\n",
    "\n",
    "            j = 0\n",
    "            while j < limit:\n",
    "                while (True):\n",
    "                    try:\n",
    "                        new_line = raw_html.find('\"https://', end_object + 1)\n",
    "                        end_object = raw_html.find('\"', new_line + 1)\n",
    "\n",
    "                        buffor = raw_html.find('\\\\', new_line + 1, end_object)\n",
    "                        if buffor != -1:\n",
    "                            object_raw = (raw_html[new_line+1:buffor])\n",
    "                        else:\n",
    "                            object_raw = (raw_html[new_line+1:end_object])\n",
    "\n",
    "                        if '.jpg' in object_raw or 'png' in object_raw or '.ico' in object_raw or '.gif' in object_raw or '.jpeg' in object_raw:\n",
    "                            break\n",
    "\n",
    "                    except Exception as e:\n",
    "                        print(e)\n",
    "                        break\n",
    "\n",
    "                path = main_directory + keyword_to_search[i]\n",
    "\n",
    "                #print(object_raw)\n",
    "\n",
    "                if not os.path.exists(path):\n",
    "                    os.makedirs(path)\n",
    "\n",
    "                filename = str(keyword_to_search[i]) + \"_\" + str(j + 1) + \".jpg\"\n",
    "\n",
    "                try:\n",
    "                    r = requests.get(object_raw, allow_redirects=True)\n",
    "                    open(os.path.join(path, filename), 'wb').write(r.content)\n",
    "                except Exception as e:\n",
    "                    print(e)\n",
    "                    j -= 1\n",
    "                j += 1\n",
    "\n",
    "            i += 1\n",
    "\n",
    "\n",
    "    def _create_directories(self, main_directory, name):\n",
    "        try:\n",
    "            if not os.path.exists(main_directory):\n",
    "                os.makedirs(main_directory)\n",
    "                time.sleep(0.2)\n",
    "                path = (name)\n",
    "                sub_directory = os.path.join(main_directory, path)\n",
    "                if not os.path.exists(sub_directory):\n",
    "                    os.makedirs(sub_directory)\n",
    "            else:\n",
    "                path = (name)\n",
    "                sub_directory = os.path.join(main_directory, path)\n",
    "                if not os.path.exists(sub_directory):\n",
    "                    os.makedirs(sub_directory)\n",
    "\n",
    "        except OSError as e:\n",
    "            if e.errno != 17:\n",
    "                raise\n",
    "            pass\n",
    "        return\n",
    "\n",
    "    def _download_page(self,url):\n",
    "\n",
    "        try:\n",
    "            headers = {}\n",
    "            headers['User-Agent'] = \"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36\"\n",
    "            req = urllib.request.Request(url, headers=headers)\n",
    "            resp = urllib.request.urlopen(req)\n",
    "            respData = str(resp.read())\n",
    "            return respData\n",
    "\n",
    "        except Exception as e:\n",
    "            print(e)\n",
    "            exit(0)\n",
    "            \n",
    "response = simple_image_download\n",
    "response().download(queries, limit, download_folder)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "CRHl9UX6GhIs"
   },
   "source": [
    "Please check carefully the downloaded images, there may be a lot of garbage! You definitely need to \n",
    "clean the data.\n",
    "\n",
    "In the following, you will apply data augmentation to your data set."
   ]
  },
  {
   "cell_type": "code",
Simon van Hemert's avatar
Simon van Hemert committed
   "execution_count": 2,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "3SX21FtcGhIu"
   },
   "outputs": [],
   "source": [
    "# General imports\n",
    "import tensorflow as tf\n",
    "tf.compat.v1.enable_eager_execution(\n",
    "    config=None, device_policy=None, execution_mode=None\n",
    ")\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# Shortcuts to keras if (however from tensorflow)\n",
    "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
    "from tensorflow.keras.models import Sequential\n",
    "from tensorflow.keras.layers import Conv2D, MaxPooling2D\n",
    "from tensorflow.keras.layers import Activation, Dropout, Flatten, Dense\n",
    "from tensorflow.keras.callbacks import TensorBoard \n",
    "\n",
    "# Shortcut for displaying images\n",
    "def plot_img(img):\n",
    "    plt.imshow(img, cmap='gray')\n",
    "    plt.axis(\"off\")\n",
    "    plt.show()\n",
    "    \n",
    "# The target image size can be fixed here (quadratic)\n",
    "# the ImageDataGenerator() automatically scales the images accordingly (aspect ratio is changed)\n",
    "image_size = 150"
   ]
  },
  {
   "cell_type": "code",
Simon van Hemert's avatar
Simon van Hemert committed
   "execution_count": 3,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "rN_Mp1rmGhI1",
    "outputId": "6417b1f9-e7d4-4d56-a213-191f9d17524a"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
Simon van Hemert's avatar
Simon van Hemert committed
      "Found 70 images belonging to 8 classes.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/lib/python3.7/site-packages/PIL/Image.py:952: UserWarning: Palette images with Transparency expressed in bytes should be converted to RGBA images\n",
      "  \"Palette images with Transparency expressed in bytes should be \"\n"
Simon van Hemert's avatar
Simon van Hemert committed
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
Simon van Hemert's avatar
Simon van Hemert committed
       "array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 2., 2., 2., 2., 2., 2., 2.,\n",
       "       2., 2., 2., 3., 3., 3., 3., 3.], dtype=float32)"
Simon van Hemert's avatar
Simon van Hemert committed
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# These are the class names; this defines the ordering of the classes\n",
    "class_names = [\"brad pitt\", \"johnny deep\", \"leonardo dicaprio\", \"robert de niro\",\n",
    "           \"angelina jolie\", \"sandra bullock\", \"catherine deneuve\", \"marion cotillard\"]\n",
    "\n",
    "\n",
    "# Class ImageDataGenerator() returns an iterator holding one batch of images\n",
    "# the constructor takes arguments defining the different image transformations\n",
    "# for augmentation purposes (rotation, x-/y-shift, intensity scaling - here 1./255 \n",
    "# to scale range to [0, 1], shear, zoom, flip, ... )\n",
    "train_datagen = ImageDataGenerator(\n",
    "        rotation_range=10,\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')\n",
    "\n",
    "\n",
    "dir_iter = train_datagen.flow_from_directory('./brandnew_images/', \n",
    "                                         target_size=(image_size, image_size),\n",
    "                                         classes=class_names,\n",
    "                                         batch_size=25, class_mode='sparse', shuffle=False)\n",
    "\n",
    "plot_img(dir_iter[0][0][0,...])\n",
    "dir_iter[0][1]"
   ]
  },
  {
   "cell_type": "code",
Simon van Hemert's avatar
Simon van Hemert committed
   "execution_count": 4,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "yw30IIEeGhI9",
    "outputId": "efd081d3-d8d9-4429-e6f9-573778f3391e"
   },
   "outputs": [
    {
     "data": {
Simon van Hemert's avatar
Simon van Hemert committed
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_img(dir_iter[0][0][0,...])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "V2fYccc8GhJF"
   },
   "source": [
    "Before you continue, you need to split the downloaded images into a `train` folder and into a `validation` folder."
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {
    "colab_type": "raw",
    "id": "VamXG4FoGhJH"
   },
   "source": [
    "./\n",
    "├── train\n",
    "│   ├── brad pitt\n",
    "│   └── johnny deep\n",
    "|   ├── leonardo di caprio\n",
    "|   └── ...\n",
    "│       \n",
    "└── validation\n",
    "    ├── brad pitt\n",
    "    ├── johnny deep\n",
    "    ├── leonardo di caprio\n",
    "    └── ..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "9322su6vGhJJ"
   },
   "source": [
    "If you want to use the example of this jupyter notebook, then download `celebrity-faces-train-validation-dataset.zip` from Ilias and unzip it in the folder of your jupyter notebook."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "xPqJWgeAGhJL"
   },
   "source": [
    "## Define a ConvNet Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "UuJV4JBKGhJO"
   },
   "outputs": [],
   "source": [
    "batch_size = 20\n",
    "num_train_images = 480\n",
    "num_valid_images = 80\n",
    "num_classes = 8\n",
    "\n",
    "model_scratch = Sequential()\n",
    "model_scratch.add(Conv2D(32, (3, 3), input_shape=(image_size, image_size, 3)))\n",
    "model_scratch.add(Activation('relu'))\n",
    "model_scratch.add(MaxPooling2D(pool_size=(2, 2)))\n",
    "\n",
    "model_scratch.add(Conv2D(32, (3, 3)))\n",
    "model_scratch.add(Activation('relu'))\n",
    "model_scratch.add(MaxPooling2D(pool_size=(2, 2)))\n",
    "\n",
    "model_scratch.add(Conv2D(64, (3, 3)))\n",
    "model_scratch.add(Activation('relu'))\n",
    "model_scratch.add(MaxPooling2D(pool_size=(2, 2)))\n",
    "\n",
    "# this converts our 3D feature maps to 1D feature vectors\n",
    "model_scratch.add(Flatten())  \n",
    "model_scratch.add(Dense(64))\n",
    "model_scratch.add(Activation('relu'))\n",
    "model_scratch.add(Dropout(0.5))\n",
    "model_scratch.add(Dense(num_classes))\n",
    "model_scratch.add(Activation('softmax'))\n",
    "\n",
    "model_scratch.compile(loss='categorical_crossentropy',\n",
    "              optimizer='adam',\n",
    "              metrics=['accuracy'])\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "JFdkIokMGhJT",
    "outputId": "63e7d032-4083-4fe0-d970-c10bf0c39a94"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 480 images belonging to 8 classes.\n",
      "Found 80 images belonging to 8 classes.\n"
     ]
    }
   ],
   "source": [
    "# This is the augmentation configuration we will use for training\n",
    "train_datagen = ImageDataGenerator(\n",
    "        rescale=1./255,\n",
    "        shear_range=0.2,\n",
    "        zoom_range=0.2,\n",
    "        horizontal_flip=True)\n",
    "\n",
    "# This is the augmentation configuration we will use for validation:\n",
    "# only rescaling\n",
    "validation_datagen = ImageDataGenerator(rescale=1./255)\n",
    "\n",
    "# This is a generator that will read pictures found in\n",
    "# subfolers of './train', and indefinitely generate\n",
    "# batches of augmented image data\n",
    "train_generator = train_datagen.flow_from_directory(\n",
    "        './train',  # this is the target directory\n",
    "        target_size=(image_size, image_size),  # all images will be resized to 150x150\n",
    "        classes=class_names,\n",
    "        batch_size=batch_size)  \n",
    "\n",
    "# This is a similar generator, for validation data\n",
    "validation_generator = validation_datagen.flow_from_directory(\n",
    "        './validation',\n",
    "        target_size = (image_size, image_size),\n",
    "        classes = class_names,\n",
    "        batch_size = batch_size)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "cytHiQUTGhJb"
   },
   "outputs": [],
   "source": [
    "name = 'cnn_face_1'\n",
    "\n",
    "tensorboard = TensorBoard(\n",
    "        log_dir ='./tensorboard/' + name + '/', \n",
    "        write_graph=True,\n",
    "        histogram_freq=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "C7dCbyXPGhJg",
    "outputId": "98b4085e-ed6d-43e2-831f-aec32161583f"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
Simon van Hemert's avatar
Simon van Hemert committed
      "WARNING:tensorflow:sample_weight modes were coerced from\n",
      "  ...\n",
      "    to  \n",
      "  ['...']\n",
      "WARNING:tensorflow:sample_weight modes were coerced from\n",
      "  ...\n",
      "    to  \n",
      "  ['...']\n",
      "Train for 24 steps, validate for 4 steps\n",
      "Epoch 1/20\n",
      "13/24 [===============>..............] - ETA: 4s - loss: 2.0981 - accuracy: 0.1692"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/lib/python3.7/site-packages/PIL/Image.py:952: UserWarning: Palette images with Transparency expressed in bytes should be converted to RGBA images\n",
      "  \"Palette images with Transparency expressed in bytes should be \"\n"
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "24/24 [==============================] - 9s 365ms/step - loss: 2.0933 - accuracy: 0.1417 - val_loss: 2.0700 - val_accuracy: 0.2000\n",
      "Epoch 2/20\n",
      "24/24 [==============================] - 9s 355ms/step - loss: 2.0702 - accuracy: 0.1625 - val_loss: 2.0338 - val_accuracy: 0.2000\n",
      "Epoch 3/20\n",
      "24/24 [==============================] - 8s 344ms/step - loss: 2.0146 - accuracy: 0.2021 - val_loss: 1.9917 - val_accuracy: 0.2375\n",
      "Epoch 4/20\n",
      "24/24 [==============================] - 8s 349ms/step - loss: 1.9273 - accuracy: 0.2375 - val_loss: 1.8057 - val_accuracy: 0.3625\n",
      "Epoch 5/20\n",
      "24/24 [==============================] - 8s 339ms/step - loss: 1.8371 - accuracy: 0.2854 - val_loss: 1.7674 - val_accuracy: 0.3625\n",
      "Epoch 6/20\n",
      "24/24 [==============================] - 8s 345ms/step - loss: 1.6826 - accuracy: 0.3604 - val_loss: 1.7175 - val_accuracy: 0.4375\n",
      "Epoch 7/20\n",
      "24/24 [==============================] - 8s 345ms/step - loss: 1.6980 - accuracy: 0.3375 - val_loss: 1.6549 - val_accuracy: 0.3875\n",
      "Epoch 8/20\n",
      "24/24 [==============================] - 8s 333ms/step - loss: 1.5925 - accuracy: 0.3833 - val_loss: 1.6472 - val_accuracy: 0.4250\n",
      "Epoch 9/20\n",
      "24/24 [==============================] - 8s 343ms/step - loss: 1.6773 - accuracy: 0.3604 - val_loss: 1.5742 - val_accuracy: 0.4375\n",
      "Epoch 10/20\n",
      "24/24 [==============================] - 8s 336ms/step - loss: 1.5669 - accuracy: 0.3833 - val_loss: 1.6129 - val_accuracy: 0.4250\n",
      "Epoch 11/20\n",
      "24/24 [==============================] - 8s 346ms/step - loss: 1.4456 - accuracy: 0.4688 - val_loss: 1.6131 - val_accuracy: 0.4000\n",
      "Epoch 12/20\n",
      "24/24 [==============================] - 8s 350ms/step - loss: 1.4683 - accuracy: 0.4729 - val_loss: 1.5335 - val_accuracy: 0.4750\n",
      "Epoch 13/20\n",
      "24/24 [==============================] - 8s 334ms/step - loss: 1.4265 - accuracy: 0.4625 - val_loss: 1.6174 - val_accuracy: 0.4375\n",
      "Epoch 14/20\n",
      "24/24 [==============================] - 8s 338ms/step - loss: 1.3228 - accuracy: 0.5063 - val_loss: 1.5142 - val_accuracy: 0.4000\n",
      "Epoch 15/20\n",
      "24/24 [==============================] - 8s 345ms/step - loss: 1.2628 - accuracy: 0.5167 - val_loss: 1.6502 - val_accuracy: 0.3625\n",
      "Epoch 16/20\n",
      "24/24 [==============================] - 9s 354ms/step - loss: 1.2141 - accuracy: 0.5458 - val_loss: 1.5421 - val_accuracy: 0.4500\n",
      "Epoch 17/20\n",
      "24/24 [==============================] - 8s 339ms/step - loss: 1.2923 - accuracy: 0.5312 - val_loss: 1.4767 - val_accuracy: 0.4000\n",
      "Epoch 18/20\n",
      "24/24 [==============================] - 8s 340ms/step - loss: 1.1829 - accuracy: 0.5625 - val_loss: 1.6500 - val_accuracy: 0.4000\n",
      "Epoch 19/20\n",
      "24/24 [==============================] - 8s 341ms/step - loss: 1.2270 - accuracy: 0.5500 - val_loss: 1.5607 - val_accuracy: 0.3750\n",
      "Epoch 20/20\n",
      "24/24 [==============================] - 8s 344ms/step - loss: 1.0694 - accuracy: 0.6083 - val_loss: 1.6800 - val_accuracy: 0.4000\n"
     ]
    }
   ],
   "source": [
    "history = model_scratch.fit(\n",
Simon van Hemert's avatar
Simon van Hemert committed
    "    train_generator,\n",
    "    steps_per_epoch = num_train_images // batch_size,\n",
    "    epochs = 20,\n",
    "    validation_data = validation_generator,\n",
    "    validation_steps = num_valid_images // batch_size,\n",
    "    callbacks = [tensorboard])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "wt_ONw5PGhJm",
    "outputId": "e75d8a73-da49-4dbe-ffcf-7cb316be39a2"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.history['accuracy'])\n",
    "plt.plot(history.history['val_accuracy'])\n",
    "plt.title('model accuracy')\n",
    "plt.ylabel('accuracy')\n",
    "plt.xlabel('epoch')\n",
    "plt.legend(['train', 'valid'], loc='lower right')\n",
    "plt.show()\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', 'valid'], loc='upper right')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Tensorboard"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2020-12-03 10:10:14.597247: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libnvinfer.so.6'; dlerror: libnvinfer.so.6: cannot open shared object file: No such file or directory\n",
      "2020-12-03 10:10:14.597393: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libnvinfer_plugin.so.6'; dlerror: libnvinfer_plugin.so.6: cannot open shared object file: No such file or directory\n",
      "2020-12-03 10:10:14.597414: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:30] Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.\n",
      "Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all\n",
      "TensorBoard 2.1.1 at http://localhost:8061/ (Press CTRL+C to quit)\n",
      "^C\n"
     ]
    }
   ],
   "source": [
    "!tensorboard --port=8061 --logdir=tensorboard/"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "Y8oAT4oUGhJs"
   },
   "source": [
    "# Part II : Transfer Learning\n",
    "\n",
    "With transfer learning we reuse parts of an already trained model and change the final layer, or several layers, of the model, and then retrain those layers on our own dataset.\n",
    "\n",
    "We will continue using VGG16 model, which comes among others prepackaged with Keras. You can import it from the `tensorflow.keras.applications` module. Here's the list of image-classification models (all pretrained on the ImageNet dataset) that are available as part of `tensorflow.keras.applications`:\n",
    "\n",
    "- Xception\n",
    "- Inception V3 \n",
    "- ResNet50\n",
    "- VGG16\n",
    "- VGG19\n",
    "- MobileNet\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "TensorFlow Hub also distributes models without the last classification layer. These can be used to easily do transfer learning. Any [image feature vector URL from tfhub.dev](https://tfhub.dev/s?module-type=image-feature-vector&q=tf2) would work here.\n",
    "\n",
    "Note that we're calling the partial model (without the final classification layer) a `feature_extractor`. The reasoning for this term is that it will take the input all the way to a layer containing a number of features. So it has done the bulk of the work in identifying the content of an image, except for creating the final probability distribution. That is, it has extracted the features of the image.\n",
    "\n",
    "Let's instantiate the VGG16 model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "4Luec7pbGhJv",
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# General imports\n",
    "import sys\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.metrics import confusion_matrix\n",
    "import tensorflow as tf\n",
    "\n",
    "# Shortcuts to keras if (however from tensorflow)\n",
    "from tensorflow.keras import applications\n",
    "from tensorflow.keras import optimizers\n",
    "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
    "from tensorflow.keras.models import Sequential\n",
    "from tensorflow.keras.layers import Conv2D, MaxPool2D\n",
    "from tensorflow.keras.layers import Activation, Dropout, Flatten, Dense\n",
    "from tensorflow.keras.callbacks import TensorBoard \n",
    "\n",
    "# Shortcut for displaying images\n",
    "def plot_img(img):\n",
    "    plt.imshow(img, cmap='gray')\n",
    "    plt.axis(\"off\")\n",
    "    plt.show()\n",
    "    \n",
    "# The target image size can be fixed here (quadratic)\n",
    "# The ImageDataGenerator() automatically scales the images accordingly (aspect ratio is changed)\n",
    "image_size = 150"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "eRes_n9BGhJ0"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Downloading data from https://github.com/fchollet/deep-learning-models/releases/download/v0.1/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5\n",
      "58892288/58889256 [==============================] - 6s 0us/step\n"
     ]
    }
   ],
   "source": [
    "vgg16 = applications.VGG16(include_top=False, weights='imagenet',\n",
    "                           input_shape=(image_size,image_size,3))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "vEIWLeqSGhJ5"
   },
   "source": [
    "You pass three arguments to the constructor:\n",
    "\n",
    "- `weights` specifies the weight checkpoint from which to initialize the model.\n",
    "\n",
    "- `include_top` refers to including (or not) the densely connected classifier on top of the network. By default, this densely connected classifier corresponds to the 1000 classes from \n",
    "ImageNet. Because we intend to use our own densely connected classifier  you don't need to include it.\n",
    "\n",
    "- `input_shape` is the shape of the image tensors that we will feed to the network. This argument is purely optional: if we don't pass it, the network will be able to process inputs of any size."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "M7Bk7t1MGhJ6"
   },
   "outputs": [],
   "source": [
    "# predict_generator requires compilation\n",
    "vgg16.compile(optimizer='adam',\n",
    "              loss='categorical_crossentropy',\n",
    "              metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "05hqhVtUGhKA"
   },
   "source": [
    "Here's the detail of the architecture of teh VGG16 convolutional base. It's similar to the simple ConvNets you are familiar with:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "B8bXc_qZGhKC",
    "outputId": "4b81be24-0527-44b5-ed98-b3e57f511350"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"vgg16\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "input_1 (InputLayer)         [(None, 150, 150, 3)]     0         \n",
      "_________________________________________________________________\n",
      "block1_conv1 (Conv2D)        (None, 150, 150, 64)      1792      \n",
      "_________________________________________________________________\n",
      "block1_conv2 (Conv2D)        (None, 150, 150, 64)      36928     \n",
      "_________________________________________________________________\n",
      "block1_pool (MaxPooling2D)   (None, 75, 75, 64)        0         \n",
      "_________________________________________________________________\n",
      "block2_conv1 (Conv2D)        (None, 75, 75, 128)       73856     \n",
      "_________________________________________________________________\n",
      "block2_conv2 (Conv2D)        (None, 75, 75, 128)       147584    \n",
      "_________________________________________________________________\n",
      "block2_pool (MaxPooling2D)   (None, 37, 37, 128)       0         \n",
      "_________________________________________________________________\n",
      "block3_conv1 (Conv2D)        (None, 37, 37, 256)       295168    \n",
      "_________________________________________________________________\n",
      "block3_conv2 (Conv2D)        (None, 37, 37, 256)       590080    \n",
      "_________________________________________________________________\n",
      "block3_conv3 (Conv2D)        (None, 37, 37, 256)       590080    \n",
      "_________________________________________________________________\n",
      "block3_pool (MaxPooling2D)   (None, 18, 18, 256)       0         \n",
      "_________________________________________________________________\n",
      "block4_conv1 (Conv2D)        (None, 18, 18, 512)       1180160   \n",
      "_________________________________________________________________\n",
      "block4_conv2 (Conv2D)        (None, 18, 18, 512)       2359808   \n",
      "_________________________________________________________________\n",
      "block4_conv3 (Conv2D)        (None, 18, 18, 512)       2359808   \n",
      "_________________________________________________________________\n",
      "block4_pool (MaxPooling2D)   (None, 9, 9, 512)         0         \n",
      "_________________________________________________________________\n",
      "block5_conv1 (Conv2D)        (None, 9, 9, 512)         2359808   \n",
      "_________________________________________________________________\n",
      "block5_conv2 (Conv2D)        (None, 9, 9, 512)         2359808   \n",
      "_________________________________________________________________\n",
      "block5_conv3 (Conv2D)        (None, 9, 9, 512)         2359808   \n",
      "_________________________________________________________________\n",
      "block5_pool (MaxPooling2D)   (None, 4, 4, 512)         0         \n",
      "=================================================================\n",
      "Total params: 14,714,688\n",
      "Trainable params: 14,714,688\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "vgg16.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "DBSrhVORGhKH"
   },
   "source": [
    "The final feature map (output volume) has shape $(4, 4, 512)$. That's the feature on top of which we will stick a densely connected classifier.\n",
    "\n",
    "At this point, there are two ways how we could proceed:\n",
    "\n",
    "- __Approach 1__: Running the convolutional base over our dataset, recording its output to a Numpy array on disk, and then using this data as input to a standalone, densely connected classifier similar to those we saw earlier in this course. This solution is fast and cheap to run, because it only requires running the convolutional base once for every input image, and the convolutional base is by far the most expensive pipeline. But for the same reason, this technique won't allow us to use data augmentation.\n",
    "\n",
    "- __Approach 2__: Extending the model we have (`vgg16`) by adding `Dense` on top, and running the whole thing end to end on the input data. This will allow us to use data augmentation, because every input image goes through the convolutional base every time it's seen by the model. But for the same reason, this technique is far more expensive than the first."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "mlpIDmSCGhKI"
   },
   "source": [
    "## 1. Approach : Extracting Features Using the Pretrained Convolutional Base\n",
    "\n",
    "### Fast Feature Extraction without Data Augmentation\n",
    "\n",
    "We will start by running instances of the previously introduced `ImageDataGenerator` to extract images as Numpy arrays as well as their labels. We will extract features from these images by calling the `predict` method of the `vgg16`model.\n",
    "\n",
    "Let's run the training images through the convolutional base, and see the final shape. 480 is the number of images, and 512 is the number of activation maps in the last layer of the partial model from VGG16."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "pC-jzxh_GhKL",
    "outputId": "f2e6f646-c55a-451b-d46e-0a5984217bd4"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 480 images belonging to 8 classes.\n",
      "Shape of last layer feature map of training dataset: (480, 4, 4, 512)\n",
      "Found 80 images belonging to 8 classes.\n",
      "Shape of last layer feature map of validation dataset: (80, 4, 4, 512)\n"
     ]
    }
   ],
   "source": [
    "# These are the class names; this defines the ordering of the classes\n",
    "class_names = [\"brad pitt\", \"johnny deep\", \"leonardo dicaprio\", \"robert de niro\",\n",
    "               \"angelina jolie\", \"sandra bullock\", \"catherine deneuve\", \"marion cotillard\"]\n",
    "\n",
    "# No augmentation \n",
    "datagen = ImageDataGenerator(rescale=1./255)\n",
    "\n",
    "batch_size = 20\n",
    "num_train_images = 480\n",
    "num_valid_images = 80\n",
    "num_classes = 8\n",
    "\n",
    "generator = datagen.flow_from_directory(\n",
    "        './train',\n",
    "        target_size=(image_size, image_size),\n",
    "        batch_size=batch_size,\n",
    "        classes=class_names,\n",
    "        # this means our generator will only yield batches of \n",
    "        # data, no labels\n",
    "        class_mode=None,  \n",
    "        # our data will be in order\n",
    "        shuffle=False)  \n",
    "\n",
    "# the predict_generator method returns the CNN activation maps \n",
    "# of the last layer\n",
    "bottleneck_features_train = vgg16.predict_generator(generator, \n",
    "                                                    num_train_images // batch_size)\n",
    "\n",
    "print(\"Shape of last layer feature map of training dataset:\", bottleneck_features_train.shape)\n",
    "\n",
    "# save the output as a Numpy array\n",
    "np.save('./models/bottleneck_features_train.npy', bottleneck_features_train)\n",
    "\n",
    "generator = datagen.flow_from_directory(\n",
    "        './validation',\n",
    "        target_size=(image_size, image_size),\n",
    "        batch_size=batch_size,\n",
    "        classes=class_names,\n",
    "        class_mode=None,\n",
    "        shuffle=False)\n",
    "\n",
    "bottleneck_features_validation = vgg16.predict_generator(generator, \n",
    "                                                         num_valid_images // batch_size)\n",
    "\n",
    "np.save('./models/bottleneck_features_validation.npy', bottleneck_features_validation)\n",
    "\n",
    "print(\"Shape of last layer feature map of validation dataset:\", bottleneck_features_validation.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "Nbw0M5JeGhKP"
   },
   "source": [
    "##### Load numpy array containing activation maps of training dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "EpwO5BOkGhKQ",
    "outputId": "ab179875-edb2-4940-f7ea-167119ed2a52"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 0, 0, ..., 0, 0, 0],\n",
       "       [1, 0, 0, ..., 0, 0, 0],\n",
       "       [1, 0, 0, ..., 0, 0, 0],\n",
       "       ...,\n",
       "       [0, 0, 0, ..., 0, 0, 1],\n",
       "       [0, 0, 0, ..., 0, 0, 1],\n",
       "       [0, 0, 0, ..., 0, 0, 1]])"
      ]