{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img width=\"800px\" src=\"../fidle/img/00-Fidle-header-01.svg\"></img>\n",
    "\n",
    "# <!-- TITLE --> [IMDB1] - Sentiment alalysis with text embedding\n",
    "<!-- DESC --> A very classical example of word embedding with a dataset from Internet Movie Database (IMDB)\n",
    "<!-- AUTHOR : Jean-Luc Parouty (CNRS/SIMaP) -->\n",
    "\n",
    "## Objectives :\n",
    " - The objective is to guess whether film reviews are **positive or negative** based on the analysis of the text. \n",
    " - Understand the management of **textual data** and **sentiment analysis**\n",
    "\n",
    "Original dataset can be find **[there](http://ai.stanford.edu/~amaas/data/sentiment/)**  \n",
    "Note that [IMDb.com](https://imdb.com) offers several easy-to-use [datasets](https://www.imdb.com/interfaces/)  \n",
    "For simplicity's sake, we'll use the dataset directly [embedded in Keras](https://www.tensorflow.org/api_docs/python/tf/keras/datasets)\n",
    "\n",
    "## What we're going to do :\n",
    "\n",
    " - Retrieve data\n",
    " - Preparing the data\n",
    " - Build a model\n",
    " - Train the model\n",
    " - Evaluate the result\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Step 1 - Init python stuff"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>\n",
       "\n",
       "div.warn {    \n",
       "    background-color: #fcf2f2;\n",
       "    border-color: #dFb5b4;\n",
       "    border-left: 5px solid #dfb5b4;\n",
       "    padding: 0.5em;\n",
       "    font-weight: bold;\n",
       "    font-size: 1.1em;;\n",
       "    }\n",
       "\n",
       "\n",
       "\n",
       "div.nota {    \n",
       "    background-color: #DAFFDE;\n",
       "    border-left: 5px solid #92CC99;\n",
       "    padding: 0.5em;\n",
       "    }\n",
       "\n",
       "div.todo:before { content:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1My44OTEyIiBoZWlnaHQ9IjE0My4zOTAyIiB2aWV3Qm94PSIwIDAgNTMuODkxMiAxNDMuMzkwMiI+PHRpdGxlPjAwLUJvYi10b2RvPC90aXRsZT48cGF0aCBkPSJNMjMuNDU2OCwxMTQuMzAxNmExLjgwNjMsMS44MDYzLDAsMSwxLDEuODE1NywxLjgyNEExLjgyMDksMS44MjA5LDAsMCwxLDIzLjQ1NjgsMTE0LjMwMTZabS0xMC42NjEyLDEuODIyQTEuODI3MiwxLjgyNzIsMCwxLDAsMTAuOTgsMTE0LjMsMS44MiwxLjgyLDAsMCwwLDEyLjc5NTYsMTE2LjEyMzZabS03LjcwNyw0LjU4NzR2LTVzLjQ4NjMtOS4xMjIzLDguMDIxNS0xMS45Njc1YTE5LjIwODIsMTkuMjA4MiwwLDAsMSw2LjA0ODYtMS4yNDU0LDE5LjE3NzgsMTkuMTc3OCwwLDAsMSw2LjA0ODcsMS4yNDc1YzcuNTM1MSwyLjgzNDcsOC4wMTc0LDExLjk2NzQsOC4wMTc0LDExLjk2NzR2NS4wMjM0bC4wMDQyLDcuNjgydjIuNGMuMDE2Ny4xOTkyLjAzMzYuMzkyMS4wMzM2LjU4NzEsMCwuMjEzOC0uMDE2OC40MTA5LS4wMzM2LjYzMzJ2LjA1ODdoLS4wMDg0YTguMzcxOSw4LjM3MTksMCwwLDEtNy4zNzM4LDcuNjU0N3MtLjk5NTMsMy42MzgtNi42OTMzLDMuNjM4LTYuNjkzNC0zLjYzOC02LjY5MzQtMy42MzhhOC4zNyw4LjM3LDAsMCwxLTcuMzcxNi03LjY1NDdINS4wODQzdi0uMDU4N2MtLjAxODktLjIyLS4wMjk0LS40MTk0LS4wMjk0LS42MzMyLDAtLjE5MjkuMDE2Ny0uMzgzNy4wMjk0LS41ODcxdi0yLjRtMTguMDkzNy00LjA0YTEuMTU2NSwxLjE1NjUsMCwxLDAtMi4zMTI2LDAsMS4xNTY0LDEuMTU2NCwwLDEsMCwyLjMxMjYsMFptNC4wODM0LDBhMS4xNTk1LDEuMTU5NSwwLDEsMC0xLjE2MzYsMS4xN0ExLjE3NSwxLjE3NSwwLDAsMCwyNy4yNjE0LDEyNC4zNzc5Wk05LjM3MzksMTE0LjYzNWMwLDMuMTA5MywyLjQxMzIsMy4zMSwyLjQxMzIsMy4zMWExMzMuOTI0MywxMzMuOTI0MywwLDAsMCwxNC43MzQ4LDBzMi40MTExLS4xOTI5LDIuNDExMS0zLjMxYTguMDc3Myw4LjA3NzMsMCwwLDAtMi40MTExLTUuNTUxOWMtNC41LTMuNTAzMy05LjkxMjYtMy41MDMzLTE0Ljc0MTEsMEE4LjA4NTEsOC4wODUxLDAsMCwwLDkuMzczOSwxMTQuNjM1WiIgc3R5bGU9ImZpbGw6IzAxMDEwMSIvPjxjaXJjbGUgY3g9IjMzLjE0MzYiIGN5PSIxMjQuNTM0IiByPSIzLjgzNjMiIHN0eWxlPSJmaWxsOiMwMTAxMDEiLz48cmVjdCB4PSIzNS42NjU5IiB5PSIxMTIuOTYyNSIgd2lkdGg9IjIuMDc3IiBoZWlnaHQ9IjEwLjU0NTgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIxLjYgMjQxLjExMjEpIHJvdGF0ZSgtMTU1Ljc0NikiIHN0eWxlPSJmaWxsOiMwMTAxMDEiLz48Y2lyY2xlIGN4PSIzOC44NzA0IiBjeT0iMTEzLjQyNzkiIHI9IjIuNDA4NSIgc3R5bGU9ImZpbGw6IzAxMDEwMSIvPjxjaXJjbGUgY3g9IjUuMjI0OCIgY3k9IjEyNC41MzQiIHI9IjMuODM2MyIgc3R5bGU9ImZpbGw6IzAxMDEwMSIvPjxyZWN0IHg9IjEuNDE2NCIgeT0iMTI0LjYzMDEiIHdpZHRoPSIyLjA3NyIgaGVpZ2h0PSIxMC41NDU4IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0LjkwOTcgMjU5LjgwNikgcm90YXRlKC0xODApIiBzdHlsZT0iZmlsbDojMDEwMTAxIi8+PGNpcmNsZSBjeD0iMi40MDkxIiBjeT0iMTM3LjA5OTYiIHI9IjIuNDA4NSIgc3R5bGU9ImZpbGw6IzAxMDEwMSIvPjxwYXRoIGQ9Ik0xOC4wNTExLDEwMC4xMDY2aC0uMDE0NlYxMDIuNjFoMi4zdi0yLjQyNzlhMi40MjI5LDIuNDIyOSwwLDEsMC0yLjI4NTQtLjA3NTVaIiBzdHlsZT0iZmlsbDojMDEwMTAxIi8+PHBhdGggZD0iTTM5LjQyMTQsMjcuMjU4djEuMDVBMTEuOTQ1MiwxMS45NDUyLDAsMCwwLDQ0LjU5NTQsNS43OWEuMjQ0OS4yNDQ5LDAsMCwxLS4wMjM1LS40MjI3TDQ2Ljc1LDMuOTUxNWEuMzg5Mi4zODkyLDAsMCwxLC40MjYyLDAsMTQuODQ0MiwxNC44NDQyLDAsMCwxLTcuNzU0MywyNy4yNTkxdjEuMDY3YS40NS40NSwwLDAsMS0uNzA0Ny4zNzU4bC0zLjg0MTktMi41MWEuNDUuNDUsMCwwLDEsMC0uNzUxNmwzLjg0MTktMi41MWEuNDUuNDUsMCwwLDEsLjY5NDYuMzc1OFpNNDMuMjMsMi41ODkyLDM5LjM4NzguMDc5NGEuNDUuNDUsMCwwLDAtLjcwNDYuMzc1OHYxLjA2N2ExNC44NDQyLDE0Ljg0NDIsMCwwLDAtNy43NTQzLDI3LjI1OTEuMzg5LjM4OSwwLDAsMCwuNDI2MSwwbDIuMTc3Ny0xLjQxOTNhLjI0NS4yNDUsMCwwLDAtLjAyMzUtLjQyMjgsMTEuOTQ1MSwxMS45NDUxLDAsMCwxLDUuMTc0LTIyLjUxNDZ2MS4wNWEuNDUuNDUsMCwwLDAsLjcwNDYuMzc1OGwzLjg1NTMtMi41MWEuNDUuNDUsMCwwLDAsMC0uNzUxNlpNMzkuMDUyMywxNC4yNDU4YTIuMTIwNiwyLjEyMDYsMCwxLDAsMi4xMjA2LDIuMTIwNmgwQTIuMTI0LDIuMTI0LDAsMCwwLDM5LjA1MjMsMTQuMjQ1OFptNi4wNzMyLTQuNzc4MS44MjU0LjgyNTVhMS4wNTY4LDEuMDU2OCwwLDAsMSwuMTE3NSwxLjM0MjFsLS44MDIsMS4xNDQyYTcuMTAxOCw3LjEwMTgsMCwwLDEsLjcxMTQsMS43MTEybDEuMzc1Ny4yNDE2YTEuMDU2OSwxLjA1NjksMCwwLDEsLjg3NTcsMS4wNHYxLjE2NDNhMS4wNTY5LDEuMDU2OSwwLDAsMS0uODc1NywxLjA0bC0xLjM3MjQuMjQxNkE3LjExLDcuMTEsMCwwLDEsNDUuMjcsMTkuOTNsLjgwMTksMS4xNDQyYTEuMDU3LDEuMDU3LDAsMCwxLS4xMTc0LDEuMzQyMmwtLjgyODguODQ4OWExLjA1NywxLjA1NywwLDAsMS0xLjM0MjEuMTE3NGwtMS4xNDQyLS44MDE5YTcuMTMzOCw3LjEzMzgsMCwwLDEtMS43MTEzLjcxMTNsLS4yNDE2LDEuMzcyNGExLjA1NjgsMS4wNTY4LDAsMCwxLTEuMDQuODc1N0gzOC40Njg0YTEuMDU2OCwxLjA1NjgsMCwwLDEtMS4wNC0uODc1N2wtLjI0MTYtMS4zNzI0YTcuMTM1NSw3LjEzNTUsMCwwLDEtMS43MTEzLS43MTEzbC0xLjE0NDEuODAxOWExLjA1NzEsMS4wNTcxLDAsMCwxLTEuMzQyMi0uMTE3NGwtLjgzNTUtLjgyNTVhMS4wNTcsMS4wNTcsMCwwLDEtLjExNzQtMS4zNDIxbC44MDE5LTEuMTQ0MmE3LjEyMSw3LjEyMSwwLDAsMS0uNzExMy0xLjcxMTJsLTEuMzcyNC0uMjQxNmExLjA1NjksMS4wNTY5LDAsMCwxLS44NzU3LTEuMDRWMTUuNzgyNmExLjA1NjksMS4wNTY5LDAsMCwxLC44NzU3LTEuMDRsMS4zNzU3LS4yNDE2YTcuMTEsNy4xMSwwLDAsMSwuNzExNC0xLjcxMTJsLS44MDItMS4xNDQyYTEuMDU3LDEuMDU3LDAsMCwxLC4xMTc1LTEuMzQyMmwuODI1NC0uODI1NEExLjA1NjgsMS4wNTY4LDAsMCwxLDM0LjMyNDUsOS4zNmwxLjE0NDIuODAxOUE3LjEzNTUsNy4xMzU1LDAsMCwxLDM3LjE4LDkuNDUxbC4yNDE2LTEuMzcyNGExLjA1NjgsMS4wNTY4LDAsMCwxLDEuMDQtLjg3NTdoMS4xNjc3YTEuMDU2OSwxLjA1NjksMCwwLDEsMS4wNC44NzU3bC4yNDE2LDEuMzcyNGE3LjEyNSw3LjEyNSwwLDAsMSwxLjcxMTIuNzExM0w0My43NjY2LDkuMzZBMS4wNTY5LDEuMDU2OSwwLDAsMSw0NS4xMjU1LDkuNDY3N1ptLTIuMDMsNi44OTg3QTQuMDQzMyw0LjA0MzMsMCwxLDAsMzkuMDUyMywyMC40MWgwQTQuMDQ2NSw0LjA0NjUsMCwwLDAsNDMuMDk1NSwxNi4zNjY0WiIgc3R5bGU9ImZpbGw6I2UxMjIyOSIvPjxwb2x5Z29uIHBvaW50cz0iMzkuNDEzIDM0Ljc1NyAzOS41MzcgMzQuNzU3IDM5LjY3NSAzNC43NTcgMzkuNjc1IDEwOS41MSAzOS41MzcgMTA5LjUxIDM5LjQxMyAxMDkuNTEgMzkuNDEzIDM0Ljc1NyAzOS40MTMgMzQuNzU3IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojOTk5O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO3N0cm9rZS13aWR0aDowLjMwODg1NDQ1MDU2MDE2MThweDtmaWxsLXJ1bGU6ZXZlbm9kZCIvPjwvc3ZnPg==);\n",
       "    float:left;\n",
       "    margin-right:20px;\n",
       "    margin-top:-20px;\n",
       "    margin-bottom:20px;\n",
       "}\n",
       "div.todo{\n",
       "    font-weight: bold;\n",
       "    font-size: 1.1em;\n",
       "    margin-top:40px;\n",
       "}\n",
       "div.todo ul{\n",
       "    margin: 0.2em;\n",
       "}\n",
       "div.todo li{\n",
       "    margin-left:60px;\n",
       "    margin-top:0;\n",
       "    margin-bottom:0;\n",
       "}\n",
       "\n",
       "div .comment{\n",
       "    font-size:0.8em;\n",
       "    color:#696969;\n",
       "}\n",
       "\n",
       "\n",
       "\n",
       "</style>\n",
       "\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "**FIDLE 2020 - Practical Work Module**"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Version              : 0.6.1 DEV\n",
      "Notebook id          : IMDB1\n",
      "Run time             : Friday 18 December 2020, 17:52:06\n",
      "TensorFlow version   : 2.0.0\n",
      "Keras version        : 2.2.4-tf\n",
      "Datasets dir         : /home/pjluc/datasets/fidle\n",
      "Running mode         : full\n",
      "Update keras cache   : False\n",
      "Save figs            : True\n",
      "Path figs            : ./run/figs\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "import tensorflow as tf\n",
    "import tensorflow.keras as keras\n",
    "import tensorflow.keras.datasets.imdb as imdb\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib\n",
    "\n",
    "import os,sys,h5py,json\n",
    "from importlib import reload\n",
    "\n",
    "sys.path.append('..')\n",
    "import fidle.pwk as pwk\n",
    "\n",
    "datasets_dir = pwk.init('IMDB1')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Step 2 - Retrieve data\n",
    "\n",
    "IMDb dataset can bet get directly from Keras - see [documentation](https://www.tensorflow.org/api_docs/python/tf/keras/datasets)  \n",
    "Note : Due to their nature, textual data can be somewhat complex.\n",
    "\n",
    "### 2.1 - Data structure :  \n",
    "The dataset is composed of 2 parts: \n",
    "\n",
    " - **reviews**, this will be our **x**\n",
    " - **opinions** (positive/negative), this will be our **y**\n",
    "\n",
    "There are also a **dictionary**, because words are indexed in reviews\n",
    "\n",
    "```\n",
    "<dataset> = (<reviews>, <opinions>)\n",
    "\n",
    "with :  <reviews>  = [ <review1>, <review2>, ... ]\n",
    "        <opinions> = [ <rate1>,   <rate2>,   ... ]   where <ratei>   = integer\n",
    "\n",
    "where : <reviewi> = [ <w1>, <w2>, ...]    <wi> are the index (int) of the word in the dictionary\n",
    "        <ratei>   = int                   0 for negative opinion, 1 for positive\n",
    "\n",
    "\n",
    "<dictionary> = [ <word1>:<w1>, <word2>:<w2>, ... ]\n",
    "\n",
    "with :  <wordi>   = word\n",
    "        <wi>      = int\n",
    "\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.2 - Get dataset\n",
    "For simplicity, we will use a pre-formatted dataset - See [documentation](https://www.tensorflow.org/api_docs/python/tf/keras/datasets/imdb/load_data)  \n",
    "However, Keras offers some usefull tools for formatting textual data - See [documentation](https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/text)  \n",
    "\n",
    "**Load dataset :**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/pjluc/anaconda3/envs/fidle/lib/python3.7/site-packages/tensorflow_core/python/keras/datasets/imdb.py:129: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray\n",
      "  x_train, y_train = np.array(xs[:idx]), np.array(labels[:idx])\n",
      "/home/pjluc/anaconda3/envs/fidle/lib/python3.7/site-packages/tensorflow_core/python/keras/datasets/imdb.py:130: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray\n",
      "  x_test, y_test = np.array(xs[idx:]), np.array(labels[idx:])\n"
     ]
    }
   ],
   "source": [
    "vocab_size = 10000\n",
    "\n",
    "# ----- Retrieve x,y\n",
    "\n",
    "# Uncomment this if you want to load dataset directly from keras (small size <20M)\n",
    "#\n",
    "(x_train, y_train), (x_test, y_test) = imdb.load_data( num_words  = vocab_size,\n",
    "                                                       skip_top   = 0,\n",
    "                                                       maxlen     = None,\n",
    "                                                       seed       = 42,\n",
    "                                                       start_char = 1,\n",
    "                                                       oov_char   = 2,\n",
    "                                                       index_from = 3, )\n",
    "\n",
    "# To load a h5 version of the dataset :\n",
    "#\n",
    "# with  h5py.File(f'{datasets_dir}/IMDB/origine/dataset_imdb.h5','r') as f:\n",
    "#        x_train = f['x_train'][:]\n",
    "#        y_train = f['y_train'][:]\n",
    "#        x_test  = f['x_test'][:]\n",
    "#        y_test  = f['y_test'][:]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**About this dataset :**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  Max(x_train,x_test)  :  9999\n",
      "  x_train : (25000,)  y_train : (25000,)\n",
      "  x_test  : (25000,)  y_test  : (25000,)\n",
      "\n",
      "Review example (x_train[12]) :\n",
      "\n",
      " [1, 14, 22, 1367, 53, 206, 159, 4, 636, 898, 74, 26, 11, 436, 363, 108, 7, 14, 432, 14, 22, 9, 1055, 34, 8599, 2, 5, 381, 3705, 4509, 14, 768, 47, 839, 25, 111, 1517, 2579, 1991, 438, 2663, 587, 4, 280, 725, 6, 58, 11, 2714, 201, 4, 206, 16, 702, 5, 5176, 19, 480, 5920, 157, 13, 64, 219, 4, 2, 11, 107, 665, 1212, 39, 4, 206, 4, 65, 410, 16, 565, 5, 24, 43, 343, 17, 5602, 8, 169, 101, 85, 206, 108, 8, 3008, 14, 25, 215, 168, 18, 6, 2579, 1991, 438, 2, 11, 129, 1609, 36, 26, 66, 290, 3303, 46, 5, 633, 115, 4363]\n"
     ]
    }
   ],
   "source": [
    "print(\"  Max(x_train,x_test)  : \", pwk.rmax([x_train,x_test]) )\n",
    "print(\"  x_train : {}  y_train : {}\".format(x_train.shape, y_train.shape))\n",
    "print(\"  x_test  : {}  y_test  : {}\".format(x_test.shape,  y_test.shape))\n",
    "\n",
    "print('\\nReview example (x_train[12]) :\\n\\n',x_train[12])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.3 - Have a look for humans (optional)\n",
    "When we loaded the dataset, we asked for using \\<start\\> as 1, \\<unknown word\\> as 2  \n",
    "So, we shifted the dataset by 3 with the parameter index_from=3\n",
    "\n",
    "**Load dictionary :**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# ---- Retrieve dictionary {word:index}, and encode it in ascii\n",
    "#\n",
    "word_index = imdb.get_word_index()\n",
    "\n",
    "# ---- Shift the dictionary from +3\n",
    "#\n",
    "word_index = {w:(i+3) for w,i in word_index.items()}\n",
    "\n",
    "# ---- Add <pad>, <start> and unknown tags\n",
    "#\n",
    "word_index.update( {'<pad>':0, '<start>':1, '<unknown>':2} )\n",
    "\n",
    "# ---- Create a reverse dictionary : {index:word}\n",
    "#\n",
    "index_word = {index:word for word,index in word_index.items()} \n",
    "\n",
    "# ---- Add a nice function to transpose :\n",
    "#\n",
    "def dataset2text(review):\n",
    "    return ' '.join([index_word.get(i, '?') for i in review])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Have a look :**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Dictionary size     :  88587\n",
      "440 : hope\n",
      "441 : entertaining\n",
      "442 : she's\n",
      "443 : mr\n",
      "444 : overall\n",
      "445 : evil\n",
      "446 : called\n",
      "447 : loved\n",
      "448 : based\n",
      "449 : oh\n",
      "450 : several\n",
      "451 : fans\n",
      "452 : mother\n",
      "453 : drama\n",
      "454 : beginning\n"
     ]
    },
    {
     "data": {
      "text/markdown": [
       "<br>**Review example :**"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1, 14, 22, 1367, 53, 206, 159, 4, 636, 898, 74, 26, 11, 436, 363, 108, 7, 14, 432, 14, 22, 9, 1055, 34, 8599, 2, 5, 381, 3705, 4509, 14, 768, 47, 839, 25, 111, 1517, 2579, 1991, 438, 2663, 587, 4, 280, 725, 6, 58, 11, 2714, 201, 4, 206, 16, 702, 5, 5176, 19, 480, 5920, 157, 13, 64, 219, 4, 2, 11, 107, 665, 1212, 39, 4, 206, 4, 65, 410, 16, 565, 5, 24, 43, 343, 17, 5602, 8, 169, 101, 85, 206, 108, 8, 3008, 14, 25, 215, 168, 18, 6, 2579, 1991, 438, 2, 11, 129, 1609, 36, 26, 66, 290, 3303, 46, 5, 633, 115, 4363]\n"
     ]
    },
    {
     "data": {
      "text/markdown": [
       "<br>**After translation :**"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<start> this film contains more action before the opening credits than are in entire hollywood films of this sort this film is produced by tsui <unknown> and stars jet li this team has brought you many worthy hong kong cinema productions including the once upon a time in china series the action was fast and furious with amazing wire work i only saw the <unknown> in two shots aside from the action the story itself was strong and not just used as filler to find any other action films to rival this you must look for a hong kong cinema <unknown> in your area they are really worth checking out and usually never disappoint\n"
     ]
    }
   ],
   "source": [
    "print('\\nDictionary size     : ', len(word_index))\n",
    "for k in range(440,455):print(f'{k:2d} : {index_word[k]}' )\n",
    "pwk.subtitle('Review example :')\n",
    "print(x_train[12])\n",
    "pwk.subtitle('After translation :')\n",
    "print(dataset2text(x_train[12]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.4 - Have a look for NN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div class=\"comment\">Saved: ./run/figs/IMDB1-01-stats-sizes</div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sizes=[len(i) for i in x_train]\n",
    "plt.figure(figsize=(16,6))\n",
    "plt.hist(sizes, bins=400)\n",
    "plt.gca().set(title='Distribution of reviews by size - [{:5.2f}, {:5.2f}]'.format(min(sizes),max(sizes)), \n",
    "              xlabel='Size', ylabel='Density', xlim=[0,1500])\n",
    "pwk.save_fig('01-stats-sizes')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Step 3 - Preprocess the data (padding)\n",
    "In order to be processed by an NN, all entries must have the **same length.**  \n",
    "We chose a review length of **review_len**  \n",
    "We will therefore complete them with a padding (of \\<pad\\>\\)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/markdown": [
       "<br>**After padding :**"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[   1   14   22 1367   53  206  159    4  636  898   74   26   11  436\n",
      "  363  108    7   14  432   14   22    9 1055   34 8599    2    5  381\n",
      " 3705 4509   14  768   47  839   25  111 1517 2579 1991  438 2663  587\n",
      "    4  280  725    6   58   11 2714  201    4  206   16  702    5 5176\n",
      "   19  480 5920  157   13   64  219    4    2   11  107  665 1212   39\n",
      "    4  206    4   65  410   16  565    5   24   43  343   17 5602    8\n",
      "  169  101   85  206  108    8 3008   14   25  215  168   18    6 2579\n",
      " 1991  438    2   11  129 1609   36   26   66  290 3303   46    5  633\n",
      "  115 4363    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0    0    0    0    0    0    0    0    0    0    0\n",
      "    0    0    0    0]\n"
     ]
    },
    {
     "data": {
      "text/markdown": [
       "<br>**In real words :**"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<start> this film contains more action before the opening credits than are in entire hollywood films of this sort this film is produced by tsui <unknown> and stars jet li this team has brought you many worthy hong kong cinema productions including the once upon a time in china series the action was fast and furious with amazing wire work i only saw the <unknown> in two shots aside from the action the story itself was strong and not just used as filler to find any other action films to rival this you must look for a hong kong cinema <unknown> in your area they are really worth checking out and usually never disappoint <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad> <pad>\n"
     ]
    }
   ],
   "source": [
    "review_len = 256\n",
    "\n",
    "x_train = keras.preprocessing.sequence.pad_sequences(x_train,\n",
    "                                                     value   = 0,\n",
    "                                                     padding = 'post',\n",
    "                                                     maxlen  = review_len)\n",
    "\n",
    "x_test  = keras.preprocessing.sequence.pad_sequences(x_test,\n",
    "                                                     value   = 0 ,\n",
    "                                                     padding = 'post',\n",
    "                                                     maxlen  = review_len)\n",
    "\n",
    "pwk.subtitle('After padding :')\n",
    "print(x_train[12])\n",
    "pwk.subtitle('In real words :')\n",
    "print(dataset2text(x_train[12]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Save dataset and dictionary (For future use but not mandatory)**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saved.\n"
     ]
    }
   ],
   "source": [
    "# ---- Write dataset in a h5 file, could be usefull\n",
    "#\n",
    "output_dir = './data'\n",
    "pwk.mkdir(output_dir)\n",
    "\n",
    "with h5py.File(f'{output_dir}/dataset_imdb.h5', 'w') as f:\n",
    "    f.create_dataset(\"x_train\",    data=x_train)\n",
    "    f.create_dataset(\"y_train\",    data=y_train)\n",
    "    f.create_dataset(\"x_test\",     data=x_test)\n",
    "    f.create_dataset(\"y_test\",     data=y_test)\n",
    "\n",
    "with open(f'{output_dir}/word_index.json', 'w') as fp:\n",
    "    json.dump(word_index, fp)\n",
    "\n",
    "with open(f'{output_dir}/index_word.json', 'w') as fp:\n",
    "    json.dump(index_word, fp)\n",
    "\n",
    "print('Saved.')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Step 4 - Build the model\n",
    "Few remarks :\n",
    " - We'll choose a dense vector size for the embedding output with **dense_vector_size**\n",
    " - **GlobalAveragePooling1D** do a pooling on the last dimension : (None, lx, ly) -> (None, ly)  \n",
    "   In other words: we average the set of vectors/words of a sentence\n",
    " - L'embedding de Keras fonctionne de manière supervisée. Il s'agit d'une couche de *vocab_size* neurones vers *n_neurons* permettant de maintenir une table de vecteurs (les poids constituent les vecteurs). Cette couche ne calcule pas de sortie a la façon des couches normales, mais renvois la valeur des vecteurs. n mots => n vecteurs (ensuite empilés par le pooling)  \n",
    "Voir : [Explication plus détaillée (en)](https://stats.stackexchange.com/questions/324992/how-the-embedding-layer-is-trained-in-keras-embedding-layer)  \n",
    "ainsi que : [Sentiment detection with Keras](https://www.liip.ch/en/blog/sentiment-detection-with-keras-word-embeddings-and-lstm-deep-learning-networks)  \n",
    "\n",
    "More documentation about this model functions :\n",
    " - [Embedding](https://www.tensorflow.org/api_docs/python/tf/keras/layers/Embedding)\n",
    " - [GlobalAveragePooling1D](https://www.tensorflow.org/api_docs/python/tf/keras/layers/GlobalAveragePooling1D)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_model(dense_vector_size=32):\n",
    "    \n",
    "    model = keras.Sequential()\n",
    "    model.add(keras.layers.Embedding(input_dim    = vocab_size, \n",
    "                                     output_dim   = dense_vector_size, \n",
    "                                     input_length = review_len))\n",
    "    model.add(keras.layers.GlobalAveragePooling1D())\n",
    "    model.add(keras.layers.Dense(dense_vector_size, activation='relu'))\n",
    "    model.add(keras.layers.Dense(1,                 activation='sigmoid'))\n",
    "\n",
    "    model.compile(optimizer = 'adam',\n",
    "                  loss      = 'binary_crossentropy',\n",
    "                  metrics   = ['accuracy'])\n",
    "    return model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Step 5 - Train the model\n",
    "### 5.1 - Get it"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "embedding (Embedding)        (None, 256, 32)           320000    \n",
      "_________________________________________________________________\n",
      "global_average_pooling1d (Gl (None, 32)                0         \n",
      "_________________________________________________________________\n",
      "dense (Dense)                (None, 32)                1056      \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 1)                 33        \n",
      "=================================================================\n",
      "Total params: 321,089\n",
      "Trainable params: 321,089\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model = get_model(32)\n",
    "\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5.2 - Add callback"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "os.makedirs('./run/models',   mode=0o750, exist_ok=True)\n",
    "save_dir = \"./run/models/best_model.h5\"\n",
    "savemodel_callback = tf.keras.callbacks.ModelCheckpoint(filepath=save_dir, verbose=0, save_best_only=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5.1 - Train it"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 25000 samples, validate on 25000 samples\n",
      "Epoch 1/30\n",
      "25000/25000 [==============================] - 1s 57us/sample - loss: 0.6881 - accuracy: 0.6431 - val_loss: 0.6782 - val_accuracy: 0.7408\n",
      "Epoch 2/30\n",
      "25000/25000 [==============================] - 1s 32us/sample - loss: 0.6506 - accuracy: 0.7618 - val_loss: 0.6168 - val_accuracy: 0.7650\n",
      "Epoch 3/30\n",
      "25000/25000 [==============================] - 1s 31us/sample - loss: 0.5590 - accuracy: 0.8060 - val_loss: 0.5135 - val_accuracy: 0.8203\n",
      "Epoch 4/30\n",
      "25000/25000 [==============================] - 1s 31us/sample - loss: 0.4460 - accuracy: 0.8512 - val_loss: 0.4198 - val_accuracy: 0.8487\n",
      "Epoch 5/30\n",
      "25000/25000 [==============================] - 1s 31us/sample - loss: 0.3606 - accuracy: 0.8758 - val_loss: 0.3636 - val_accuracy: 0.8609\n",
      "Epoch 6/30\n",
      "25000/25000 [==============================] - 1s 31us/sample - loss: 0.3074 - accuracy: 0.8894 - val_loss: 0.3322 - val_accuracy: 0.8676\n",
      "Epoch 7/30\n",
      "25000/25000 [==============================] - 1s 31us/sample - loss: 0.2719 - accuracy: 0.9016 - val_loss: 0.3127 - val_accuracy: 0.8734\n",
      "Epoch 8/30\n",
      "25000/25000 [==============================] - 1s 31us/sample - loss: 0.2457 - accuracy: 0.9103 - val_loss: 0.3007 - val_accuracy: 0.8765\n",
      "Epoch 9/30\n",
      "25000/25000 [==============================] - 1s 30us/sample - loss: 0.2257 - accuracy: 0.9178 - val_loss: 0.2933 - val_accuracy: 0.8795\n",
      "Epoch 10/30\n",
      "25000/25000 [==============================] - 1s 30us/sample - loss: 0.2083 - accuracy: 0.9249 - val_loss: 0.2888 - val_accuracy: 0.8818\n",
      "Epoch 11/30\n",
      "25000/25000 [==============================] - 1s 30us/sample - loss: 0.1938 - accuracy: 0.9310 - val_loss: 0.2874 - val_accuracy: 0.8824\n",
      "Epoch 12/30\n",
      "25000/25000 [==============================] - 1s 31us/sample - loss: 0.1818 - accuracy: 0.9352 - val_loss: 0.2867 - val_accuracy: 0.8826\n",
      "Epoch 13/30\n",
      "25000/25000 [==============================] - 1s 30us/sample - loss: 0.1703 - accuracy: 0.9406 - val_loss: 0.2879 - val_accuracy: 0.8828\n",
      "Epoch 14/30\n",
      "25000/25000 [==============================] - 1s 30us/sample - loss: 0.1605 - accuracy: 0.9451 - val_loss: 0.2922 - val_accuracy: 0.8815\n",
      "Epoch 15/30\n",
      "25000/25000 [==============================] - 1s 29us/sample - loss: 0.1520 - accuracy: 0.9480 - val_loss: 0.2945 - val_accuracy: 0.8828\n",
      "Epoch 16/30\n",
      "25000/25000 [==============================] - 1s 30us/sample - loss: 0.1435 - accuracy: 0.9524 - val_loss: 0.2986 - val_accuracy: 0.8821\n",
      "Epoch 17/30\n",
      "25000/25000 [==============================] - 1s 30us/sample - loss: 0.1359 - accuracy: 0.9551 - val_loss: 0.3042 - val_accuracy: 0.8803\n",
      "Epoch 18/30\n",
      "25000/25000 [==============================] - 1s 29us/sample - loss: 0.1290 - accuracy: 0.9581 - val_loss: 0.3100 - val_accuracy: 0.8783\n",
      "Epoch 19/30\n",
      "25000/25000 [==============================] - 1s 30us/sample - loss: 0.1223 - accuracy: 0.9609 - val_loss: 0.3169 - val_accuracy: 0.8772\n",
      "Epoch 20/30\n",
      "25000/25000 [==============================] - 1s 29us/sample - loss: 0.1167 - accuracy: 0.9632 - val_loss: 0.3245 - val_accuracy: 0.8747\n",
      "Epoch 21/30\n",
      "25000/25000 [==============================] - 1s 30us/sample - loss: 0.1116 - accuracy: 0.9654 - val_loss: 0.3318 - val_accuracy: 0.8756\n",
      "Epoch 22/30\n",
      "25000/25000 [==============================] - 1s 29us/sample - loss: 0.1064 - accuracy: 0.9670 - val_loss: 0.3409 - val_accuracy: 0.8743\n",
      "Epoch 23/30\n",
      "25000/25000 [==============================] - 1s 29us/sample - loss: 0.1007 - accuracy: 0.9704 - val_loss: 0.3478 - val_accuracy: 0.8728\n",
      "Epoch 24/30\n",
      "25000/25000 [==============================] - 1s 30us/sample - loss: 0.0963 - accuracy: 0.9718 - val_loss: 0.3577 - val_accuracy: 0.8718\n",
      "Epoch 25/30\n",
      "25000/25000 [==============================] - 1s 30us/sample - loss: 0.0914 - accuracy: 0.9743 - val_loss: 0.3728 - val_accuracy: 0.8670\n",
      "Epoch 26/30\n",
      "25000/25000 [==============================] - 1s 29us/sample - loss: 0.0887 - accuracy: 0.9744 - val_loss: 0.3746 - val_accuracy: 0.8697\n",
      "Epoch 27/30\n",
      "25000/25000 [==============================] - 1s 29us/sample - loss: 0.0842 - accuracy: 0.9777 - val_loss: 0.3835 - val_accuracy: 0.8683\n",
      "Epoch 28/30\n",
      "25000/25000 [==============================] - 1s 30us/sample - loss: 0.0796 - accuracy: 0.9788 - val_loss: 0.3937 - val_accuracy: 0.8670\n",
      "Epoch 29/30\n",
      "25000/25000 [==============================] - 1s 30us/sample - loss: 0.0763 - accuracy: 0.9804 - val_loss: 0.4032 - val_accuracy: 0.8658\n",
      "Epoch 30/30\n",
      "25000/25000 [==============================] - 1s 30us/sample - loss: 0.0729 - accuracy: 0.9819 - val_loss: 0.4156 - val_accuracy: 0.8648\n",
      "CPU times: user 1min 42s, sys: 7.41 s, total: 1min 50s\n",
      "Wall time: 23.4 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "n_epochs   = 30\n",
    "batch_size = 512\n",
    "\n",
    "history = model.fit(x_train,\n",
    "                    y_train,\n",
    "                    epochs          = n_epochs,\n",
    "                    batch_size      = batch_size,\n",
    "                    validation_data = (x_test, y_test),\n",
    "                    verbose         = 1,\n",
    "                    callbacks       = [savemodel_callback])\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Step 6 - Evaluate\n",
    "### 6.1 - Training history"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div class=\"comment\">Saved: ./run/figs/IMDB1-02-history_0</div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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CoDy8nIAnn76ae644w4AMjMzGTFiRK8BxplnntnxfPXq1Zx55pmsXbuW5uZmpk6dCsBTTz3FX/7yl47zysrKADj66KN55JFHmDlzJi0tLey9994Jfloi6avdOTbVNLJmsw8a1myuY82mOtYGQUVT647lhijOz6asMLdjjYvIglnlhbmUF+d1HBuqKaxl51CAMRB66MYYaKeffjr3338/69at46yzzuKuu+5i48aNLFiwgOzsbKZMmUJjY+859ru7zjnX5x84WVlZtLd3/iCMfd3CwsKO55dddhnf+ta3OPnkk3n22We59tprAbp9vQsvvJD/+7//Y8aMGZx//vl9qo9IOnHOsaXOJ5das7mONUEgURk8+htE5GZlMK6sgPFlhVSUFzC+tIDRJfnBOhh+sKVyPsjOoABjiDnrrLO46KKLqKqqYv78+dx3332MGTOG7OxsnnnmGVauXNmn+2zdujXudccccwynnnoqV1xxBSNHjmTz5s2Ul5dzzDHH8Jvf/IbLL7+ctrY26urqGDt2LBs2bGDTpk0UFRXxyCOP8OlPxx+fsnXrViZMmADAn/70p47y4447jl/96lfcdNNNgO8iKSsr4+CDD2bVqlUsXLiQt956awc+MZGB1e4c67bUs2JDDcs31LByY00QUNTR0Nz7IMp4ivKyqSgvoKKskPFlBYwvK6CirICK8kLKizTAUtKDAowhZtasWdTU1DBhwgTGjx/Pl770JU466SQOOOAA9t13X2bMmNGn+3R33axZs/j+97/PkUceSWZmJnPmzOGPf/wjv/zlL7n44ov5/e9/T2ZmJr/5zW849NBDufrqqzn44IOZOnVqj6997bXXcsYZZzBhwgQOOeQQli9fDsBVV13FN77xDfbaay8yMzO55pprOO200wD4whe+wKJFizq6TURSrbquieVBILFiw7YgoKjt02yMWMX52UwoL+zyqCj3LRPF+coNIenPXD9HEw9XoVDIAYTD4S7l7777LjNnzkxJnYarE088kSuuuIJjjjkm7nH9m8hAaWxpY0VUELFiQw0rNtZQXdec0H0KcrNigogCJoz06a9L8nMGqPYi/ZZQ05haMGTQqa6u5qCDDmKfffbpNrgQSZZt9c18tH4bH67bykfrtvHRum2s3lTbp4RTESMKcpg6ppgpY4qZOqaYSaOKmFBeyIiCHHVnyJClAGOY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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div class=\"comment\">Saved: ./run/figs/IMDB1-02-history_1</div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pwk.plot_history(history, save_as='02-history')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 6.2 - Reload and evaluate best model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "x_test / loss      : 0.2867\n",
      "x_test / accuracy  : 0.8826\n"
     ]
    },
    {
     "data": {
      "text/markdown": [
       "#### Accuracy donut is :"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div class=\"comment\">Saved: ./run/figs/IMDB1-03-donut</div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "#### Confusion matrix is :"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<style  type=\"text/css\" >\n",
       "#T_2dfd32c2_4152_11eb_b4d1_310d57f4d2a4row0_col0,#T_2dfd32c2_4152_11eb_b4d1_310d57f4d2a4row1_col1{\n",
       "            background-color:  #ffe4c4;\n",
       "            color:  #000000;\n",
       "            font-size:  12pt;\n",
       "        }#T_2dfd32c2_4152_11eb_b4d1_310d57f4d2a4row0_col1,#T_2dfd32c2_4152_11eb_b4d1_310d57f4d2a4row1_col0{\n",
       "            background-color:  #f5f5f5;\n",
       "            color:  #000000;\n",
       "            font-size:  12pt;\n",
       "        }</style><table id=\"T_2dfd32c2_4152_11eb_b4d1_310d57f4d2a4\" ><thead>    <tr>        <th class=\"blank level0\" ></th>        <th class=\"col_heading level0 col0\" >0</th>        <th class=\"col_heading level0 col1\" >1</th>    </tr></thead><tbody>\n",
       "                <tr>\n",
       "                        <th id=\"T_2dfd32c2_4152_11eb_b4d1_310d57f4d2a4level0_row0\" class=\"row_heading level0 row0\" >0</th>\n",
       "                        <td id=\"T_2dfd32c2_4152_11eb_b4d1_310d57f4d2a4row0_col0\" class=\"data row0 col0\" >0.88</td>\n",
       "                        <td id=\"T_2dfd32c2_4152_11eb_b4d1_310d57f4d2a4row0_col1\" class=\"data row0 col1\" >0.12</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_2dfd32c2_4152_11eb_b4d1_310d57f4d2a4level0_row1\" class=\"row_heading level0 row1\" >1</th>\n",
       "                        <td id=\"T_2dfd32c2_4152_11eb_b4d1_310d57f4d2a4row1_col0\" class=\"data row1 col0\" >0.11</td>\n",
       "                        <td id=\"T_2dfd32c2_4152_11eb_b4d1_310d57f4d2a4row1_col1\" class=\"data row1 col1\" >0.89</td>\n",
       "            </tr>\n",
       "    </tbody></table>"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7f943eb08dd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div class=\"comment\">Saved: ./run/figs/IMDB1-04-confusion-matrix</div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x576 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "model = keras.models.load_model('./run/models/best_model.h5')\n",
    "\n",
    "# ---- Evaluate\n",
    "score  = model.evaluate(x_test, y_test, verbose=0)\n",
    "\n",
    "print('x_test / loss      : {:5.4f}'.format(score[0]))\n",
    "print('x_test / accuracy  : {:5.4f}'.format(score[1]))\n",
    "\n",
    "values=[score[1], 1-score[1]]\n",
    "pwk.plot_donut(values,[\"Accuracy\",\"Errors\"], title=\"#### Accuracy donut is :\", save_as='03-donut')\n",
    "\n",
    "# ---- Confusion matrix\n",
    "\n",
    "y_sigmoid = model.predict(x_test)\n",
    "\n",
    "y_pred = y_sigmoid.copy()\n",
    "y_pred[ y_sigmoid< 0.5 ] = 0\n",
    "y_pred[ y_sigmoid>=0.5 ] = 1    \n",
    "\n",
    "pwk.display_confusion_matrix(y_test,y_pred,labels=range(2))\n",
    "pwk.plot_confusion_matrix(y_test,y_pred,range(2), figsize=(8, 8),normalize=False, save_as='04-confusion-matrix')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "End time is : Friday 18 December 2020, 17:52:43\n",
      "Duration is : 00:00:37 585ms\n",
      "This notebook ends here\n"
     ]
    }
   ],
   "source": [
    "pwk.end()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "---\n",
    "<img width=\"80px\" src=\"../fidle/img/00-Fidle-logo-01.svg\"></img>"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}