{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "60000 train samples\n",
      "10000 test samples\n",
      "Model: \"sequential\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "dense (Dense)                (None, 512)               401920    \n",
      "_________________________________________________________________\n",
      "dropout (Dropout)            (None, 512)               0         \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 512)               262656    \n",
      "_________________________________________________________________\n",
      "dropout_1 (Dropout)          (None, 512)               0         \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 10)                5130      \n",
      "=================================================================\n",
      "Total params: 669,706\n",
      "Trainable params: 669,706\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "Train on 60000 samples, validate on 10000 samples\n",
      "Epoch 1/20\n",
      "60000/60000 [==============================] - 4s 66us/sample - loss: 0.2455 - accuracy: 0.9245 - val_loss: 0.1211 - val_accuracy: 0.9643\n",
      "Epoch 2/20\n",
      "60000/60000 [==============================] - 3s 47us/sample - loss: 0.1035 - accuracy: 0.9685 - val_loss: 0.0813 - val_accuracy: 0.9752\n",
      "Epoch 3/20\n",
      "60000/60000 [==============================] - 3s 48us/sample - loss: 0.0739 - accuracy: 0.9776 - val_loss: 0.0676 - val_accuracy: 0.9808\n",
      "Epoch 4/20\n",
      "60000/60000 [==============================] - 3s 48us/sample - loss: 0.0612 - accuracy: 0.9810 - val_loss: 0.0816 - val_accuracy: 0.9768\n",
      "Epoch 5/20\n",
      "60000/60000 [==============================] - 3s 49us/sample - loss: 0.0514 - accuracy: 0.9848 - val_loss: 0.0749 - val_accuracy: 0.9799\n",
      "Epoch 6/20\n",
      "60000/60000 [==============================] - 3s 47us/sample - loss: 0.0454 - accuracy: 0.9861 - val_loss: 0.0727 - val_accuracy: 0.9816\n",
      "Epoch 7/20\n",
      "60000/60000 [==============================] - 3s 49us/sample - loss: 0.0376 - accuracy: 0.9883 - val_loss: 0.0878 - val_accuracy: 0.9801\n",
      "Epoch 8/20\n",
      "60000/60000 [==============================] - 3s 47us/sample - loss: 0.0338 - accuracy: 0.9897 - val_loss: 0.0770 - val_accuracy: 0.9821\n",
      "Epoch 9/20\n",
      "60000/60000 [==============================] - 3s 47us/sample - loss: 0.0326 - accuracy: 0.9906 - val_loss: 0.0838 - val_accuracy: 0.9821\n",
      "Epoch 10/20\n",
      "60000/60000 [==============================] - 3s 47us/sample - loss: 0.0259 - accuracy: 0.9922 - val_loss: 0.0864 - val_accuracy: 0.9814\n",
      "Epoch 11/20\n",
      "60000/60000 [==============================] - 3s 47us/sample - loss: 0.0281 - accuracy: 0.9920 - val_loss: 0.0843 - val_accuracy: 0.9842\n",
      "Epoch 12/20\n",
      "60000/60000 [==============================] - 3s 49us/sample - loss: 0.0241 - accuracy: 0.9930 - val_loss: 0.0927 - val_accuracy: 0.9845\n",
      "Epoch 13/20\n",
      "60000/60000 [==============================] - 3s 47us/sample - loss: 0.0245 - accuracy: 0.9932 - val_loss: 0.1000 - val_accuracy: 0.9818\n",
      "Epoch 14/20\n",
      "60000/60000 [==============================] - 3s 47us/sample - loss: 0.0218 - accuracy: 0.9940 - val_loss: 0.0999 - val_accuracy: 0.9843\n",
      "Epoch 15/20\n",
      "60000/60000 [==============================] - 3s 48us/sample - loss: 0.0222 - accuracy: 0.9940 - val_loss: 0.1050 - val_accuracy: 0.9835\n",
      "Epoch 16/20\n",
      "60000/60000 [==============================] - 3s 48us/sample - loss: 0.0204 - accuracy: 0.9945 - val_loss: 0.1127 - val_accuracy: 0.9830\n",
      "Epoch 17/20\n",
      "60000/60000 [==============================] - 3s 48us/sample - loss: 0.0200 - accuracy: 0.9947 - val_loss: 0.1174 - val_accuracy: 0.9834\n",
      "Epoch 18/20\n",
      "60000/60000 [==============================] - 3s 49us/sample - loss: 0.0168 - accuracy: 0.9953 - val_loss: 0.1258 - val_accuracy: 0.9811\n",
      "Epoch 19/20\n",
      "60000/60000 [==============================] - 3s 48us/sample - loss: 0.0167 - accuracy: 0.9954 - val_loss: 0.1220 - val_accuracy: 0.9830\n",
      "Epoch 20/20\n",
      "60000/60000 [==============================] - 3s 48us/sample - loss: 0.0177 - accuracy: 0.9955 - val_loss: 0.1275 - val_accuracy: 0.9826\n",
      "Test loss: 0.12754862890388854\n",
      "Test accuracy: 0.9826\n"
     ]
    }
   ],
   "source": [
    "import keras\n",
    "import tensorflow  \n",
    "from tensorflow.python.framework import ops\n",
    "ops.reset_default_graph()\n",
    "from tensorflow.keras.datasets import mnist\n",
    "from tensorflow.keras.models import Sequential\n",
    "from tensorflow.keras.layers import Dense, Dropout\n",
    "from tensorflow.keras.optimizers import RMSprop\n",
    " \n",
    "batch_size = 128\n",
    "num_classes = 10\n",
    "epochs = 20\n",
    " \n",
    "# the data, shuffled and split between train and test sets\n",
    "(x_train, y_train), (x_test, y_test) = mnist.load_data()\n",
    " \n",
    "x_train = x_train.reshape(60000, 784)\n",
    "x_test = x_test.reshape(10000, 784)\n",
    "x_train = x_train.astype('float32')\n",
    "x_test = x_test.astype('float32')\n",
    "x_train /= 255\n",
    "x_test /= 255\n",
    "print(x_train.shape[0], 'train samples')\n",
    "print(x_test.shape[0], 'test samples')\n",
    " \n",
    "# convert class vectors to binary class matrices\n",
    "y_train = keras.utils.to_categorical(y_train, num_classes)\n",
    "y_test = keras.utils.to_categorical(y_test, num_classes)\n",
    " \n",
    "model = Sequential()\n",
    "model.add(Dense(512, activation='relu', input_shape=(784,)))\n",
    "model.add(Dropout(0.2))\n",
    "model.add(Dense(512, activation='relu'))\n",
    "model.add(Dropout(0.2))\n",
    "model.add(Dense(num_classes, activation='softmax'))\n",
    " \n",
    "model.summary()\n",
    "# Compile model\n",
    "model.compile(loss='categorical_crossentropy',\n",
    "              optimizer=RMSprop(),\n",
    "              metrics=['accuracy'])\n",
    " \n",
    "history = model.fit(x_train, y_train,\n",
    "                    batch_size=batch_size,\n",
    "                    epochs=epochs,\n",
    "                    verbose=1,\n",
    "                    validation_data=(x_test, y_test))\n",
    "score = model.evaluate(x_test, y_test, verbose=0)\n",
    "# Print the results\n",
    "print('Test loss:', score[0])\n",
    "print('Test accuracy:', score[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.save('mnist.h5')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'loss': [0.24546315448284148,\n",
       "  0.10347021933396658,\n",
       "  0.07393145070374012,\n",
       "  0.061229289469122886,\n",
       "  0.051445938684791324,\n",
       "  0.04541129429812232,\n",
       "  0.037576116144346694,\n",
       "  0.03376866025074075,\n",
       "  0.03259748043610404,\n",
       "  0.025876519640426462,\n",
       "  0.02806354066959272,\n",
       "  0.02409650976091313,\n",
       "  0.024511166460373594,\n",
       "  0.02175757885236138,\n",
       "  0.022151007483884072,\n",
       "  0.020440994151941654,\n",
       "  0.019994736673566514,\n",
       "  0.016788360163539375,\n",
       "  0.016725139369424626,\n",
       "  0.01770847419261263],\n",
       " 'accuracy': [0.92455,\n",
       "  0.96845,\n",
       "  0.9776,\n",
       "  0.981,\n",
       "  0.98485,\n",
       "  0.98611665,\n",
       "  0.98826665,\n",
       "  0.9897,\n",
       "  0.99058336,\n",
       "  0.9922,\n",
       "  0.992,\n",
       "  0.99305,\n",
       "  0.9932333,\n",
       "  0.99403334,\n",
       "  0.99403334,\n",
       "  0.99446666,\n",
       "  0.99465,\n",
       "  0.9953167,\n",
       "  0.9953667,\n",
       "  0.99551666],\n",
       " 'val_loss': [0.12107552464306355,\n",
       "  0.08128174982368946,\n",
       "  0.06758856515297666,\n",
       "  0.08164021365398075,\n",
       "  0.07492270854656817,\n",
       "  0.07266748790434503,\n",
       "  0.08776464053259114,\n",
       "  0.07698399472620804,\n",
       "  0.08381356356139295,\n",
       "  0.08640632214284194,\n",
       "  0.08429046945316686,\n",
       "  0.09269979666623146,\n",
       "  0.1000362189586142,\n",
       "  0.09990969525080128,\n",
       "  0.10496177807802141,\n",
       "  0.11265244484009827,\n",
       "  0.11741109612367655,\n",
       "  0.1258125068668682,\n",
       "  0.12196882686931486,\n",
       "  0.1275486238092729],\n",
       " 'val_accuracy': [0.9643,\n",
       "  0.9752,\n",
       "  0.9808,\n",
       "  0.9768,\n",
       "  0.9799,\n",
       "  0.9816,\n",
       "  0.9801,\n",
       "  0.9821,\n",
       "  0.9821,\n",
       "  0.9814,\n",
       "  0.9842,\n",
       "  0.9845,\n",
       "  0.9818,\n",
       "  0.9843,\n",
       "  0.9835,\n",
       "  0.983,\n",
       "  0.9834,\n",
       "  0.9811,\n",
       "  0.983,\n",
       "  0.9826]}"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "history.history"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEWCAYAAAB8LwAVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3deZwU1bn/8c/DJiDIMoOoIAMuN4oKiCNqxIBLCLgRgUQRE5V4cQkavTEJLolGxSRqjOs1otGfC5EYDUbcleB2jcogzKAQBBF1BBHZBAFx4Pn9cWqgabqHnump7lm+79erXlPLqeqna2bqqTqn6pS5OyIiIsma5DsAERGpm5QgREQkJSUIERFJSQlCRERSUoIQEZGUlCBERCQlJQjJmJk1NbO1ZtatNsvmk5ntY2a1fq+3mR1nZosSpueZ2VGZlK3BZ91rZpfXdH2RdJrlOwCJj5mtTZhsDXwNbIqmz3X3idXZnrtvAtrUdtnGwN2/VRvbMbNzgDPcfWDCts+pjW2LJFOCaMDcfcsBOjpDPcfdX0pX3syauXtFLmIT2RH9PeafqpgaMTO7zsz+ZmaPmNka4AwzO8LM3jSzVWa2xMxuM7PmUflmZuZm1j2afjha/qyZrTGzf5tZj+qWjZYPMbP3zWy1md1uZv9nZmeliTuTGM81swVmttLMbktYt6mZ/cnMlpvZB8DgKvbPlWY2KWnenWZ2czR+jpnNjb7PB9HZfbptlZvZwGi8tZk9FMX2HnBIis9dGG33PTM7OZp/EHAHcFRUffdFwr69OmH986LvvtzMnjCz3TPZN9XZz5XxmNlLZrbCzD4zs18mfM6vo33ypZmVmNkeqarzzOz1yt9ztD9fjT5nBXClme1rZtOi7/JFtN/aJaxfFH3HZdHyW82sZRTz/gnldjezdWZWkO77SgrurqERDMAi4LikedcBG4GTCCcLrYBDgcMIV5d7Ae8DY6PyzQAHukfTDwNfAMVAc+BvwMM1KLsrsAYYGi37H+Ab4Kw03yWTGP8JtAO6AysqvzswFngP6AoUAK+Gf4OUn7MXsBbYOWHbnwPF0fRJURkDjgHWA72iZccBixK2VQ4MjMZvAl4GOgBFwJyksj8Edo9+J6dHMXSOlp0DvJwU58PA1dH4oCjGPkBL4H+Bf2Wyb6q5n9sBS4GfATsBuwD9omWXAaXAvtF36AN0BPZJ3tfA65W/5+i7VQDnA00Jf4//BRwLtIj+Tv4PuCnh+7wb7c+do/JHRssmAOMTPufnwOR8/x/WtyHvAWjI0S86fYL41w7WuxT4ezSe6qD/54SyJwPv1qDsaOC1hGUGLCFNgsgwxsMTlv8DuDQaf5VQ1Va57Pjkg1bStt8ETo/GhwDvV1H2KeCn0XhVCeLjxN8FcEFi2RTbfRc4IRrfUYJ4ALg+YdkuhHanrjvaN9Xczz8CStKU+6Ay3qT5mSSIhTuIYQQwPRo/CvgMaJqi3JHAh4BF07OAYbX9f9XQB1UxySeJE2a2n5k9HVUZfAlcAxRWsf5nCePrqLphOl3ZPRLj8PAfXZ5uIxnGmNFnAR9VES/AX4GR0fjpwJaGfTM70czeiqpYVhHO3qvaV5V2ryoGMzvLzEqjapJVwH4ZbhfC99uyPXf/ElgJdEkok9HvbAf7eU9gQZoY9iQkiZpI/nvczcweNbNPoxj+X1IMizzcELENd/8/wtVIfzM7EOgGPF3DmBotJQhJvsXzbsIZ6z7uvgvwG8IZfZyWEM5wATAzY9sDWrJsYlxCOLBU2tFtuH8DjjOzroQqsL9GMbYCHgN+R6j+aQ+8kGEcn6WLwcz2Au4iVLMURNv9T8J2d3RL7mJCtVXl9toSqrI+zSCuZFXt50+AvdOsl27ZV1FMrRPm7ZZUJvn7/YFw991BUQxnJcVQZGZN08TxIHAG4WrnUXf/Ok05SUMJQpK1BVYDX0WNfOfm4DOfAvqa2Ulm1oxQr90pphgfBS42sy5Rg+Wvqirs7ksJ1SD3A/PcfX60aCdCvfgyYJOZnUioK880hsvNrL2F50TGJixrQzhILiPkynMIVxCVlgJdExuLkzwC/MTMepnZToQE9pq7p70iq0JV+/lJoJuZjTWzFma2i5n1i5bdC1xnZntb0MfMOhIS42eEmyGamtkYEpJZFTF8Baw2sz0J1VyV/g0sB6630PDfysyOTFj+EKFK6nRCspBqUoKQZD8HziQ0Gt9NOIOOVXQQPhW4mfAPvzcwk3DmWNsx3gVMBWYD0wlXATvyV0Kbwl8TYl4FXAJMJjT0jiAkukxcRbiSWQQ8S8LBy93LgNuAt6My+wFvJaz7IjAfWGpmiVVFles/R6gKmhyt3w0YlWFcydLuZ3dfDXwXGE5oFH8fGBAtvhF4grCfvyQ0GLeMqg7/G7iccMPCPknfLZWrgH6ERPUk8HhCDBXAicD+hKuJjwm/h8rliwi/543u/kY1v7uwtQFHpM6IqgwWAyPc/bV8xyP1l5k9SGj4vjrfsdRHelBO6gQzG0yoMthAuE2ygnAWLVIjUXvOUOCgfMdSX6mKSeqK/sBCQtXDYOD7alSUmjKz3xGexbje3T/Odzz1laqYREQkJV1BiIhISg2mDaKwsNC7d++e7zBEROqVGTNmfOHuKW8rbzAJonv37pSUlOQ7DBGResXM0vYmoComERFJSQlCRERSUoIQEZGUlCBERCQlJQgREUlJCUJEpJ6aOBG6d4cmTcLPiRN3tEb1KEGIiNRQtgfobNafOBHGjIGPPgL38HPMmNpNEg2mq43i4mLXcxAikiuVB+h167bOa90aJkyAURl0sJ7t+t27h6SQrKgIFi3a8fqVzGyGuxenWqYrCBGpt/J5Bn/FFdse3CFMX3FFbtb/OE0XhOnm14QShIjUWH2uYsl2/WwP0Nmu3y3Ny3LTza8Rd28QwyGHHOIikjsPP+zeurV7OLyGoXXrMD8X6xcVbbtu5VBU1DjWz3b/VQJKPM1xNe8H9toalCBEcivfB0iz1Oub5Wb9fCfIym0UFYWYi4qqnxzcq04QqmISqcfyWcVT36tYsl1/1KjQoFxUBGbhZ6YNzLWxfuU2Fi2CzZvDz+qsm5F0maO+DbqCkMYm32ew+b6CyPf3byhQFZNIPGrjEr+mdIDOfv/n8/dXVyhBiMQg3we4fNfBZxt/bawv2asqQehBOZEayvZBpXw/KFVbD1pJ/aYH5URikG0ja7YPSo0fHxJKotatw/xcrC8NnxKESA1lexdMtgmmLtxFIw2bEoQ0atnc5pntGXhtPAmb7W2Osd8mKfVarAnCzAab2TwzW2Bm41IsLzKzqWZWZmYvm1nXhGV/MLN3o+HUOOOUxinbrhayPQNXFY/Ueelar7MdgKbAB8BeQAugFOiZVObvwJnR+DHAQ9H4CcCLQDNgZ6AE2KWqz9NdTI1TNnfBZHubZ23QXTySb1RxF1OzGHNPP2CBuy8EMLNJwFBgTkKZnsAl0fg04ImE+a+4ewVQYWalwGDg0RjjlXom+S6gyisAyOwsPhe9Ye7IqFGq1pG6K84qpi7AJwnT5dG8RKXA8Gj8FKCtmRVE84eYWWszKwSOBvaMMVaph7K9CygnvWGK1GNxJghLMS/5oYtLgQFmNhMYAHwKVLj7C8AzwBvAI8C/gYrtPsBsjJmVmFnJsmXLajV4qfuyvQJQG4BI1eJMEOVse9bfFVicWMDdF7v7MHc/GLgimrc6+jne3fu4+3cJyWZ+8ge4+wR3L3b34k6dOsX1PSRG2dxFlO/O1kQaujgTxHRgXzPrYWYtgNOAJxMLmFmhmVXGcBlwXzS/aVTVhJn1AnoBL8QYq+RBtncR1cYVgG7zFEkvtgQRNTCPBZ4H5gKPuvt7ZnaNmZ0cFRsIzDOz94HOQOW/dnPgNTObA0wAzoi2Jw1Itm0IugIQiZf6YpK8adIkXDkkMwtn9CISP/XFJHWS7iISqduUICRvdBeRSN2mBCFZyeYuJLUhiNRtcT5JLQ1ctk8yV5ZTQhCpm3QFITWW7V1IIlK3KUFIjdWFvoxEJD5KEI1cPp9kFpG6TQmiEasLTzKLSN2lBNGI6UlmEamKnqRuxPQkc92xcSOsWQNffhl+ZjJe+XPtWujbFy69FL71rdzH/sEHsHo17LMP7LJL7j9fslPVk9S6zbUR69YtVCulmi/x27AB7r8fbrwRPvwws3VatQoH4bZtw7DLLtCpEzz8MPzlLzBsGIwbB8Up/91rz+bN8PzzcOut4WelTp1g771Dsthnn23HCwrCyYfUH0oQjdj48ds+xwBqQ8iFdetCVdyNN8LixXD44TB69PYH/sSflUOzNP+xn38eDtZ33gmPPw7HHRcSxTHH1O5Bee1aePBBuO02mDcPdt8drr0W9t8/XEksWBCGV18NbVmJV6i77LJ90qgc3333cEUrdYuqmBq5iRNDm8PHH4crh/Hj1YYQlzVr4H//F/74R1i2DAYMgF//unYP4l9+CXffDTffDJ99Fq4kxo2D738fmjat+XY/+gjuuAPuuSdUJx16KFx8MYwYAS1apF5nw4bQhXpl0khMIIsWQUVC/8xNm0JhIXTuDLvuunVInE4cb9VqxzFv2AArVmwdVq7cdjpxXo8ecM45YX81tqucqqqYlCBEYrZqVTjjvuWWcEAaNAiuvBKOOiq+z9ywIZzp33BDODB/61vwy1/CGWekP6Anc4fXXw9xP/FEOHCOGAE/+1m46snmQFpREU5KKhPG4sXhKmjp0vCzcli7NvX6bdpsmzDMtj/wr1+f/vObNoWOHaFDB2jfHt59N1zZ9ekD554Lp58ef3uKO5SWhiu+xYtDPJVDhw7bTnfsGK4g40heShAiefDFF+Hgevvt4cz+pJNCYujXL3cxbNoUDkC//z3MnAldusD//E+oWmzTJvU6X38NkyaFKquZM8PBacwYuOAC2DPHb4Zft27bhJGcQJYuDQOENo6qDrCJ85IPtqtXw1//Gq6+Skth551h5MjwvWvzqsI97NO//x0eeywkxyZNQrJbtWrHSS3V9+rYEfbbD84/v2YxKUFIg1Z5xpiNgoJwJlkbPvssVCPddVc4wA0fHqrx+vSpne3XhDu8+GJIFNOmhQPNhReGobBwa9x//nOI+/PP4YADwtXCqFHbP+/SULnD9OkhUUyaVDtXFe4wY8bWpLBwYTjYH3NMuCI75ZTQuA8hQSRWhaWqFks1v1ev0O5TE0oQ0uCsWgX/+Ac88gj861+1c1tuu3bhWY5UQ/fu4Z+4qjPJ8vJQpXPPPeG21ZEj4fLLoWfP7GOrTW++CX/4Q6g2atUq1L2vWhUOiBUVcMIJITEce2zjq49PlM1VhTu8/XZICI89FtpcmjUL+3TEiNAmVJmYa8PmzTVv5FeCaMDy2chcXg5PPx3OTHfbLZwRHX10ODuNw7p1MGVKSArPPhsOwnvvDaedlt39/+6h0XjRotAYWzmsXr1tuVatwj5OTh677w6PPhpuWXWHH/84NAzvu29WXzd2c+eGhPbww9CyZbiT6sILw11FslWmVxWbN8Nbb21NCh9/DM2bhzvKfvADGDo0VAfVNUoQDVRyd9sQqgLiepp506ZwVvT00/DUU+GsCkK99IoV8NVX4ayqb99wpnTssdC/f3bVExs3wgsvhKTwz3+Gz9hjDzj11HA2F+ddJ6tWbZswEodFi0JSqdSiRTjA/upX4WqjPlm+PMTftm2+I6n7kq8qWrcOf4dt24akUF4e9uWgQeFK4eST4zthqi15SxBmNhi4FWgK3Ovuv09aXgTcB3QCVgBnuHt5tOwG4ARCdyAvAj/zKoKtrwli0ya4775wR8t++1Vv3e7dUz/oVlQUDmC1YfXq8CDU00/DM8+EhtemTeHII+HEE8Ow337wzTcheUydGoY33wzzmjeHI47YmjD69QvzqrJpU6hPfeSR0MC6YkU48xoxIvwzHnVUdrds1pZ168JZ4iefhPr6PfbId0SSK8lXFRUVMHjw1qTQrl2+I8xcVQkCd49lICSFD4C9gBZAKdAzqczfgTOj8WOAh6LxbwP/F22jKfBvYGBVn3fIIYd4ffPNN+4/+pE7uLds6X7rre6bNmW+vllYN3kwq3lMmze7/+c/7jfd5H700e7NmoVtduzoPmqU+yOPuK9YsePtrF3r/txz7r/4hXvfvltj3Xln9yFDwvZnztz6fTdvdn/rLfeLL3bfffetZU8/3f2pp9y//rrm30kkTmvXuq9Zk+8oag4o8TTH1TifpO4HLHD3hQBmNgkYCsxJKNMTuCQanwY8EY070JKQWAxoDiyNMdac++abUFc9aVJoyCwrCw2DU6aEuuyuXXe8jdrqKmPjxnDG/tRT4UphwYIw/6CDQv8+J54Y7nuvzln7zjvD974XBghXAS+/vPUK49lnw/yCgnBFMHt2uF+/RQsYMiRcKZx4YtiOSF3WoP9G02WObAdgBKFaqXL6R8AdSWX+Sqg6AhhGSAwF0fRNwCpgNTA+zWeMAUqAkm7dusWWYWvb11+7DxsWzpJvvDHM27zZfcKEcNbcvr37pEk73s7DD7u3br3t1UPr1mF+JjZscL/5ZveCgrDuTjuFs/s773RftKjm3y8T5eXuDz7ofuaZ7nvt5X7cce5/+Yv7ypXxfq6IbIsqriDiTBA/SJEgbk8qswfwD2Amoa2iHGgH7AM8DbSJhn8D36nq8+pLFdOGDe4nnRT2/K23br98/nz3ww8Py0eO3HF1zsMPuxcVhSqcoqLMkkNFRTg4FxWFz/nud93/+c9wqSwijUtVCSLO7rHKgcTnLrsCixMLuPtidx/m7gcDV0TzVgOnAG+6+1p3Xws8CxweY6w5sX59uNVtypTwMNJFF21fZp994LXX4LrrwoM1Bx0EL72UfpujRoUG6c2bw8+q7l5yD1U7ffuG6q2CgnCL6gsvhIa1Bn2pLCLVFmeCmA7sa2Y9zKwFcBrwZGIBMys0s8oYLiPc0QTwMTDAzJqZWXNgADA3xlhj99VXoU79hRdCt8znnZe+bLNm4dmGN98Mt89997uhY7SqHsPfkbffDs8pHH986N9m0qRwF8Zxx9V8myLSsMWWINy9AhgLPE84uD/q7u+Z2TVmdnJUbCAwz8zeBzoDlR1NP0a4A2o24e6nUnefElescVuzJjS8vvxy6EBt9Oity6p6J/Qhh4RH9C+8MPSLc8gh8M471fvs998PD+kcdhi8917oF2ju3PAcgbpXFpEqpat7qm9DXW2DWLXK/Ygj3Js23b7huTqNzM8/777HHuG20/HjQztCVRYvdj/vvPC5O+/sftVV7l9+WWtfS0QaCPLRSJ3roS4miOXL3YuL3Zs3d//HP7ZfXtlInDwUFaXf3g9/GMp8+9vuH3ywfZnVq91//euQaJo1c//pT90/+6w2v5WINCRVJQhVMsTkiy/Ck8NlZaFTuVNO2b7Mxx+nXjfd/I4dQ9vBxImhuqh379Ce4R66aL7tttA30bXXhq6l584NL3np3Ln2vpeINB5KEDFYuhQGDoT//AeefDI0TqeS7oG2qh50MwsdhM2eHbqtOOec8Ij//vuHB+169QqNz5MmqdM1EcmOEkQtW7w4JIcPPwxPJVc+SZzK+PHbd2SX6Tuh99wz3KL6pz/BK6+Evl+efz7cEhv3C+tFpHFQgqhFn3wS3jNcXg7PPRduK63KqFGh59WionBlUFRUvZ5YmzQJt79+/nm422nQoMbdf7+I1K44+2JqVD78MCSEFSvCsw5HHJHZeqNGZd81d9zvzhWRxkkJohYsWBCSw9q1oSM6VfGISEOgBJGlVatCm8PXX4dXX+bzvcMiIrVJCSJLN90En34aXjWo5CAiDYkaqbOwdCncckvotqJfv3xHIyJSu5QgsjB+PGzYEB5MExFpaJQgamjRIvjzn0PHe/vum+9oRERqnxJEDV19dXgO4Te/yXckIiLxUIKogTlz4KGHYOzYzN4dLSJSHylB1MCVV4a3r40bl+9IRETiowRRTW+9BZMnw6WXQmFhvqMREYmPEkQ1XX45dOoEl1yS70hEROKlB+Wq4aWXwtPSf/pTeFe0iEhDpiuIDLmHq4du3eC88/IdjYhI/GJNEGY22MzmmdkCM9uuSdfMisxsqpmVmdnLZtY1mn+0mc1KGDaY2ffjjHVHJk8OL+K5+mpo2TKfkYiI5IaFV5LGsGGzpsD7wHeBcmA6MNLd5ySU+TvwlLs/YGbHAGe7+4+SttMRWAB0dfd16T6vuLjYS0pKYvgmsGkTHHRQuIqYPRuaqWJORBoIM5vh7in7oI7zCqIfsMDdF7r7RmASMDSpTE9gajQ+LcVygBHAs1Ulh7g99FB4v/N11yk5iEjjEWeC6AJ8kjBdHs1LVAoMj8ZPAdqaWUFSmdOAR1J9gJmNMbMSMytZtmxZLYS8va+/hquuCu94GDYslo8QEamT4kwQqV5+mVyfdSkwwMxmAgOAT4GKLRsw2x04CHg+1Qe4+wR3L3b34k6dOtVO1Enuvhs+/hiuv16v8xSRxiXOBFEO7Jkw3RVYnFjA3Re7+zB3Pxi4Ipq3OqHID4HJ7v5NjHGmtXZtqFY6+mg47rjUZSZOhO7dQ79M3buHaRGRhiDOBDEd2NfMephZC0JV0ZOJBcys0MwqY7gMuC9pGyNJU72UC7fcAsuWpb96mDgRxoyBjz4KDdgffRSmlSREpCGILUG4ewUwllA9NBd41N3fM7NrzOzkqNhAYJ6ZvQ90BsZXrm9m3QlXIK/EFWNVli+HG2+EoUPh8MNTl7niCliX1HS+bl2YLyJS38V2m2uu1fZtrr/8ZXidaFkZHHhg6jJNmoQrh2RmsHlzrYUiIhKbfN3mWm99+incfjv86EfpkwOEp6qrM19EpD5Rgkjh2mvDw3G//W3V5caPh9att53XunWYLyJS3+0wQZjZWDPrkItg6oL58+Hee+Hcc8NdSVUZNQomTICiolCtVFQUpkeNykmoIiKxyuS54N2A6Wb2DuEuo+e9oTRcpPCb38BOO4WXAmVi1CglBBFpmHZ4BeHuVwL7An8BzgLmm9n1ZrZ3zLHl3KxZMGkSXHwxdO6c72hERPIrozaI6Irhs2ioADoAj5nZDTHGlnNXXAEdOsAvfpHvSERE8m+HVUxmdhFwJvAFcC/wC3f/JnrAbT7wy3hDzI3XX4dnnoHf/x7at893NCIi+ZdJG0QhMMzdP0qc6e6bzezEeMLKLXe47DLYfXe48MJ8RyMiUjdkUsX0DLCicsLM2prZYQDuPjeuwHLp2WfDFcSvf739basiIo1VJgniLmBtwvRX0bwGYfPm8CrRvfaCn/wk39GIiNQdmVQxWeJtrVHVUoN5bc7ChbBkCfzpT9CiRb6jERGpOzI50C+MGqorrxouABbGF1Ju7bMPfPCBqpZERJJlUsV0HvBtwst8yoHDgDFxBpVrbdqEjvdERGSrHV5BuPvnhHc5iIhII5LJcxAtgZ8ABwAtK+e7++gY4xIRkTzLpGLlIUJ/TN8jvLynK7AmzqBERCT/MkkQ+7j7r4Gv3P0B4ATgoHjDEhGRfMskQXwT/VxlZgcC7YDusUUkIiJ1Qia3uU6I3gdxJfAk0Ab4daxRiYhI3lV5BRF1yPelu69091fdfS9339Xd785k42Y22MzmmdkCMxuXYnmRmU01szIze9nMuiYs62ZmL5jZXDObY2bdq/ndREQkC1UmCHffDIytyYbNrClwJzAE6AmMNLOeScVuAh50917ANcDvEpY9CNzo7vsD/YDPaxKHiIjUTCZtEC+a2aVmtqeZdawcMlivH7DA3Re6+0ZgEjA0qUxPYGo0Pq1yeZRImrn7iwDuvtbd12XyhUREpHZkkiBGAz8FXgVmRENJBut1AT5JmC6P5iUqBYZH46cAbc2sAPgvQqP4P8xsppndGF2RbMPMxphZiZmVLFu2LIOQREQkU5m8crRHimGvDLZtqTaXNH0pMMDMZgIDCN15VBAaz4+Klh8K7EV43WlybBPcvdjdizt16pRBSCIikqlMnqT+car57v7gDlYtB/ZMmO4KLE7axmJgWPQ5bYDh7r7azMqBme6+MFr2BHA44b3YIiKSA5nc5npownhL4FjgHUIjclWmA/uaWQ/ClcFpwOmJBcysEFgRNYZfBtyXsG4HM+vk7suAY8isWktERGpJJp31bfMSTjNrR+h+Y0frVZjZWOB5oClwn7u/Z2bXACXu/iQwEPidmTmhjeOn0bqbzOxSYKqZGaHd455qfTMREcmKJbwLKLMVzJoDZdHtp3VGcXGxl5ToIkNEpDrMbIa7F6dalkkbxBS2Ni43Idya+mjthSciInVRJm0QNyWMVwAfuXt5TPGIiEgdkUmC+BhY4u4bAMyslZl1d/dFsUYmIiJ5lcmDcn8HNidMb4rmiYhIA5ZJgmgWdZUBQDTeIr6QRESkLsgkQSwzs5MrJ8xsKPBFfCGJiEhdkEkbxHnARDO7I5ouB1I+XS0iIg1HJg/KfQAcHnWFYe6u91GLiDQCO6xiMrPrzax91OX2GjPrYGbX5SI4ERHJn0zaIIa4+6rKCXdfCRwfX0giIlIXZJIgmprZTpUTZtYK2KmK8iIi0gBk0kj9MKHTvPuj6bOBB+ILSURE6oJMGqlvMLMy4DjCS4CeA4riDkxERPIrkyomgM8IT1MPJ7wPYm5sEYmISJ2Q9grCzP6L8JKfkcBy4G+E21yPzlFsIiKSR1VVMf0HeA04yd0XAJjZJTmJSkRE8q6qKqbhhKqlaWZ2j5kdS2iDEBGRRiBtgnD3ye5+KrAf8DJwCdDZzO4ys0E5ik9ERPJkh43U7v6Vu0909xOBrsAsYFzskYmISF5lehcTAO6+wt3vdvdjMilvZoPNbJ6ZLTCz7ZKKmRWZ2VQzKzOzl82sa8KyTWY2KxqerE6cIiKSvUwelKsRM2sK3Al8l9AD7HQze9Ld5yQUuwl40N0fMLNjgN8BP4qWrXf3PnHFJyIiVavWFUQ19QMWuPvC6CVDk4ChSWV6AlOj8WkplouISJ7EmSC6AJ8kTJdH8xKVEu6WAjgFaGtmBdF0SzMrMbM3zez7qT7AzMZEZUqWLVtWm7GLiDR6cSaIVLfEetL0pcAAM5sJDAA+BSqiZd3cvRg4HbjFzPbebqBJQ+EAABUhSURBVGPuE9y92N2LO3XqVIuhi4hIbG0QhCuGPROmuwKLEwu4+2JgGED0QqLh7r46YRnuvtDMXgYOBj6IMV4REUkQ5xXEdGBfM+thZi0I3XZsczeSmRWaWWUMlwH3RfM7VHYxbmaFwJFAYuO2iIjELLYE4e4VwFjgeULnfo+6+3tmdo2ZnRwVGwjMM7P3gc7A+Gj+/kCJmZUSGq9/n3T3k4iIxMzck5sF6qfi4mIvKSnJdxgiIvWKmc2I2nu3E2cVk4iI1GNKECIikpIShIiIpKQEISIiKSlBiIhISkoQIiKSkhKEiIikpAQhIiIpKUGIiEhKShAiIpKSEoSIiKSkBCEiIikpQYiISEpKECIikpIShIiIpKQEISIiKSlBiIhISkoQIiKSkhKEiIikFGuCMLPBZjbPzBaY2bgUy4vMbKqZlZnZy2bWNWn5Lmb2qZndEWecIiKyvdgShJk1Be4EhgA9gZFm1jOp2E3Ag+7eC7gG+F3S8muBV+KKUURE0ovzCqIfsMDdF7r7RmASMDSpTE9gajQ+LXG5mR0CdAZeiDFGERFJI84E0QX4JGG6PJqXqBQYHo2fArQ1swIzawL8EfhFVR9gZmPMrMTMSpYtW1ZLYYuICMSbICzFPE+avhQYYGYzgQHAp0AFcAHwjLt/QhXcfYK7F7t7cadOnWojZhERiTSLcdvlwJ4J012BxYkF3H0xMAzAzNoAw919tZkdARxlZhcAbYAWZrbW3bdr6BYRkXjEmSCmA/uaWQ/ClcFpwOmJBcysEFjh7puBy4D7ANx9VEKZs4BiJQcRkdyKrYrJ3SuAscDzwFzgUXd/z8yuMbOTo2IDgXlm9j6hQXp8XPGIiEj1mHtys0D9VFxc7CUlJfkOQ0SkXjGzGe5enGqZnqQWEZGUlCBERCQlJQgREUlJCUJERFJSghARkZSUIEREJCUlCBERSUkJQkREUlKCEBGRlOLsi0lEGolvvvmG8vJyNmzYkO9QJI2WLVvStWtXmjdvnvE6ShAikrXy8nLatm1L9+7dMUvV07/kk7uzfPlyysvL6dGjR8brqYpJRLK2YcMGCgoKlBzqKDOjoKCg2ld4ShAiUiuUHOq2mvx+lCBERCQlJQgRybmJE6F7d2jSJPycODG77S1fvpw+ffrQp08fdtttN7p06bJleuPGjRlt4+yzz2bevHlVlrnzzjuZmG2w9YgaqUUkpyZOhDFjYN26MP3RR2EaYNSo9OtVpaCggFmzZgFw9dVX06ZNGy699NJtyrg77k6TJqnPi++///4dfs5Pf/rTmgVYT+kKQkRy6oortiaHSuvWhfm1bcGCBRx44IGcd9559O3blyVLljBmzBiKi4s54IADuOaaa7aU7d+/P7NmzaKiooL27dszbtw4evfuzRFHHMHnn38OwJVXXsktt9yypfy4cePo168f3/rWt3jjjTcA+Oqrrxg+fDi9e/dm5MiRFBcXb0leia666ioOPfTQLfFVvrzt/fff55hjjqF379707duXRYsWAXD99ddz0EEH0bt3b66IY2eloAQhIjn18cfVm5+tOXPm8JOf/ISZM2fSpUsXfv/731NSUkJpaSkvvvgic+bM2W6d1atXM2DAAEpLSzniiCO47777Um7b3Xn77be58cYbtySb22+/nd12243S0lLGjRvHzJkzU677s5/9jOnTpzN79mxWr17Nc889B8DIkSO55JJLKC0t5Y033mDXXXdlypQpPPvss7z99tuUlpby85//vJb2TtWUIEQkp7p1q978bO29994ceuihW6YfeeQR+vbtS9++fZk7d27KBNGqVSuGDBkCwCGHHLLlLD7ZsGHDtivz+uuvc9pppwHQu3dvDjjggJTrTp06lX79+tG7d29eeeUV3nvvPVauXMkXX3zBSSedBISH21q3bs1LL73E6NGjadWqFQAdO3as/o6ogVgThJkNNrN5ZrbAzMalWF5kZlPNrMzMXjazrgnzZ5jZLDN7z8zOizNOEcmd8eOhdett57VuHebHYeedd94yPn/+fG699Vb+9a9/UVZWxuDBg1M+G9CiRYst402bNqWioiLltnfaaaftylRWFVVl3bp1jB07lsmTJ1NWVsbo0aO3xJHqdlR3z8ttxLElCDNrCtwJDAF6AiPNrGdSsZuAB929F3AN8Lto/hLg2+7eBzgMGGdme8QVq4jkzqhRMGECFBWBWfg5YULNG6ir48svv6Rt27bssssuLFmyhOeff77WP6N///48+uijAMyePTvlFcr69etp0qQJhYWFrFmzhscffxyADh06UFhYyJQpU4DwAOK6desYNGgQf/nLX1i/fj0AK1asqPW4U4nzLqZ+wAJ3XwhgZpOAoUDi3uoJXBKNTwOeAHD3xPvSdkJVYSINyqhRuUkIyfr27UvPnj058MAD2WuvvTjyyCNr/TMuvPBCfvzjH9OrVy/69u3LgQceSLt27bYpU1BQwJlnnsmBBx5IUVERhx122JZlEydO5Nxzz+WKK66gRYsWPP7445x44omUlpZSXFxM8+bNOemkk7j22mtrPfZklsnlUI02bDYCGOzu50TTPwIOc/exCWX+Crzl7rea2TDgcaDQ3Zeb2Z7A08A+wC/c/c4UnzEGGAPQrVu3Qz766KNYvouIVG3u3Lnsv//++Q6jTqioqKCiooKWLVsyf/58Bg0axPz582nWLP9PFaT6PZnZDHcvTlU+zohTVZglZ6NLgTvM7CzgVeBToALA3T8BekVVS0+Y2WPuvnSbjblPACYAFBcXx5PpRESqYe3atRx77LFUVFTg7tx99911IjnURJxRlwN7Jkx3BRYnFnD3xcAwADNrAwx399XJZczsPeAo4LEY4xURyVr79u2ZMWNGvsOoFXHW7U8H9jWzHmbWAjgNeDKxgJkVmlllDJcB90Xzu5pZq2i8A3AkUPUz8CIiUqtiSxDuXgGMBZ4H5gKPuvt7ZnaNmZ0cFRsIzDOz94HOQOWNbvsDb5lZKfAKcJO7z44rVhER2V6sFWPu/gzwTNK83ySMP0aKaiN3fxHoFWdsIiJSNd0+KiIiKSlBiEi9N3DgwO0eervlllu44IILqlyvTZs2ACxevJgRI0ak3XZJSUmV27nllltYl9AD4fHHH8+qVasyCb1OU4IQkXpv5MiRTJo0aZt5kyZNYuTIkRmtv8cee/DYYzW/STI5QTzzzDO0b9++xturK+rnzbkiUmddfDGk6N06K336QNTLdkojRozgyiuv5Ouvv2annXZi0aJFLF68mP79+7N27VqGDh3KypUr+eabb7juuusYOnToNusvWrSIE088kXfffZf169dz9tlnM2fOHPbff/8t3VsAnH/++UyfPp3169czYsQIfvvb33LbbbexePFijj76aAoLC5k2bRrdu3enpKSEwsJCbr755i29wZ5zzjlcfPHFLFq0iCFDhtC/f3/eeOMNunTpwj//+c8tnfFVmjJlCtdddx0bN26koKCAiRMn0rlzZ9auXcuFF15ISUkJZsZVV13F8OHDee6557j88svZtGkThYWFTJ06Nav9rgQhIvVeQUEB/fr147nnnmPo0KFMmjSJU089FTOjZcuWTJ48mV122YUvvviCww8/nJNPPjlt53d33XUXrVu3pqysjLKyMvr27btl2fjx4+nYsSObNm3i2GOPpaysjIsuuoibb76ZadOmUVhYuM22ZsyYwf33389bb72Fu3PYYYcxYMAAOnTowPz583nkkUe45557+OEPf8jjjz/OGWecsc36/fv3580338TMuPfee7nhhhv44x//yLXXXku7du2YPTvc3Lly5UqWLVvGf//3f/Pqq6/So0ePWumvSQlCRGpVVWf6caqsZqpMEJVn7e7O5ZdfzquvvkqTJk349NNPWbp0KbvttlvK7bz66qtcdNFFAPTq1YtevbbeUPnoo48yYcIEKioqWLJkCXPmzNlmebLXX3+dU045ZUuPssOGDeO1117j5JNPpkePHvTp0wdI36V4eXk5p556KkuWLGHjxo306NEDgJdeemmbKrUOHTowZcoUvvOd72wpUxtdgjf6NojafjeuiOTH97//faZOnco777zD+vXrt5z5T5w4kWXLljFjxgxmzZpF586dU3bxnSjV1cWHH37ITTfdxNSpUykrK+OEE07Y4Xaq6uuusqtwSN+l+IUXXsjYsWOZPXs2d99995bPS9X9dxxdgjfqBFH5btyPPgL3re/GVZIQqX/atGnDwIEDGT169DaN06tXr2bXXXelefPmTJs2jR116vmd73yHidFB4N1336WsrAwIXYXvvPPOtGvXjqVLl/Lss89uWadt27asWbMm5baeeOIJ1q1bx1dffcXkyZM56qijMv5Oq1evpkuXLgA88MADW+YPGjSIO+64Y8v0ypUrOeKII3jllVf48MMPgdrpErxRJ4hcvhtXROI3cuRISktLt7zRDWDUqFGUlJRQXFzMxIkT2W+//arc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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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k4oXL17M0qVL6dat245+CZ07d6Z9+/a89NJLu22/ePFi2rVrB8DmzZvp27cvHTp04IILLmDz5s071rviiit2DBV+6623AjBmzBiWLl1Kz5496dmzJwC5ubmsWrUKgFGjRtGuXTvatWu3Y6jwxYsXc8QRR/Dzn/+ctm3b0qtXr12OE2fmzJkcffTRdOjQgXPOOYc1a9bsOH6bNm3o0KHDjkEC33333R0PTOrUqRMbNmwo87ktpH4QIpKya6+FdD8orWNHiK6tsRo3bkzXrl35xz/+wVlnncWECRO44IILMDNq167NCy+8wH777ceqVas4+uij6dOnT7HPZX7wwQepU6cOs2fPZvbs2XTu3HnHshEjRrD//vuzbds2TjzxRGbPns3VV1/NqFGjmDx5Mk2aNNllX9OnT2fs2LF8+OGHuDtHHXUU3bt3p1GjRixYsICnnnqKRx55hPPPP5/nn3++xOc7XHTRRdx33310796dW265hd/97neMHj2akSNH8vnnn7PPPvvsqNa6++67eeCBBzj22GPZuHEjtWvXLsXZjqcShIhUWonVTInVS+7OjTfeSIcOHTjppJP46quvWL58ebH7mTJlyo4LdYcOHejQocOOZc888wydO3emU6dOzJkzZ48D8b3//vucc8451K1bl3r16nHuuefy3nvvAdCqVSs6duwIlDykOITnU6xdu5bu3bsDMHDgQKZMmbIjxv79+zNu3LgdPbaPPfZYrr/+esaMGcPatWvT0pNbJQgRSVlJ3/Qz6eyzz+b6669nxowZbN68ecc3//Hjx7Ny5UqmT59OzZo1yc3NjR3iO1Fc6eLzzz/n7rvvZurUqTRq1IiLL754j/spaXy7wqHCIQwXvqcqpuK88sorTJkyhYkTJ3L77bczZ84chg0bxumnn86rr77K0UcfzZtvvskPf/jDMu2/kEoQIlJp1atXjx49enDppZfu0ji9bt06DjzwQGrWrMnkyZP5Iu7h8wmOP/54xkfPP/3000+ZPXs2EIYKr1u3Lg0aNGD58uW89tprO7apX79+bD3/8ccfz4svvsimTZv49ttveeGFFzjuuONK/dkaNGhAo0aNdpQ+/vrXv9K9e3e2b9/Ol19+Sc+ePbnzzjtZu3YtGzdu5LPPPqN9+/YMHTqUvLw8/vOf/5T6mEWpBCEilVq/fv0499xzd7mjqX///px5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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "acc = history.history['accuracy']\n",
    "val_acc = history.history['val_accuracy']\n",
    "loss = history.history['loss']\n",
    "val_loss = history.history['val_loss']\n",
    "\n",
    "epochs = range(len(acc))\n",
    "\n",
    "plt.plot(epochs, acc, 'bo', label='Training acc')\n",
    "plt.xlabel('Epochs')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.plot(epochs, val_acc, 'b', label='Validation acc')\n",
    "plt.title('Training and validation accuracy')\n",
    "plt.legend()\n",
    "\n",
    "plt.figure()\n",
    "\n",
    "plt.plot(epochs, loss, 'bo', label='Training loss')\n",
    "plt.xlabel('Epochs')\n",
    "plt.ylabel('Loss')\n",
    "plt.plot(epochs, val_loss, 'b', label='Validation loss')\n",
    "plt.title('Training and validation loss')\n",
    "plt.legend()\n",
    "\n",
    "plt.show()\n",
    " "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<tensorflow.python.keras.callbacks.History at 0x283c72d8608>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "history"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "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.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
