Skip to content
Snippets Groups Projects
Jupyter Notebook Block 5 - Object Detection and Segmentation.ipynb 1.9 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": 1,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "8rckz3ZuGhIc",
    "outputId": "6f615f06-759a-4eea-839e-658155df8d36"
   },
   "outputs": [
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-1-83a71479ebf0>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m    145\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    146\u001b[0m \u001b[0mresponse\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msimple_image_download\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 147\u001b[0;31m \u001b[0mresponse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdownload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mqueries\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlimit\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdownload_folder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m<ipython-input-1-83a71479ebf0>\u001b[0m in \u001b[0;36mdownload\u001b[0;34m(self, keywords, limit, download_folder)\u001b[0m\n\u001b[1;32m     99\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    100\u001b[0m                 \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 101\u001b[0;31m                     \u001b[0mr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrequests\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobject_raw\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mallow_redirects\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    102\u001b[0m                     \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'wb'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwrite\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcontent\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    103\u001b[0m                 \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/conda/lib/python3.7/site-packages/requests/api.py\u001b[0m in \u001b[0;36mget\u001b[0;34m(url, params, **kwargs)\u001b[0m\n\u001b[1;32m     74\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     75\u001b[0m     \u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msetdefault\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'allow_redirects'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 76\u001b[0;31m     \u001b[0;32mreturn\u001b[0m \u001b[0mrequest\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'get'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     77\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     78\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/conda/lib/python3.7/site-packages/requests/api.py\u001b[0m in \u001b[0;36mrequest\u001b[0;34m(method, url, **kwargs)\u001b[0m\n\u001b[1;32m     59\u001b[0m     \u001b[0;31m# cases, and look like a memory leak in others.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     60\u001b[0m     \u001b[0;32mwith\u001b[0m \u001b[0msessions\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSession\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0msession\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 61\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0msession\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     62\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     63\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/conda/lib/python3.7/site-packages/requests/sessions.py\u001b[0m in \u001b[0;36mrequest\u001b[0;34m(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)\u001b[0m\n\u001b[1;32m    528\u001b[0m         }\n\u001b[1;32m    529\u001b[0m         \u001b[0msend_kwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msettings\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 530\u001b[0;31m         \u001b[0mresp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0msend_kwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    531\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    532\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mresp\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/conda/lib/python3.7/site-packages/requests/sessions.py\u001b[0m in \u001b[0;36msend\u001b[0;34m(self, request, **kwargs)\u001b[0m\n\u001b[1;32m    641\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    642\u001b[0m         \u001b[0;31m# Send the request\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 643\u001b[0;31m         \u001b[0mr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0madapter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    644\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    645\u001b[0m         \u001b[0;31m# Total elapsed time of the request (approximately)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/conda/lib/python3.7/site-packages/requests/adapters.py\u001b[0m in \u001b[0;36msend\u001b[0;34m(self, request, stream, timeout, verify, cert, proxies)\u001b[0m\n\u001b[1;32m    447\u001b[0m                     \u001b[0mdecode_content\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    448\u001b[0m                     \u001b[0mretries\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmax_retries\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 449\u001b[0;31m                     \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    450\u001b[0m                 )\n\u001b[1;32m    451\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/conda/lib/python3.7/site-packages/urllib3/connectionpool.py\u001b[0m in \u001b[0;36murlopen\u001b[0;34m(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)\u001b[0m\n\u001b[1;32m    675\u001b[0m                 \u001b[0mbody\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mbody\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    676\u001b[0m                 \u001b[0mheaders\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mheaders\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 677\u001b[0;31m                 \u001b[0mchunked\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mchunked\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    678\u001b[0m             )\n\u001b[1;32m    679\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/conda/lib/python3.7/site-packages/urllib3/connectionpool.py\u001b[0m in \u001b[0;36m_make_request\u001b[0;34m(self, conn, method, url, timeout, chunked, **httplib_request_kw)\u001b[0m\n\u001b[1;32m    424\u001b[0m                     \u001b[0;31m# Python 3 (including for exceptions like SystemExit).\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    425\u001b[0m                     \u001b[0;31m# Otherwise it looks like a bug in the code.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 426\u001b[0;31m                     \u001b[0msix\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mraise_from\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    427\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mSocketTimeout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mBaseSSLError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSocketError\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    428\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_raise_timeout\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout_value\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mread_timeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/conda/lib/python3.7/site-packages/urllib3/packages/six.py\u001b[0m in \u001b[0;36mraise_from\u001b[0;34m(value, from_value)\u001b[0m\n",
      "\u001b[0;32m/opt/conda/lib/python3.7/site-packages/urllib3/connectionpool.py\u001b[0m in \u001b[0;36m_make_request\u001b[0;34m(self, conn, method, url, timeout, chunked, **httplib_request_kw)\u001b[0m\n\u001b[1;32m    419\u001b[0m                 \u001b[0;31m# Python 3\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    420\u001b[0m                 \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 421\u001b[0;31m                     \u001b[0mhttplib_response\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mconn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetresponse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    422\u001b[0m                 \u001b[0;32mexcept\u001b[0m \u001b[0mBaseException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    423\u001b[0m                     \u001b[0;31m# Remove the TypeError from the exception chain in\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/conda/lib/python3.7/http/client.py\u001b[0m in \u001b[0;36mgetresponse\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m   1342\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1343\u001b[0m             \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1344\u001b[0;31m                 \u001b[0mresponse\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbegin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1345\u001b[0m             \u001b[0;32mexcept\u001b[0m \u001b[0mConnectionError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1346\u001b[0m                 \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/conda/lib/python3.7/http/client.py\u001b[0m in \u001b[0;36mbegin\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    304\u001b[0m         \u001b[0;31m# read until we get a non-100 response\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    305\u001b[0m         \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 306\u001b[0;31m             \u001b[0mversion\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatus\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreason\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_read_status\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    307\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mstatus\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mCONTINUE\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    308\u001b[0m                 \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/conda/lib/python3.7/http/client.py\u001b[0m in \u001b[0;36m_read_status\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    265\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    266\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m_read_status\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 267\u001b[0;31m         \u001b[0mline\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreadline\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_MAXLINE\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"iso-8859-1\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    268\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0m_MAXLINE\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    269\u001b[0m             \u001b[0;32mraise\u001b[0m \u001b[0mLineTooLong\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"status line\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/conda/lib/python3.7/socket.py\u001b[0m in \u001b[0;36mreadinto\u001b[0;34m(self, b)\u001b[0m\n\u001b[1;32m    587\u001b[0m         \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    588\u001b[0m             \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 589\u001b[0;31m                 \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sock\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecv_into\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    590\u001b[0m             \u001b[0;32mexcept\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    591\u001b[0m                 \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_timeout_occurred\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/conda/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py\u001b[0m in \u001b[0;36mrecv_into\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m    311\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mrecv_into\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    312\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 313\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconnection\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecv_into\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    314\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mOpenSSL\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSSL\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSysCallError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    315\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msuppress_ragged_eofs\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0margs\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"Unexpected EOF\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/opt/conda/lib/python3.7/site-packages/OpenSSL/SSL.py\u001b[0m in \u001b[0;36mrecv_into\u001b[0;34m(self, buffer, nbytes, flags)\u001b[0m\n\u001b[1;32m   1837\u001b[0m             \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_lib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSSL_peek\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_ssl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbuf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnbytes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1838\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1839\u001b[0;31m             \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_lib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSSL_read\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_ssl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbuf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnbytes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1840\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_raise_ssl_error\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_ssl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1841\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
     ]
    }
   ],
   "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",
Simon van Hemert's avatar
Simon van Hemert committed
    "download_folder = \"./brandnew_images/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": 11,
   "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 82 images belonging to 8 classes.\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., 1., 1., 1., 1., 1., 1., 1.,\n",
       "       1., 1., 1., 1., 1., 2., 2., 2.], dtype=float32)"
Simon van Hemert's avatar
Simon van Hemert committed
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# These are the class names; this defines the ordering of the classes\n",
Simon van Hemert's avatar
Simon van Hemert committed
    "class_names = [\"brad pitt\", \"johnny depp\", \"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",
Simon van Hemert's avatar
Simon van Hemert committed
    "dir_iter = train_datagen.flow_from_directory('./brandnew_images/train/', \n",
    "                                         target_size=(image_size, image_size),\n",
    "                                         classes=class_names,\n",
    "                                         batch_size=25, class_mode='sparse', shuffle=False)\n",
    "\n",
Simon van Hemert's avatar
Simon van Hemert committed
    "plot_img(dir_iter[0][0][1,...])\n",
    "dir_iter[0][1]"
   ]
  },
  {
   "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": [
Simon van Hemert's avatar
Simon van Hemert committed
    "If you want to use the example of this jupyter notebook, you can use the images provided in the ./train and ./validation folders."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "xPqJWgeAGhJL"
   },
   "source": [
    "## Define a ConvNet Model"
   ]
  },
  {
   "cell_type": "code",
Simon van Hemert's avatar
Simon van Hemert committed
   "execution_count": 13,
   "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",
Simon van Hemert's avatar
Simon van Hemert committed
   "execution_count": 17,
   "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",
Simon van Hemert's avatar
Simon van Hemert committed
   "execution_count": 18,
   "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",
Simon van Hemert's avatar
Simon van Hemert committed
   "execution_count": 19,
   "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",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 13s 559ms/step - loss: 2.0878 - accuracy: 0.1375 - val_loss: 2.0749 - val_accuracy: 0.2125\n",
      "Epoch 2/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 11s 469ms/step - loss: 2.0694 - accuracy: 0.1854 - val_loss: 2.0569 - val_accuracy: 0.1875\n",
      "Epoch 3/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 11s 479ms/step - loss: 2.0304 - accuracy: 0.2021 - val_loss: 1.9721 - val_accuracy: 0.2625\n",
      "Epoch 4/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 12s 480ms/step - loss: 1.9389 - accuracy: 0.2625 - val_loss: 1.9115 - val_accuracy: 0.3125\n",
      "Epoch 5/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 12s 502ms/step - loss: 1.8559 - accuracy: 0.2854 - val_loss: 1.8736 - val_accuracy: 0.3250\n",
      "Epoch 6/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 12s 504ms/step - loss: 1.7830 - accuracy: 0.3458 - val_loss: 1.7881 - val_accuracy: 0.4250\n",
      "Epoch 7/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 12s 483ms/step - loss: 1.7342 - accuracy: 0.3063 - val_loss: 1.6873 - val_accuracy: 0.4375\n",
      "Epoch 8/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 12s 489ms/step - loss: 1.6810 - accuracy: 0.3792 - val_loss: 1.6535 - val_accuracy: 0.4500\n",
      "Epoch 9/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 12s 493ms/step - loss: 1.6048 - accuracy: 0.3875 - val_loss: 1.6338 - val_accuracy: 0.4375\n",
      "Epoch 10/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 12s 514ms/step - loss: 1.5797 - accuracy: 0.3667 - val_loss: 1.6293 - val_accuracy: 0.4125\n",
      "Epoch 11/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 12s 493ms/step - loss: 1.5354 - accuracy: 0.4479 - val_loss: 1.6486 - val_accuracy: 0.4125\n",
      "Epoch 12/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 12s 511ms/step - loss: 1.5118 - accuracy: 0.4583 - val_loss: 1.5706 - val_accuracy: 0.4500\n",
      "Epoch 13/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 12s 503ms/step - loss: 1.4199 - accuracy: 0.4521 - val_loss: 1.5757 - val_accuracy: 0.4375\n",
      "Epoch 14/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 11s 477ms/step - loss: 1.4138 - accuracy: 0.4729 - val_loss: 1.5144 - val_accuracy: 0.4125\n",
      "Epoch 15/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 12s 498ms/step - loss: 1.2885 - accuracy: 0.5375 - val_loss: 1.6045 - val_accuracy: 0.4000\n",
      "Epoch 16/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 12s 484ms/step - loss: 1.3630 - accuracy: 0.4833 - val_loss: 1.4990 - val_accuracy: 0.4375\n",
      "Epoch 17/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 12s 511ms/step - loss: 1.2668 - accuracy: 0.5208 - val_loss: 1.4643 - val_accuracy: 0.4750\n",
      "Epoch 18/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 12s 495ms/step - loss: 1.1916 - accuracy: 0.5771 - val_loss: 1.4754 - val_accuracy: 0.4375\n",
      "Epoch 19/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 12s 485ms/step - loss: 1.1458 - accuracy: 0.5625 - val_loss: 1.5532 - val_accuracy: 0.4500\n",
      "Epoch 20/20\n",
Simon van Hemert's avatar
Simon van Hemert committed
      "24/24 [==============================] - 12s 494ms/step - loss: 1.1161 - accuracy: 0.5833 - val_loss: 1.5741 - val_accuracy: 0.4875\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]])"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_data = np.load('./models/bottleneck_features_train.npy')\n",
    "\n",
    "# the features were saved in order, so recreating the labels is easy\n",
    "train_labels = np.zeros((num_train_images, num_classes), dtype=int)\n",
    "for ind in range(num_classes):\n",
    "    step = num_train_images // num_classes\n",
    "    train_labels[ind*step:(ind+1)*step,ind]=1\n",
    "\n",
    "train_labels"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",