{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "'2.0.8'"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import keras\n",
    "keras.__version__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Introduction to generative adversarial networks\n",
    "\n",
    "This notebook contains the second code sample found in Chapter 8, Section 5 of [Deep Learning with Python](https://www.manning.com/books/deep-learning-with-python?a_aid=keras&a_bid=76564dff). Note that the original text features far more content, in particular further explanations and figures: in this notebook, you will only find source code and related comments.\n",
    "\n",
    "---\n",
    "[...]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## A schematic GAN implementation\n",
    "\n",
    "\n",
    "In what follows, we explain how to implement a GAN in Keras, in its barest form -- since GANs are quite advanced, diving deeply into the \n",
    "technical details would be out of scope for us. Our specific implementation will be a deep convolutional GAN, or DCGAN: a GAN where the \n",
    "generator and discriminator are deep convnets. In particular, it leverages a `Conv2DTranspose` layer for image upsampling in the generator.\n",
    "\n",
    "We will train our GAN on images from CIFAR10, a dataset of 50,000 32x32 RGB images belong to 10 classes (5,000 images per class). To make \n",
    "things even easier, we will only use images belonging to the class \"frog\".\n",
    "\n",
    "Schematically, our GAN looks like this:\n",
    "\n",
    "* A `generator` network maps vectors of shape `(latent_dim,)` to images of shape `(32, 32, 3)`.\n",
    "* A `discriminator` network maps images of shape (32, 32, 3) to a binary score estimating the probability that the image is real.\n",
    "* A `gan` network chains the generator and the discriminator together: `gan(x) = discriminator(generator(x))`. Thus this `gan` network maps \n",
    "latent space vectors to the discriminator's assessment of the realism of these latent vectors as decoded by the generator.\n",
    "* We train the discriminator using examples of real and fake images along with \"real\"/\"fake\" labels, as we would train any regular image \n",
    "classification model.\n",
    "* To train the generator, we use the gradients of the generator's weights with regard to the loss of the `gan` model. This means that, at \n",
    "every step, we move the weights of the generator in a direction that will make the discriminator more likely to classify as \"real\" the \n",
    "images decoded by the generator. I.e. we train the generator to fool the discriminator."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## A bag of tricks\n",
    "\n",
    "\n",
    "Training GANs and tuning GAN implementations is notoriously difficult. There are a number of known \"tricks\" that one should keep in mind. \n",
    "Like most things in deep learning, it is more alchemy than science: these tricks are really just heuristics, not theory-backed guidelines. \n",
    "They are backed by some level of intuitive understanding of the phenomenon at hand, and they are known to work well empirically, albeit not \n",
    "necessarily in every context.\n",
    "\n",
    "Here are a few of the tricks that we leverage in our own implementation of a GAN generator and discriminator below. It is not an exhaustive \n",
    "list of GAN-related tricks; you will find many more across the GAN literature.\n",
    "\n",
    "* We use `tanh` as the last activation in the generator, instead of `sigmoid`, which would be more commonly found in other types of models.\n",
    "* We sample points from the latent space using a _normal distribution_ (Gaussian distribution), not a uniform distribution.\n",
    "* Stochasticity is good to induce robustness. Since GAN training results in a dynamic equilibrium, GANs are likely to get \"stuck\" in all sorts of ways. \n",
    "Introducing randomness during training helps prevent this. We introduce randomness in two ways: 1) we use dropout in the discriminator, 2) \n",
    "we add some random noise to the labels for the discriminator.\n",
    "* Sparse gradients can hinder GAN training. In deep learning, sparsity is often a desirable property, but not in GANs. There are two things \n",
    "that can induce gradient sparsity: 1) max pooling operations, 2) ReLU activations. Instead of max pooling, we recommend using strided \n",
    "convolutions for downsampling, and we recommend using a `LeakyReLU` layer instead of a ReLU activation. It is similar to ReLU but it \n",
    "relaxes sparsity constraints by allowing small negative activation values.\n",
    "* In generated images, it is common to see \"checkerboard artifacts\" caused by unequal coverage of the pixel space in the generator. To fix \n",
    "this, we use a kernel size that is divisible by the stride size, whenever we use a strided `Conv2DTranpose` or `Conv2D` in both the \n",
    "generator and discriminator."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The generator\n",
    "\n",
    "\n",
    "First, we develop a `generator` model, which turns a vector (from the latent space -- during training it will sampled at random) into a \n",
    "candidate image. One of the many issues that commonly arise with GANs is that the generator gets stuck with generated images that look like \n",
    "noise. A possible solution is to use dropout on both the discriminator and generator."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "input_1 (InputLayer)         (None, 32)                0         \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 32768)             1081344   \n",
      "_________________________________________________________________\n",
      "leaky_re_lu_1 (LeakyReLU)    (None, 32768)             0         \n",
      "_________________________________________________________________\n",
      "reshape_1 (Reshape)          (None, 16, 16, 128)       0         \n",
      "_________________________________________________________________\n",
      "conv2d_1 (Conv2D)            (None, 16, 16, 256)       819456    \n",
      "_________________________________________________________________\n",
      "leaky_re_lu_2 (LeakyReLU)    (None, 16, 16, 256)       0         \n",
      "_________________________________________________________________\n",
      "conv2d_transpose_1 (Conv2DTr (None, 32, 32, 256)       1048832   \n",
      "_________________________________________________________________\n",
      "leaky_re_lu_3 (LeakyReLU)    (None, 32, 32, 256)       0         \n",
      "_________________________________________________________________\n",
      "conv2d_2 (Conv2D)            (None, 32, 32, 256)       1638656   \n",
      "_________________________________________________________________\n",
      "leaky_re_lu_4 (LeakyReLU)    (None, 32, 32, 256)       0         \n",
      "_________________________________________________________________\n",
      "conv2d_3 (Conv2D)            (None, 32, 32, 256)       1638656   \n",
      "_________________________________________________________________\n",
      "leaky_re_lu_5 (LeakyReLU)    (None, 32, 32, 256)       0         \n",
      "_________________________________________________________________\n",
      "conv2d_4 (Conv2D)            (None, 32, 32, 3)         37635     \n",
      "=================================================================\n",
      "Total params: 6,264,579\n",
      "Trainable params: 6,264,579\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "import keras\n",
    "from keras import layers\n",
    "import numpy as np\n",
    "\n",
    "latent_dim = 32\n",
    "height = 32\n",
    "width = 32\n",
    "channels = 3\n",
    "\n",
    "generator_input = keras.Input(shape=(latent_dim,))\n",
    "\n",
    "# First, transform the input into a 16x16 128-channels feature map\n",
    "x = layers.Dense(128 * 16 * 16)(generator_input)\n",
    "x = layers.LeakyReLU()(x)\n",
    "x = layers.Reshape((16, 16, 128))(x)\n",
    "\n",
    "# Then, add a convolution layer\n",
    "x = layers.Conv2D(256, 5, padding='same')(x)\n",
    "x = layers.LeakyReLU()(x)\n",
    "\n",
    "# Upsample to 32x32\n",
    "x = layers.Conv2DTranspose(256, 4, strides=2, padding='same')(x)\n",
    "x = layers.LeakyReLU()(x)\n",
    "\n",
    "# Few more conv layers\n",
    "x = layers.Conv2D(256, 5, padding='same')(x)\n",
    "x = layers.LeakyReLU()(x)\n",
    "x = layers.Conv2D(256, 5, padding='same')(x)\n",
    "x = layers.LeakyReLU()(x)\n",
    "\n",
    "# Produce a 32x32 1-channel feature map\n",
    "x = layers.Conv2D(channels, 7, activation='tanh', padding='same')(x)\n",
    "generator = keras.models.Model(generator_input, x)\n",
    "generator.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The discriminator\n",
    "\n",
    "\n",
    "Then, we develop a `discriminator` model, that takes as input a candidate image (real or synthetic) and classifies it into one of two \n",
    "classes, either \"generated image\" or \"real image that comes from the training set\"."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "input_2 (InputLayer)         (None, 32, 32, 3)         0         \n",
      "_________________________________________________________________\n",
      "conv2d_5 (Conv2D)            (None, 30, 30, 128)       3584      \n",
      "_________________________________________________________________\n",
      "leaky_re_lu_6 (LeakyReLU)    (None, 30, 30, 128)       0         \n",
      "_________________________________________________________________\n",
      "conv2d_6 (Conv2D)            (None, 14, 14, 128)       262272    \n",
      "_________________________________________________________________\n",
      "leaky_re_lu_7 (LeakyReLU)    (None, 14, 14, 128)       0         \n",
      "_________________________________________________________________\n",
      "conv2d_7 (Conv2D)            (None, 6, 6, 128)         262272    \n",
      "_________________________________________________________________\n",
      "leaky_re_lu_8 (LeakyReLU)    (None, 6, 6, 128)         0         \n",
      "_________________________________________________________________\n",
      "conv2d_8 (Conv2D)            (None, 2, 2, 128)         262272    \n",
      "_________________________________________________________________\n",
      "leaky_re_lu_9 (LeakyReLU)    (None, 2, 2, 128)         0         \n",
      "_________________________________________________________________\n",
      "flatten_1 (Flatten)          (None, 512)               0         \n",
      "_________________________________________________________________\n",
      "dropout_1 (Dropout)          (None, 512)               0         \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 1)                 513       \n",
      "=================================================================\n",
      "Total params: 790,913\n",
      "Trainable params: 790,913\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "discriminator_input = layers.Input(shape=(height, width, channels))\n",
    "x = layers.Conv2D(128, 3)(discriminator_input)\n",
    "x = layers.LeakyReLU()(x)\n",
    "x = layers.Conv2D(128, 4, strides=2)(x)\n",
    "x = layers.LeakyReLU()(x)\n",
    "x = layers.Conv2D(128, 4, strides=2)(x)\n",
    "x = layers.LeakyReLU()(x)\n",
    "x = layers.Conv2D(128, 4, strides=2)(x)\n",
    "x = layers.LeakyReLU()(x)\n",
    "x = layers.Flatten()(x)\n",
    "\n",
    "# One dropout layer - important trick!\n",
    "x = layers.Dropout(0.4)(x)\n",
    "\n",
    "# Classification layer\n",
    "x = layers.Dense(1, activation='sigmoid')(x)\n",
    "\n",
    "discriminator = keras.models.Model(discriminator_input, x)\n",
    "discriminator.summary()\n",
    "\n",
    "# To stabilize training, we use learning rate decay\n",
    "# and gradient clipping (by value) in the optimizer.\n",
    "discriminator_optimizer = keras.optimizers.RMSprop(lr=0.0008, clipvalue=1.0, decay=1e-8)\n",
    "discriminator.compile(optimizer=discriminator_optimizer, loss='binary_crossentropy')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The adversarial network\n",
    "\n",
    "Finally, we setup the GAN, which chains the generator and the discriminator. This is the model that, when trained, will move the generator \n",
    "in a direction that improves its ability to fool the discriminator. This model turns latent space points into a classification decision, \n",
    "\"fake\" or \"real\", and it is meant to be trained with labels that are always \"these are real images\". So training `gan` will updates the \n",
    "weights of `generator` in a way that makes `discriminator` more likely to predict \"real\" when looking at fake images. Very importantly, we \n",
    "set the discriminator to be frozen during training (non-trainable): its weights will not be updated when training `gan`. If the \n",
    "discriminator weights could be updated during this process, then we would be training the discriminator to always predict \"real\", which is \n",
    "not what we want!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Set discriminator weights to non-trainable\n",
    "# (will only apply to the `gan` model)\n",
    "discriminator.trainable = False\n",
    "\n",
    "gan_input = keras.Input(shape=(latent_dim,))\n",
    "gan_output = discriminator(generator(gan_input))\n",
    "gan = keras.models.Model(gan_input, gan_output)\n",
    "\n",
    "gan_optimizer = keras.optimizers.RMSprop(lr=0.0004, clipvalue=1.0, decay=1e-8)\n",
    "gan.compile(optimizer=gan_optimizer, loss='binary_crossentropy')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## How to train your DCGAN\n",
    "\n",
    "Now we can start training. To recapitulate, this is schematically what the training loop looks like:\n",
    "\n",
    "```\n",
    "for each epoch:\n",
    "    * Draw random points in the latent space (random noise).\n",
    "    * Generate images with `generator` using this random noise.\n",
    "    * Mix the generated images with real ones.\n",
    "    * Train `discriminator` using these mixed images, with corresponding targets, either \"real\" (for the real images) or \"fake\" (for the generated images).\n",
    "    * Draw new random points in the latent space.\n",
    "    * Train `gan` using these random vectors, with targets that all say \"these are real images\". This will update the weights of the generator (only, since discriminator is frozen inside `gan`) to move them towards getting the discriminator to predict \"these are real images\" for generated images, i.e. this trains the generator to fool the discriminator.\n",
    "```\n",
    "\n",
    "Let's implement it:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "discriminator loss at step 0: 0.685675\n",
      "adversarial loss at step 0: 0.667591\n",
      "discriminator loss at step 100: 0.756201\n",
      "adversarial loss at step 100: 0.820905\n",
      "discriminator loss at step 200: 0.699047\n",
      "adversarial loss at step 200: 0.776581\n",
      "discriminator loss at step 300: 0.684602\n",
      "adversarial loss at step 300: 0.513813\n",
      "discriminator loss at step 400: 0.707092\n",
      "adversarial loss at step 400: 0.716778\n",
      "discriminator loss at step 500: 0.686278\n",
      "adversarial loss at step 500: 0.741214\n",
      "discriminator loss at step 600: 0.692786\n",
      "adversarial loss at step 600: 0.745891\n",
      "discriminator loss at step 700: 0.69771\n",
      "adversarial loss at step 700: 0.781026\n",
      "discriminator loss at step 800: 0.69236\n",
      "adversarial loss at step 800: 0.748769\n",
      "discriminator loss at step 900: 0.663193\n",
      "adversarial loss at step 900: 0.689923\n",
      "discriminator loss at step 1000: 0.706922\n",
      "adversarial loss at step 1000: 0.741314\n",
      "discriminator loss at step 1100: 0.682189\n",
      "adversarial loss at step 1100: 0.76548\n",
      "discriminator loss at step 1200: 0.687244\n",
      "adversarial loss at step 1200: 0.746018\n",
      "discriminator loss at step 1300: 0.697884\n",
      "adversarial loss at step 1300: 0.766032\n",
      "discriminator loss at step 1400: 0.691977\n",
      "adversarial loss at step 1400: 0.735184\n",
      "discriminator loss at step 1500: 0.696238\n",
      "adversarial loss at step 1500: 0.738426\n",
      "discriminator loss at step 1600: 0.698334\n",
      "adversarial loss at step 1600: 0.741093\n",
      "discriminator loss at step 1700: 0.70315\n",
      "adversarial loss at step 1700: 0.736702\n",
      "discriminator loss at step 1800: 0.693836\n",
      "adversarial loss at step 1800: 0.742768\n",
      "discriminator loss at step 1900: 0.69059\n",
      "adversarial loss at step 1900: 0.741162\n",
      "discriminator loss at step 2000: 0.696293\n",
      "adversarial loss at step 2000: 0.755151\n",
      "discriminator loss at step 2100: 0.686166\n",
      "adversarial loss at step 2100: 0.755129\n",
      "discriminator loss at step 2200: 0.692612\n",
      "adversarial loss at step 2200: 0.772408\n",
      "discriminator loss at step 2300: 0.704013\n",
      "adversarial loss at step 2300: 0.776998\n",
      "discriminator loss at step 2400: 0.693268\n",
      "adversarial loss at step 2400: 0.70731\n",
      "discriminator loss at step 2500: 0.684289\n",
      "adversarial loss at step 2500: 0.742162\n",
      "discriminator loss at step 2600: 0.700483\n",
      "adversarial loss at step 2600: 0.734719\n",
      "discriminator loss at step 2700: 0.699952\n",
      "adversarial loss at step 2700: 0.759745\n",
      "discriminator loss at step 2800: 0.697416\n",
      "adversarial loss at step 2800: 0.733726\n",
      "discriminator loss at step 2900: 0.697604\n",
      "adversarial loss at step 2900: 0.740891\n",
      "discriminator loss at step 3000: 0.698498\n",
      "adversarial loss at step 3000: 0.754564\n",
      "discriminator loss at step 3100: 0.695516\n",
      "adversarial loss at step 3100: 0.759486\n",
      "discriminator loss at step 3200: 0.693453\n",
      "adversarial loss at step 3200: 0.769369\n",
      "discriminator loss at step 3300: 1.5083\n",
      "adversarial loss at step 3300: 0.726621\n",
      "discriminator loss at step 3400: 0.686934\n",
      "adversarial loss at step 3400: 0.747121\n",
      "discriminator loss at step 3500: 0.689791\n",
      "adversarial loss at step 3500: 0.751882\n",
      "discriminator loss at step 3600: 0.71331\n",
      "adversarial loss at step 3600: 0.704916\n",
      "discriminator loss at step 3700: 0.690504\n",
      "adversarial loss at step 3700: 0.853764\n",
      "discriminator loss at step 3800: 0.688844\n",
      "adversarial loss at step 3800: 0.791077\n",
      "discriminator loss at step 3900: 0.679162\n",
      "adversarial loss at step 3900: 0.724979\n",
      "discriminator loss at step 4000: 0.676585\n",
      "adversarial loss at step 4000: 0.69554\n",
      "discriminator loss at step 4100: 0.693313\n",
      "adversarial loss at step 4100: 0.742666\n",
      "discriminator loss at step 4200: 0.678367\n",
      "adversarial loss at step 4200: 0.778793\n",
      "discriminator loss at step 4300: 0.699712\n",
      "adversarial loss at step 4300: 0.740457\n",
      "discriminator loss at step 4400: 0.697605\n",
      "adversarial loss at step 4400: 0.755847\n",
      "discriminator loss at step 4500: 0.710596\n",
      "adversarial loss at step 4500: 0.814832\n",
      "discriminator loss at step 4600: 0.706518\n",
      "adversarial loss at step 4600: 0.83636\n",
      "discriminator loss at step 4700: 0.687217\n",
      "adversarial loss at step 4700: 0.775736\n",
      "discriminator loss at step 4800: 0.769103\n",
      "adversarial loss at step 4800: 0.774639\n",
      "discriminator loss at step 4900: 0.692414\n",
      "adversarial loss at step 4900: 0.775192\n",
      "discriminator loss at step 5000: 0.715357\n",
      "adversarial loss at step 5000: 0.775003\n",
      "discriminator loss at step 5100: 0.703434\n",
      "adversarial loss at step 5100: 0.940242\n",
      "discriminator loss at step 5200: 0.704034\n",
      "adversarial loss at step 5200: 0.708327\n",
      "discriminator loss at step 5300: 0.698559\n",
      "adversarial loss at step 5300: 0.730377\n",
      "discriminator loss at step 5400: 0.684378\n",
      "adversarial loss at step 5400: 0.759259\n",
      "discriminator loss at step 5500: 0.693699\n",
      "adversarial loss at step 5500: 0.700122\n",
      "discriminator loss at step 5600: 0.715242\n",
      "adversarial loss at step 5600: 0.808961\n",
      "discriminator loss at step 5700: 0.689339\n",
      "adversarial loss at step 5700: 0.621725\n",
      "discriminator loss at step 5800: 0.679717\n",
      "adversarial loss at step 5800: 0.787711\n",
      "discriminator loss at step 5900: 0.700126\n",
      "adversarial loss at step 5900: 0.742493\n",
      "discriminator loss at step 6000: 0.692087\n",
      "adversarial loss at step 6000: 0.839669\n",
      "discriminator loss at step 6100: 0.677867\n",
      "adversarial loss at step 6100: 0.797158\n",
      "discriminator loss at step 6200: 0.70392\n",
      "adversarial loss at step 6200: 0.842135\n",
      "discriminator loss at step 6300: 0.688377\n",
      "adversarial loss at step 6300: 0.718633\n",
      "discriminator loss at step 6400: 0.781234\n",
      "adversarial loss at step 6400: 0.710833\n",
      "discriminator loss at step 6500: 0.682696\n",
      "adversarial loss at step 6500: 0.739674\n",
      "discriminator loss at step 6600: 0.693081\n",
      "adversarial loss at step 6600: 0.747336\n",
      "discriminator loss at step 6700: 0.681836\n",
      "adversarial loss at step 6700: 0.780143\n",
      "discriminator loss at step 6800: 0.728136\n",
      "adversarial loss at step 6800: 0.838522\n",
      "discriminator loss at step 6900: 0.660475\n",
      "adversarial loss at step 6900: 0.717434\n",
      "discriminator loss at step 7000: 0.672144\n",
      "adversarial loss at step 7000: 0.948783\n",
      "discriminator loss at step 7100: 0.692428\n",
      "adversarial loss at step 7100: 0.837047\n",
      "discriminator loss at step 7200: 0.731133\n",
      "adversarial loss at step 7200: 0.728315\n",
      "discriminator loss at step 7300: 0.671766\n",
      "adversarial loss at step 7300: 0.793155\n",
      "discriminator loss at step 7400: 0.712387\n",
      "adversarial loss at step 7400: 0.807759\n",
      "discriminator loss at step 7500: 0.68638\n",
      "adversarial loss at step 7500: 0.967421\n",
      "discriminator loss at step 7600: 0.690096\n",
      "adversarial loss at step 7600: 0.811904\n",
      "discriminator loss at step 7700: 0.702784\n",
      "adversarial loss at step 7700: 0.867017\n",
      "discriminator loss at step 7800: 0.674138\n",
      "adversarial loss at step 7800: 0.837909\n",
      "discriminator loss at step 7900: 0.674747\n",
      "adversarial loss at step 7900: 0.743664\n",
      "discriminator loss at step 8000: 0.680357\n",
      "adversarial loss at step 8000: 0.810859\n",
      "discriminator loss at step 8100: 0.688885\n",
      "adversarial loss at step 8100: 0.786809\n",
      "discriminator loss at step 8200: 0.671557\n",
      "adversarial loss at step 8200: 0.784159\n",
      "discriminator loss at step 8300: 0.70359\n",
      "adversarial loss at step 8300: 0.95692\n",
      "discriminator loss at step 8400: 0.720167\n",
      "adversarial loss at step 8400: 1.14066\n",
      "discriminator loss at step 8500: 0.747376\n",
      "adversarial loss at step 8500: 0.630725\n",
      "discriminator loss at step 8600: 0.688931\n",
      "adversarial loss at step 8600: 0.849245\n",
      "discriminator loss at step 8700: 0.707559\n",
      "adversarial loss at step 8700: 0.713202\n",
      "discriminator loss at step 8800: 0.673593\n",
      "adversarial loss at step 8800: 0.832419\n",
      "discriminator loss at step 8900: 0.6777\n",
      "adversarial loss at step 8900: 0.773395\n",
      "discriminator loss at step 9000: 0.659887\n",
      "adversarial loss at step 9000: 0.77255\n",
      "discriminator loss at step 9100: 0.675182\n",
      "adversarial loss at step 9100: 0.749544\n",
      "discriminator loss at step 9200: 0.687147\n",
      "adversarial loss at step 9200: 0.836509\n",
      "discriminator loss at step 9300: 0.690807\n",
      "adversarial loss at step 9300: 0.829561\n",
      "discriminator loss at step 9400: 0.656649\n",
      "adversarial loss at step 9400: 0.788181\n",
      "discriminator loss at step 9500: 0.703494\n",
      "adversarial loss at step 9500: 0.78302\n",
      "discriminator loss at step 9600: 0.680718\n",
      "adversarial loss at step 9600: 0.813078\n",
      "discriminator loss at step 9700: 0.704956\n",
      "adversarial loss at step 9700: 0.761652\n",
      "discriminator loss at step 9800: 0.673504\n",
      "adversarial loss at step 9800: 0.853213\n",
      "discriminator loss at step 9900: 0.669288\n",
      "adversarial loss at step 9900: 0.677691\n"
     ]
    }
   ],
   "source": [
    "import os\n",
    "from keras.preprocessing import image\n",
    "\n",
    "# Load CIFAR10 data\n",
    "(x_train, y_train), (_, _) = keras.datasets.cifar10.load_data()\n",
    "\n",
    "# Select frog images (class 6)\n",
    "x_train = x_train[y_train.flatten() == 6]\n",
    "\n",
    "# Normalize data\n",
    "x_train = x_train.reshape(\n",
    "    (x_train.shape[0],) + (height, width, channels)).astype('float32') / 255.\n",
    "\n",
    "iterations = 10000\n",
    "batch_size = 20\n",
    "save_dir = '/home/ubuntu/gan_images/'\n",
    "\n",
    "# Start training loop\n",
    "start = 0\n",
    "for step in range(iterations):\n",
    "    # Sample random points in the latent space\n",
    "    random_latent_vectors = np.random.normal(size=(batch_size, latent_dim))\n",
    "\n",
    "    # Decode them to fake images\n",
    "    generated_images = generator.predict(random_latent_vectors)\n",
    "\n",
    "    # Combine them with real images\n",
    "    stop = start + batch_size\n",
    "    real_images = x_train[start: stop]\n",
    "    combined_images = np.concatenate([generated_images, real_images])\n",
    "\n",
    "    # Assemble labels discriminating real from fake images\n",
    "    labels = np.concatenate([np.ones((batch_size, 1)),\n",
    "                             np.zeros((batch_size, 1))])\n",
    "    # Add random noise to the labels - important trick!\n",
    "    labels += 0.05 * np.random.random(labels.shape)\n",
    "\n",
    "    # Train the discriminator\n",
    "    d_loss = discriminator.train_on_batch(combined_images, labels)\n",
    "\n",
    "    # sample random points in the latent space\n",
    "    random_latent_vectors = np.random.normal(size=(batch_size, latent_dim))\n",
    "\n",
    "    # Assemble labels that say \"all real images\"\n",
    "    misleading_targets = np.zeros((batch_size, 1))\n",
    "\n",
    "    # Train the generator (via the gan model,\n",
    "    # where the discriminator weights are frozen)\n",
    "    a_loss = gan.train_on_batch(random_latent_vectors, misleading_targets)\n",
    "    \n",
    "    start += batch_size\n",
    "    if start > len(x_train) - batch_size:\n",
    "      start = 0\n",
    "\n",
    "    # Occasionally save / plot\n",
    "    if step % 100 == 0:\n",
    "        # Save model weights\n",
    "        gan.save_weights('gan.h5')\n",
    "\n",
    "        # Print metrics\n",
    "        print('discriminator loss at step %s: %s' % (step, d_loss))\n",
    "        print('adversarial loss at step %s: %s' % (step, a_loss))\n",
    "\n",
    "        # Save one generated image\n",
    "        img = image.array_to_img(generated_images[0] * 255., scale=False)\n",
    "        img.save(os.path.join(save_dir, 'generated_frog' + str(step) + '.png'))\n",
    "\n",
    "        # Save one real image, for comparison\n",
    "        img = image.array_to_img(real_images[0] * 255., scale=False)\n",
    "        img.save(os.path.join(save_dir, 'real_frog' + str(step) + '.png'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "Let's display a few of our fake images:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\ndBhZLS00FlwAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fb172d99f98>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fb17167c470>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fb1713b3780>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fb17130d668>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nRK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fb1712dcb38>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fb1712a69e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fb17127add8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP8AAAD8CAYAAAC4nHJkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnX2MnWeZ3q/7fM/MmU/Ppz9ix47jODFxAk42BcoCISiw\nqIFuFQEqTSuKV9VSFWlbKaJSoVL/gKqA+KOiMku6oWIJlECJdlGXbHYhsIQQJ/G3nfhrxp7xeMb2\njOfrzJw5H3f/OMeSMzzXOxM7PuP0vX6S5Znnnud9nvO8733e8z7Xue/b3B1CiPiRWO0JCCFWBzm/\nEDFFzi9ETJHzCxFT5PxCxBQ5vxAxRc4vREyR8wsRU+T8QsSU1PV0NrOHAXwTQBLAn7v7VyIHSyQ8\nnUqGbclwOwAkkuH3qMVSmfapVqp8HuR4y82jRMazBD9eImnUhir/dmVTc4bbmnLUNl9YCLYXCou0\nj0VMsakpG2HjcywuloLti8VwOwBkc3ystvZWakuCv4D52UKwfWGRXzvpLL8G3PlYi0W+xuWI6zFB\nTkAqHXFvJn2mZgooLBQjzuhVx1/JH4XHtiSA/w7gIQDDAF4ys2fc/Qjrk04lcVtvZ9DW2dFGx2pt\nDZ/4obFx2mducp7aejqbqK27rYvaRsbOB9tTuRbap60jTW3VeX5B7Lh7HbXt3HEHtR3YfzzYvvfV\n07RPJs3fhN6xYyu17bhzA7WdPjMWbD9z6hzts2X7Zmp76CN/SG2tCX4+D/9qb7D9teEJ2mdgC78W\niyV+PodODFHbxGz4TRkAmtPhY3Z389cF8gb1P3/yC95nCdfzsf9+ACfc/ZS7LwJ4CsAj13E8IUQD\nuR7nXwfg7FW/D9fbhBBvA67rmX8lmNluALsBIB3xrC2EaCzX440jAK5+6Ftfb3sD7r7H3Xe5+65k\nxMaYEKKxXI83vgRgq5ndamYZAJ8E8MxbMy0hxI3mmj/2u3vZzD4P4G9Qk/qecPfDUX0MgCXCKsSa\nbi5fpSpheWhhmu/YVsv8fa01y2Wjd93Hd7Dzx8K78789OEj7zM1xOSzlFWqroI/auvr4WrV2hHeB\nO/hLRnd/WIEBgI0b2qnt1jvWU1u1PBds37/vIu1zYYTvpJeKvN/ae95Fben8jmD7xM9foH2ODXFF\nojXF5UikZqkp38ldje32D2zh18C5sbCaAlt5cp7reuZ3958B+Nn1HEMIsTroIVyImCLnFyKmyPmF\niClyfiFiipxfiJhyw7/hdzUOwEkwVaXE34dKhWKwPZGMiJQCjx47P8olwvnpKWrbsnFjsH3/obPB\ndgC4fJmPtbGbBxFNT/AIsZ//1W+o7fVT4eCjnPG1WtPeQW0T4xeo7czJM9Q2PhQOupqYvUz7FM+F\nzzMAvPLLg9Q20LWG2kqL4WOeHxqmfU6d5HN8xzYuv+3YuY3a9h86Rm1jF8OyaLl0ivY5eTq8voU5\nvoZL0Z1fiJgi5xcipsj5hYgpcn4hYoqcX4iY0tDd/qo7CuXwdn9hOpxrDQDu2xYOtlm3ke/yHj/J\nd0onI1J8DQ+SgAkAW+8Kp+v6x7tu4/M4v5basnm+yz5T5bvzp4/zwJMKC5vO8bx0rw69Rm2lAj8v\nIzPhXWoA6G0LBzRt3tJP+wyzYBUAv3h5H7UVZnk6t3xfOGhpmgQeAcC738uDu27fuoXaMnmedmvh\nID+fR0fCCk05Qv1YvBwOIiqWuMq1FN35hYgpcn4hYoqcX4iYIucXIqbI+YWIKXJ+IWJKQ6U+A5D2\ncI6xVEQ5o0I1LDdduMADMKYu8XJMcJ4rbnCCy01jvwnnkctl87RPPs/HSkSUwqqWuTTX3tJMbZ2t\nYflwYorLRlMXeDCTt/LXVinxOVbnw/kJb+2PyPtX5DkNRwe57Rfjh6jtji3h8dbdzgN02tt4Bab9\npCISAJw+ygOdTkzyHITF2fBra4qQDluawnMcTszQPkvRnV+ImCLnFyKmyPmFiClyfiFiipxfiJgi\n5xciplyX1GdmgwBmAFQAlN19V9TfJ5MJtLWHS021dPGyVsPnwlFb+08P0j5dzbwEVTbbRm1R5Y68\nKTzHUppLdu2tfKxkmufpyzRz6dMqvPbWdCF8zOmZSdqnkuPzz7fyS6SQ4BF/+wfDkWptXVxGG+jg\na7X9wzw68tjQEWorkulPznPpc+J1HiV46DiX+iqLXPqcL3GpsjQfjjJta+Xnubc3fH2nzvGci7/3\ntyv+S84H3J2LmEKImxJ97Bciplyv8zuAn5vZy2a2+62YkBCiMVzvx/73uvuImfUCeNbMjrn781f/\nQf1NYTcAZFL8mUgI0Viu687v7iP1/8cB/ATA/YG/2ePuu9x9Vyqppwwhbhau2RvNrMXMWq/8DODD\nAHiEhRDipuJ6Pvb3AfiJmV05zl+6+/+NHMwMnblwlNvtt/GkieVqWL46PcpFhikinwBAT0tYbgSA\n1g4eSZWpWrDdU1yWm4941GmOiIrzCpfEFov8tY2OXQofb54ndly3mUe45Zv5JTI6wiWxqcWwZHr5\nHE+c2TEQXl8A2Pkgvz562nkE5+FXTwbbz77GI0L7+niS0Ts23EJtrTm+VrNJLotOzobPzckjPFHr\n8EI4ErNU4vLxUq7Z+d39FICd19pfCLG66CFciJgi5xcipsj5hYgpcn4hYoqcX4iY0tAEnjAgQUbc\n0M+j8Hq6wtFeaSzQPieOjVLbXETkXnsbl8SmZsNSVBlcHqzOcxmqZFzaaknzKMejRyPqEM6EEzhu\nWM8jxJJJPv/FYrgmHABYmkum2abwuZkZ52t/9mhYpgSAoxuHqK1MErwCQCJLaga28SSo73voXdSW\nSfH75fQ4T/6KLB+vnAqv41PnfkX7vHrkbPhYJS47L0V3fiFiipxfiJgi5xcipsj5hYgpcn4hYkrD\ny3WlnATHFHnAxyQJ4GlJ8J357m6+k25TvF91geeza2kiu+LGd+ZHefwIkgm+811Kc9vm23lwSd/a\ngWB7zvlrPnx4mNqawQNFOlt4KbLkQljlyOT5/SYLrkgcOszz9OWy/FynSX7FtVt4MFNbO9+Znzo/\nQW0zU7xUVjrHcwZWcuHd/nXr+LV4ca492H7pFJ/fUnTnFyKmyPmFiClyfiFiipxfiJgi5xcipsj5\nhYgpDZX6kokELUE0OcE1sTYi6W3dwiWvjjzPgXdkeJraTo3w4JJUPiwBFco8wGiiyAN7ZuZ50Mx8\ngq/H9r411Pbu28P550ZH+ev63SyXqKZKvMxXS5HLkelqeI0H1vFzlipyya44z/M1zpX4PNb1hK+3\nVJqXz5o+y0tylSPul2u6eHBaspPLh8OD4fHam/l63LU9nNPwtXP8mlqK7vxCxBQ5vxAxRc4vREyR\n8wsRU+T8QsQUOb8QMWVZqc/MngDwMQDj7r6j3tYF4AcANgEYBPCou3NNqE4imUAziZhamOW5x7Zs\n7Q22b915L+3TfOY1ajsydJjamlI8n10yHZYcZ+a4dNiR5XnumjJcBpxz/r589Bh/be294RJg1Wku\nh81OD1JbpoNH7qV4oCAmpsOvbXqOl6DKRORWvO/ebmrraQnneASATHNY+qxUuZQ6PsXLoRUucSmt\nuTMcUQkALUm+WAuTYdmxsy0cuQcAa1rDsmLu1ydon6Ws5M7/FwAeXtL2OIDn3H0rgOfqvwsh3kYs\n6/zu/jyApUHCjwB4sv7zkwA+/hbPSwhxg7nWZ/4+d7+SG/s8ahV7hRBvI657w8/dHQB9WDOz3Wa2\n18z2LizyZ1whRGO5VucfM7MBAKj/Twu1u/sed9/l7rtymcbWCBFCcK7V+Z8B8Fj958cA/PStmY4Q\nolGsROr7PoD3A+g2s2EAXwLwFQA/NLPPAhgC8OhKBit7BReLYYllMCLSbrEcLsc0HhEVNzQ8Qm0n\npngyxeIcj9DLpMNRVulWLof1tvDowstjXP6xAn9EaiGRkQCAufAcC2UexZYzPkfM8VJYt92+jdqK\nzeHEnyNHeaLW9WvDMiUAdGZ5xFzG+fm8dPx8uE8nT0zqLXlqO33hDLWVh/g119HBo/ru2h5ex2qE\n3Du5EH7S5nGAv8+yzu/unyKmB9/EOEKImwx9w0+ImCLnFyKmyPmFiClyfiFiipxfiJjS0G/dVKvA\n/GxYjLhc4FF9B86E64+9cmKQ9ilHRNplenqorVjikliqFJbf+jp5NJqBR4htynNpq1Tl0YUDa3ik\nYG9vOAJy6PBJ2mdtM5cVE21cBkw083O2rj0sRy708ESiU9M8kehYlgeNdt3Cz+fhhbCk1z7Dpb72\nHJ/HYopLdpPViH6jXEK+bVPYJy5N8Gv49OhosH1hgY+zFN35hYgpcn4hYoqcX4iYIucXIqbI+YWI\nKXJ+IWJKY6U+dxTL4Qis6XkuGxVmw9F71SSXylrKPDJrax+XhjrzXJobXwiP5zP8PbS9nUf8PfCH\nt1Jba4bHZ02du8D7DYT7TQ9HRIg5j5jbtIHXBezp4DLglru3B9vv3X437fP8c39Lbfk8X8d8M0+c\n2ZkcDrZPFrmke0uaS6k9feEaeQCARR7Vd26MJy790f/5RbB96iKX7To2hKXgxcWIrKpL0J1fiJgi\n5xcipsj5hYgpcn4hYoqcX4iY0tDd/mQyibbOcAmi4fMRJZJIe8r5ju10gr+0jjwPmpkrZ6itPBZO\nUjxnfKzmKg/6KczxQJANvbdQ2+sHX6C2+UR4vOYc3zluA8+F6AWew69r/Q5q624J7zrneniJh2qJ\nH+/iPA8+Gh3mQT+ZjnAprzb+kjE6FlHK6wQf6+wQTWINa+LX3OxkOICnKSIjX2u5K9juvvIsfrrz\nCxFT5PxCxBQ5vxAxRc4vREyR8wsRU+T8QsSUlZTregLAxwCMu/uOetuXAXwOwJUIky+6+8+WO5YD\nYFWjJma47JWrhKdZauPyTwd4cMbQGS7XFOd5YMQUCQZJTHM5L9fCc8UN7Ruktk1ruOTYn81SW2dH\nWMOqdHCpKUOCXwDAKnys7rDaBAAYP/PbYHtz7nbaZ+2GbmprX+Dn5fy5s9RWLIalypkCP2djZy9S\n26HTPAfh5XGec29Tf1hyBIA/uPu2YHsuFVGG7HJ4PYwXzP49VnLn/wsADwfav+Hu99T/Lev4Qoib\ni2Wd392fBxBOnyuEeNtyPc/8nzezA2b2hJnxgHAhxE3JtTr/twBsAXAPgFEAX2N/aGa7zWyvme1d\nXOTP6EKIxnJNzu/uY+5ecfcqgG8DuD/ib/e4+y5335XJNDSUQAgRwTU5v5ldnTfpEwAOvTXTEUI0\nipVIfd8H8H4A3WY2DOBLAN5vZvegpt4NAviTlQzmnkCpHC53NF/k+fjKTuSLKZ73LxeR8234FJf6\nsmn+flghkYLJJr6Mc9PcdsZ49NjEKI8QS7VwOWfj1nDuvHz/Ot7nNM9pOHaOS2wdHTzy8MTBcM66\nsZl9/Hgb+fHgXLo9P8gfJ88NhWW7apK/5ktTPDLOEZE3spnLoqWI6M6dO8N5ATvyvDTY/hePB9vT\nEbLtUpZ1fnf/VKD5OyseQQhxU6Jv+AkRU+T8QsQUOb8QMUXOL0RMkfMLEVMa/K0bhyMc5Vat8mSc\nlcWwvFJNcvmknOMJQS8nuUTYleESoZXC4126zEMfKvMd1DbQz+WrvnW91DZ1lJd+ylZIos7LXALy\nIo9GS5f4HMszZ6ittyMcqebdERGQTTzy7cICl0W71/KIxaHpsFx2+QKXe0+e5evrTXw9ulu4O737\nnVuo7c5tW4PtpYhvxHb0h6MLU8dGaZ+l6M4vREyR8wsRU+T8QsQUOb8QMUXOL0RMkfMLEVMaKvUl\nLIlcJpz0Z7HMJaBqIhxltaaNSzwLGf6+1pJrobZMgsuAl2bDySCTJR75VnJe625TOVy3EACQ4Mks\nLckjyyrNYVuiwl/X7BSfBnrz1FTOcnk22xZek66+9XweBS5tLU5wCXZhlstviWLYVlzgc2/hQ6G1\ni0fu/fEH/4DaHnzwQ9TWlg4f88hL+2mfyYthybwc4UdL0Z1fiJgi5xcipsj5hYgpcn4hYoqcX4iY\n0tDd/kw6iVsGwsEb+Sa+i2ql8A52axff7V+c5aWOygt8B342E7GTXgmXwkpn+TzS1VZqG7ocPh4A\nnDx2ktr60rxMQpnE9RQu8pyA1TJXK5pSXCVILfJzViyF139mmgfUXLrA1+PIa+ep7fjoBWqbmgrv\nfm9Zz1WHf/rJf01tmcofU9s7tr6D2rbcdRe1lafDQUu9W8nJBHDrYjhgKXuMly5biu78QsQUOb8Q\nMUXOL0RMkfMLEVPk/ELEFDm/EDFlJeW6NgD4LoA+1Mpz7XH3b5pZF4AfANiEWsmuR92d6zgAUuk0\nensHgra2Nh5sc/J8uOTSpulwcAMApCICexCRw68KHtVRsrBs1JHlwRSJBT7W4CiPqHlxP+/30Ae2\nUdtCaU2wvbowRvt0bwvn2wOARLqP2mZHeK67KsnViBSXPpva+dqX0zxPYmqeX8abu8M5FDffvon2\nuf9dfH1zOR5ElCxHBR/x+c/MhnMoVlO8XFemJXyejZSUC7GSO38ZwJ+5+50AHgDwp2Z2J4DHATzn\n7lsBPFf/XQjxNmFZ53f3UXd/pf7zDICjANYBeATAk/U/exLAx2/UJIUQbz1v6pnfzDYBuBfAiwD6\n3P1KnuDzqD0WCCHeJqzY+c0sD+BpAF9w9zc8pLi7o7YfEOq328z2mtneQoHn0hdCNJYVOb+ZpVFz\n/O+5+4/rzWNmNlC3DwAIfnnc3fe4+y5339XczL8DL4RoLMs6v5kZgO8AOOruX7/K9AyAx+o/Pwbg\np2/99IQQN4qV6ALvAfAZAAfNbF+97YsAvgLgh2b2WQBDAB5d7kDmVaRK4citPiLJAMBtFn6P6mjl\nOd/SnqG2RZujtvlJLh8mSbmumWle7qpU5J92UmU+1vkCjy48cZKXyUrPh9f3lk1chmrrirgMinyN\nKx18jh0d28OHW+TzmJgeoraWHL9P7bqTl8Lafu/dwfbFRZ7D7/wJHlE5sJnLomUSaQcAhSKPWBw+\nFy69NTTJo/rK5XBeyzeRwm9553f3XwMIjwQ8uPKhhBA3E/qGnxAxRc4vREyR8wsRU+T8QsQUOb8Q\nMaWhCTzNDelSeMi1rVyayya6gu1zMzwp5QTPSYmq8bESTXxJWtLhfrOViHJRxuWwXAuPZDx7mb8v\nj//qCLUd6Ar3e/RDPLnk2rt4malqhq9Vvo+XG6vmeoPtl05wmfLvfsnLU70UkdD0zraN1PbAR98d\nnscol95GhsIJNQFg0QeprSnPdbbFCpeXT4yEozsrTfwb89VsOOrTEyu/n+vOL0RMkfMLEVPk/ELE\nFDm/EDFFzi9ETJHzCxFTGlyrL4V1G7qDtgfb7qP9OtrCUt/IhUHa5+m/3kttEzO8Vl9Tlst22Wx4\nuTojavWhyjXH6Xme3MQXeL/FbJ7aRi6FZapfPXuY9tn5gX9LbeV5XvPwzOnjfB4XwvP/zQu8ltwL\nJ49R2/AEr9XXtvleajt16FCwPethKRIA+tb3U1uqo4faJmZ5BOR4kUcRTpDozuYcl4mb0+HoyISk\nPiHEcsj5hYgpcn4hYoqcX4iYIucXIqY0dLc/kUwi39IZtPX08yCXnv5NwfY7sI72OXyal8L6y7/5\nB2rLN/Fd2W4L7+a2D/Dd/sQCy4AGlKJ2+zP8mJmFLLX1rAmvb5ZvUmN06AFq2/8PfAf+uz/6O2rr\nWB8uy1bItNE+1QX+mvs7t1LbXG49tb1y/EKwvaWd3/d6m2+htumLPEDnzDmujOS7ee7C2WRYvbFF\nvtufLIZdt1rl19tSdOcXIqbI+YWIKXJ+IWKKnF+ImCLnFyKmyPmFiCnLSn1mtgHAd1Erwe0A9rj7\nN83sywA+B+CKlvJFd/9Z1LHK5QomLoYDTzITXKJYNxCWPAbuCJdiAoB/9WkeGPOxCpdksi/w/Hgz\nc+G5l8a5PJjL8Rx4luTyJrjKg+ZWXhaqpyscOLX9nm20z0yFz+OZp49S26lLXE799L8I5867/z3/\nnPY5/OoHqe31QV4mqzkfljcB4LXj4XPtqVO0z92ta6htNsVl1skJfh2Uc1zGLJFLdc54TsC2XFg6\nrJXWXBkr0fnLAP7M3V8xs1YAL5vZs3XbN9z9v614NCHETcNKavWNAhit/zxjZkeBiG/XCCHeFryp\nZ34z2wTgXgAv1ps+b2YHzOwJM+OfvYQQNx0rdn4zywN4GsAX3H0awLcAbAFwD2qfDL5G+u02s71m\ntnd2jifREEI0lhU5v5mlUXP877n7jwHA3cfcveLuVQDfBnB/qK+773H3Xe6+K9/CN6qEEI1lWee3\n2vbhdwAcdfevX9V+deTGJwCE8yUJIW5KVrLb/x4AnwFw0Mz21du+COBTZnYPavLfIIA/We5A1XIF\ns5NheWhqgkdLdbR3BNszPVyiyjVxSWbHNh4FtjgVzqcGAL/83XSwveLh0kkA0J6KKP/VzGWZ2WJE\nxF+JS5VFnwm2F6q8PNXF8XAfABjYyWWvBx/ia/yeT/+TYHt/Pz/e4Cl+vP7+cB5HAMi2huVNALg4\nScqDtfJSY1biElsqIvIw08Tl5XQz7+dsuBLPJ1lKkHJd4HNfykp2+38NIHSVRmr6QoibG33DT4iY\nIucXIqbI+YWIKXJ+IWKKnF+ImNLQBJ4VB6ZLYXnrEklICABDY+FouvIBHnE2Pcmlra4cH+u+u3gZ\np5nJsO3kqWHaZ7YyQW2pTl52a2GOy2+jc1wGLJfCElYu00r7bNnCv3z13o/cSW1nB7msNHTyRLD9\n4G951OTRwUvU1rKeS31zi1xiq7aEoyrzrTyR6HTEF1GTbfzaaUtwaS6R4raphXBi2KZWPpY5s6lc\nlxBiGeT8QsQUOb8QMUXOL0RMkfMLEVPk/ELElIZKfcl0EvnesBQ1HRHBdHIiHGl39vAQ7TM9xeWw\nRYSlFQCYm+ESYToRjjqbml+gfcYjZLn1PVzqq5Z5Msj2Dl73LdEWXt8z4+O0z8Bt4bp6ANCf5xGQ\nk3N8/V85MxpszzhPaFqMiMScmeUZTScvn6e2ioX7pSNqKBaqfI4+wyMqLc8l0/lJfo3MkKhQm+V9\n0ErWKiLp51J05xcipsj5hYgpcn4hYoqcX4iYIucXIqbI+YWIKQ2V+lKpJNZ0h2t7TBZ5As+mbFjW\nGNhwK+1zYTycbBMAzp2/SG3rO7ns9YkP/VGw/XOzX6V9/sO/fInatvS9TG1TUzy0LIO11JZLhN/P\n50nkGAC8foKv/dgwj5wcL/DEpS2pcBRhezdf32SKR9qNFLnEtiHLI/5aB8KRmAOtvMZMlsjRAFAo\ncjlyrsjXI5OKkOCIGpxt5X0qpXAnB5/DUnTnFyKmyPmFiClyfiFiipxfiJgi5xcipiy7229mOQDP\nA8jW//5H7v4lM7sVwFMA1gB4GcBn3J3XugJQqZQwN3cuaGuq8vehPKnKZUm+I14oTFJbOmJHdFdE\nKa9b7wirC1OXeNDMhVFeSqqrk+8cT0xzRWLO+OuulsLrmIooFzUZcdYuLPBcgq0tfJc9aWF1obzI\nB5uZ5eesPceVgEyGB0ElC+HxCjm+vk3zEbkVI+ZYidjtT+b5+ufK4UAiq/DrI5MMvy4ervT7rOTO\nXwTwQXffiVo57ofN7AEAXwXwDXe/DcAkgM++iXGFEKvMss7vNa7Euabr/xzABwH8qN7+JICP35AZ\nCiFuCCt65jezZL1C7ziAZwGcBHDZ3a98thsGsO7GTFEIcSNYkfO7e8Xd7wGwHsD9AO5Y6QBmttvM\n9prZ3tmIxBZCiMbypnb73f0ygL8H8I8AdJjZlQ3D9QBGSJ897r7L3XflW/imhxCisSzr/GbWY2Yd\n9Z+bADwE4ChqbwL/rP5njwH46Y2apBDirWclgT0DAJ40syRqbxY/dPe/MrMjAJ4ys/8C4FUA31nu\nQGZAMhEOVlizNiKf3UxYypke4bnbRk6/Tm0d7TyoY7bAgzpef3VfsP2FX79A+/z2eLhsFQCUUzzY\npqV/De+3wKWtOVJrauEyD96ZWeS553IREiyJIQIATM6F88+lZ8O5/QBgYprnrOvp6ae2TIrn3EvM\nhSUxv8ADhXLbuGA2NcWDbWZK/LwULvKSYq25vmB7Z8Qn5YqT4zmfw1KWdX53PwDg3kD7KdSe/4UQ\nb0P0DT8hYoqcX4iYIucXIqbI+YWIKXJ+IWKKua+8vM91D2Z2AcCVGk/dAHhoVePQPN6I5vFG3m7z\n2OjuPSs5YEOd/w0Dm+11912rMrjmoXloHvrYL0RckfMLEVNW0/n3rOLYV6N5vBHN4438fzuPVXvm\nF0KsLvrYL0RMWRXnN7OHzew1MzthZo+vxhzq8xg0s4Nmts/M9jZw3CfMbNzMDl3V1mVmz5rZ8fr/\nPPTwxs7jy2Y2Ul+TfWb20QbMY4OZ/b2ZHTGzw2b27+rtDV2TiHk0dE3MLGdmvzOz/fV5/Od6+61m\n9mLdb35gZjyccSW4e0P/AUiilgZsM4AMgP0A7mz0POpzGQTQvQrjvg/AOwEcuqrtvwJ4vP7z4wC+\nukrz+DKAf9/g9RgA8M76z60AXgdwZ6PXJGIeDV0T1JLw5us/pwG8COABAD8E8Ml6+/8A8G+uZ5zV\nuPPfD+CEu5/yWqrvpwA8sgrzWDXc/XkAE0uaH0EtESrQoISoZB4Nx91H3f2V+s8zqCWLWYcGr0nE\nPBqK17jhSXNXw/nXATh71e+rmfzTAfzczF42s92rNIcr9Ln7lUwX5wGEMzw0hs+b2YH6Y8ENf/y4\nGjPbhFr+iBeximuyZB5Ag9ekEUlz477h9153fyeAjwD4UzN732pPCKi986P2xrQafAvAFtRqNIwC\n+FqjBjazPICnAXzB3d9QY72RaxKYR8PXxK8jae5KWQ3nHwGw4arfafLPG427j9T/HwfwE6xuZqIx\nMxsAgPr/vAzQDcTdx+oXXhXAt9GgNTGzNGoO9z13/3G9ueFrEprHaq1Jfew3nTR3payG878EYGt9\n5zID4JMAnmn0JMysxcxar/wM4MMADkX3uqE8g1oiVGAVE6JecbY6n0AD1sTMDLUckEfd/etXmRq6\nJmwejV4Z+6ZSAAAAqElEQVSThiXNbdQO5pLdzI+itpN6EsB/XKU5bEZNadgP4HAj5wHg+6h9fCyh\n9uz2WdRqHj4H4DiAvwXQtUrz+F8ADgI4gJrzDTRgHu9F7SP9AQD76v8+2ug1iZhHQ9cEwN2oJcU9\ngNobzX+66pr9HYATAP43gOz1jKNv+AkRU+K+4SdEbJHzCxFT5PxCxBQ5vxAxRc4vREyR8wsRU+T8\nQsQUOb8QMeX/AeHpppwCSQBNAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fb1711c08d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP8AAAD8CAYAAAC4nHJkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnWmMZNd13/+n9uqqXme6e3r24U6aEhd3aCmiBUWGHUpx\nQAkwBOmDwA+CaRgWEAHOB0IBIgUIAimIJOhDoICKCNOJrCWWFBGGYEsm5BCKZZrDbcjhkBrOvvQy\nvXd17VUnH6qoDIf3/7o4M11N+v1/wGCq76n73q373nmv6v7fOcfcHUKI+JHY7gEIIbYHOb8QMUXO\nL0RMkfMLEVPk/ELEFDm/EDFFzi9ETJHzCxFT5PxCxJTUtXQ2swcAfB1AEsB/d/cvRb0/k8l4PpcL\nbytqP4nwNcoielmSX9e8xffVBn/i0UjHVqvNNxixs3Q6yfcVMY6ohzKTifCcJBJ8X8kkPw1SmSy1\nRc0/yPwnIsbeND6OJB8+HBHz2A4fm2abDySVivhcFnHOkX0BgEf0azfD/dz59tjWFpcWUdooRbnT\nr7lq5zezJID/CuB3AZwH8IyZPeHur7A++VwO909PhweS4s6azBbD7REnbX5wgNqqq9SEqlWoLVMt\nB9uX1sLtAIDWEjVNTQzxfYFfNFoNfmyLA+F5HMyP0T5DwzuobccNN1JbNuL0aQ6Fj1mhzj/XcpaP\no1DgDt5OhPcFAInqRrB9Za1J+4zuTPPt5SIuhqXwvgDAI65e64v1YHuzyc/FFLmKfvmr/4n2uZJr\n+dp/H4DX3f2ku9cBfBfAg9ewPSFEH7kW598D4Nxlf5/vtgkh3gVc02/+XjCzhwE8DAC5LP/KJITo\nL9dy578AYN9lf+/ttr0Jd3/U3afdfTqTyVzD7oQQ15Nrcf5nANxsZofMLAPgkwCeuD7DEkJsNVf9\ntd/dm2b2WQB/g47U95i7H43qY5ZAIhtehc9l+beC5EAhPIYcX0Et5gapzdM1amvUuAS0Vl8Ltjdr\n67RPLsNXlXeM8PHnI6S5c+fOUVvx4GSw/cAuvpKeGRylthYXTVBL859x6ZHw/NebYakXAFoJfjqu\nR3xrbBlfnU+lwvM4kOcKQXUgvPoOAIUU/8x15ypMOsFlu0orfI7kSnw+Nprhc7FlEbLzFVzTb353\n/wmAn1zLNoQQ24Oe8BMipsj5hYgpcn4hYoqcX4iYIucXIqZs+RN+b8bQeSTgrUQFZ1TLYfltdblE\n+5RyVWpbXufyWyLiIcR2pRFsT2WiIrb4vs5dOE9t+TyXxC6tcWnRT4dl0ckRPlf7Du6nttMXeRTU\n2VJYbgKA/Fg4gCeR4sFMi9QCJNP8/EgXIqIB18LBMbUEPz+SSW4by4fnFwBqEdGdzRq/z6YHwufP\neoXLzkuz4XOgUe9d6tOdX4iYIucXIqbI+YWIKXJ+IWKKnF+ImNLX1X5LGNL58HJ6KsNXtxskpZVF\n5FpL8c2h0eKrqJksXy3NDoXHPp7g0S+5Bg9IOfn6cWqbPz9DbcMjPJBldXE52J4/+irtc/dvf4Da\n7t1/gNrGlriS8X9emQ221xJ8PkrObYtlrgXs2ReRxqsdDuK6cJGrHwODfByHJvjcM1UKAKwdodA0\nwwrCQIun8WoMhF3XSQ7HELrzCxFT5PxCxBQ5vxAxRc4vREyR8wsRU+T8QsSUvkp9qWQKo8WdQdsq\nyWMGANl2WF4ZSPDqL7kUl2tybd4vFSGVFD2cD85qPCfg7vFd1DY+wiXC55/nMuDZWR5QMzEaliNP\nz9EueOnZE9R2x133UluuxWWv8YFwDr9ag3/mdIvPYzscUwUAsDVuPEACpJrj/PyYzPIcfjuH89SW\nicgpWd3g99mlSrjiU2WFz+/OQngek9b7/Vx3fiFiipxfiJgi5xcipsj5hYgpcn4hYoqcX4iYck1S\nn5mdBrAOoAWg6e7TUe9PJJIYLIQjsHIREXpMmKtxxQ6pBJdJ8uDRVwM5bismw1LU/JG31Cf9NZbm\n+eDumAqX1gKAD3/wHmo7dXGB2trN8PjXljZon+XVeWp7/bXT1JYbH6O2kYlwpFqjxuWwjXl+Lxoe\n43Jefifv5+WwbLdncpj2aba4DNjO8H0tbPATcoxXj0OhGd4my4MIABkP97Heg/qui87/L9ydn41C\niHck+tovREy5Vud3AD81s2fN7OHrMSAhRH+41q/997v7BTObAPAzM3vV3Z+6/A3di8LDADBY5Dnb\nhRD95Zru/O5+ofv/PIAfAbgv8J5H3X3a3afz+Yhi70KIvnLVzm9mBTMbfOM1gN8D8PL1GpgQYmu5\nlq/9kwB+ZB1tIQXgL9z9r6M6JBMJjOTDUt9qjmsUzVI44q8AHgmYzkaUcFrkyRsbDb7NtWY4CWMl\nzaPRqsvc9trG69R26LZ91LZrlH+DmpkLz2N7lGc0fekkH+PaILcNX+LzeK4clg9rZZ5ssxAxj4MZ\n/pOxdPEktW0kw5JeIWIOD+ZHqG29EVGSa50n3MwP8zpwiVRYnq0Yl/oKpE/ybWh9V+387n4SwF1X\n218Isb1I6hMipsj5hYgpcn4hYoqcX4iYIucXIqb0NYEnACrOjQ3wCLFFktwzHZEwcUeK20pVnqCx\ntMaTY87PhaWcdSKvAcD4Pi6xVVa5bfbMErVl2hPUlhsMj+X2kdtpn8ExLqNVGhH1EGt8jHMvhhOQ\nJorhaD8AWI9ICDo4yOeq3OASYTkdlmcnMjyqb3p6P7UtbPBz51SFR06uDHBbJhl2w+Igl/rq1fBn\nduNS5JXozi9ETJHzCxFT5PxCxBQ5vxAxRc4vREzp62p/whIYSodXe1cTfHW+WQ/nb7MkX9lMpSNy\nAm5ErGDneP628WJYkRjYEy63BADpLM/hlyOltQCgneFjrJLgKABIebic1LkkH8cQCZwCgLrzU2Th\n/Cq1lcj8N1Z4nwmy6g0ApTa3mUfkJ1wLZ5gbmuRzODLIQ1byA3wcR3J8dT6Z5ee3e3j+201eGqzV\nCKsO7r0H9ujOL0RMkfMLEVPk/ELEFDm/EDFFzi9ETJHzCxFT+iv1JRLIDISltGKKy16YCgdhNHL8\n2jU6wHO07Urz2kkZ8Lx0w7eOB9sXTvGgpCYuUVutFiEDpvj4bYgH4oyNTAXbX15YoX0uzIeDXwAg\nV+BzvLzB52ptPSx/5iPKXS2S0loAcPr4eWrLZqIk3/ApvvAsl9HuvPUMte3ZtYvahppczmu0uQzY\nXg1LfRVwCbPaCMvfLefl5q5Ed34hYoqcX4iYIucXIqbI+YWIKXJ+IWKKnF+ImLKp1GdmjwH4fQDz\n7n5nt20MwPcAHARwGsAn3H15020lEsgVwxLWXERutHorHKlUREQ5IyIpAkB7nUtsk1NcBsw3FoPt\n58u8TFM6w8e4HiH1je47QG2lCo/cWtwIX8/LJS6HtZznzsvU+TxOFXZQ29JMOBei5cISFQC0q3w+\nmks8t2IqxyWxwaFwvsPEOpdg/+6pv6e29//Wb1LbDQd4XkDnKiBmK2HJtB4RfZpHOIdfAtdX6vsz\nAA9c0fYIgCfd/WYAT3b/FkK8i9jU+d39KQBXpml9EMDj3dePA/jYdR6XEGKLudrf/JPuPtN9PYtO\nxV4hxLuIa17wc3cH+A8NM3vYzA6b2eHSBn+MVAjRX67W+efMbAoAuv+Hi7EDcPdH3X3a3aeLBb6Y\nJoToL1fr/E8AeKj7+iEAP74+wxFC9ItepL7vAPgQgJ1mdh7AFwB8CcD3zewzAM4A+EQvOzN3JJrh\nXwh7hrhMcqkWljwyo1wayg5wyePA1Ai13XyQR8zNnAzLQ6khfg0dcC6V7Zu8jdr27NpLbZUEl4Da\nG+FD2nQuOa6u8ei8Up0n3Bwu8Dm+eX94GahS5ZJdIsc/195DfD4sEZFAtRHW2MoRiUkbZa5aL67y\n+Ug0+Tbb/PTGpfmw/DlQiJCr22F5tv02Enhu6vzu/ili+p2e9yKEeMehJ/yEiClyfiFiipxfiJgi\n5xcipsj5hYgpfU3gCTNYKny9qbR4vbiEhW2J9StDDv4/7QS/rlmdJ8ecu8i3eeoksTV5n5HBg9SW\nGstRW3ktHLUFAJkcDxFbq4QjDJMpHjWZy/LknqmI5JhDSZ4Ec2gkLJkulHgEYfUUlyMninyu6nV+\nrEsb4Xm8YYrLlINjvI7f/AJPJLq2zOd4h/FjVkuFj1lilc99k0iw7Rafw7dsv+d3CiH+SSHnFyKm\nyPmFiClyfiFiipxfiJgi5xcipvRZ6nMgGZbtRod4rH+2FpZ51iOGPzgarlkHANbkEspARMqB9937\nnmD73CqPOKs2eXLJ8jCvT1jMc0ls6RKPZjx78VywPRURCTg2wOex3ub7Srb4PCaTYckpAy7pZiI+\n88AkPzD1DR4yt14Ky7C3HOIRlYWdO6nt+Ayfj4uXZqhteJgnu2pUwzJgvRaRmDQRjvgz6z2qT3d+\nIWKKnF+ImCLnFyKmyPmFiClyfiFiSl9X+xNmKKbDK7qlJg9kmZ8N20aHeRDDSET+s50D/Jo3FhFs\nMzJ4KNh++mx4hR0AXpvjK8DpiCCMiRxf3W6V+Yr5Dg+XpxofiVhlNz6Odo4HuViNB8fMVMO20WE+\nv6kkX7W3ekSJMvC8etYK768VEfi1PMtTzJcWeJmvdJ6rN8srfH8LK2HVZP9I+FgCwFg+PL/JCFXn\nSnTnFyKmyPmFiClyfiFiipxfiJgi5xcipsj5hYgpvZTregzA7wOYd/c7u21fBPCHAN7QPT7v7j/Z\nfHcOJMN5zoopnuNsrBCWLyYmeQBGvc2lrQuLi9Q2V+d56faVw/LKsXmeA6/pEdLWAJfRUnl+XU4a\nzxlYy4fLYbUyfH5X1iICUiLKWhWmuBQ1uBze33yJzwcS4bJVAFBpczkykeJjzE+MBtvLXFlGvcql\nwx0jPPhotcpz+K2VuURYQLh8XDUiR+WJs+Ht1ao88OhKernz/xmABwLtX3P3u7v/enB8IcQ7iU2d\n392fAsAvQUKIdyXX8pv/s2Z2xMweM7PwdyshxDuWq3X+bwC4EcDdAGYAfIW90cweNrPDZnZ4vcQf\nmxRC9Jercn53n3P3lru3AXwTwH0R733U3afdfXqwGJEmRwjRV67K+c3s8hxZHwfw8vUZjhCiX/Qi\n9X0HwIcA7DSz8wC+AOBDZnY3AAdwGsAf9bIzb7fQ2AjLKIUkH8p7bgpLIVO7wiWhAODEhYvUtvAr\nLuXkdvFINU/PBduTWR5JlV0rU1vGuWyUBR9HbSk8DgDIL8wG26tVLrEZ+Dh8kEdHltf5MTt64kyw\nvZXk8ubBAretzvB8doUxHk3H0gymk1wSG97Dz6uZuQvUZiRiFQAKbX6fzabDtkSKn1elavgndOfL\neG9s6vzu/qlA87d63oMQ4h2JnvATIqbI+YWIKXJ+IWKKnF+ImCLnFyKm9DWBZ7vdwsZGOAKuFRGF\nt//grmB7coDLGok8jwI7cCuPRtuIKEGV9vDYJ8e4NLRmJWp75RSXjQYSfPzFQW7LtcMPUg0McMkx\n0eQRf4NJfn8og8tlB3eE22fW+XHOZ/jc3/VbvPzaBg+mw9nVcMRiocjLZ+3ZFz7fAODcPJeJy3U+\nkFyBz2OtEj5H2it8e+0Gmfu3IfXpzi9ETJHzCxFT5PxCxBQ5vxAxRc4vREyR8wsRU/peq6+QC0eX\nufMotnMXT4X7vLZM+zxD+gDA3vHd1LZ7P5eAatWBYHvB+DRai19fixUeqZbk6htGdvHESW7heneV\nxgLtkwOXh7zAE5pOjkZE4ZUqwfbmGv/Md/7GzdQ2NlSgtl+8eIzaKqfDEqfdxSVHb3IJs1bi8tvy\nKj8fUxFyZGmBJF2tckl3J422lNQnhNgEOb8QMUXOL0RMkfMLEVPk/ELElL6u9rdaDawthwMtcnm+\ncvzqidPB9tMnjtA+pxa4evCRP/7n1Hbz3b9BbWsr4RXs+Us8X+DQ/n3U1mzzVeW5OR6IU1sMrw4D\nQJWUa2qD16can+JjPHTHHmqrg4/x9KuvBtsbFT6OkYGIXHzO+82c4uXGioPh82DXjnHaJ9fgq+zZ\niNJg9VU+H3Or4XMHAErrYVuizvMnohaWD5pNrfYLITZBzi9ETJHzCxFT5PxCxBQ5vxAxRc4vREzp\npVzXPgB/DmASnfJcj7r7181sDMD3ABxEp2TXJ9ydRzYAaDVaWJpZCtqm9vLr0NzqfLD95Bku8dzz\n3tuo7cbbbqK2gQwfx3otXCJpJBUhDeXDwUAAkN17A7VNDHHZqBkRJHL89deD7ZUylxUPTfJAoaHB\nndR2YZZLnBdWwwFczTLPafj04Rep7fxMuAwZALx87FfUdsst4Tmu18P5GAHg/Cn+udZmj1Pb+gY/\nZpWz4fJlAFBGeK7GxkgiRABnL4Wlz3qTByxdSS93/iaAP3X3OwC8D8CfmNkdAB4B8KS73wzgye7f\nQoh3CZs6v7vPuPtz3dfrAI4B2APgQQCPd9/2OICPbdUghRDXn7f1m9/MDgK4B8DTACbd/Y3v3bPo\n/CwQQrxL6Nn5zawI4AcAPufub3q+1DuZOILPUZrZw2Z22MwOb5BHT4UQ/acn5zezNDqO/213/2G3\nec7Mprr2KQDBVTl3f9Tdp919mmXxEUL0n02d38wMwLcAHHP3r15megLAQ93XDwH48fUfnhBiq+gl\nqu8DAD4N4CUze6Hb9nkAXwLwfTP7DIAzAD6x2YZaMKy1w5FKzQ3+k+DEq+ESSa08j9wbm+Ill158\n7pfUNnPsZWqr5cL7Sye4vJLN8CmeGj1Abe+5/yPUVhjm0tzt99wRbD/+/N/TPsuXuEJ7ZoFLc+cW\neF7AdjXcL7cUlnoB4G+O8CjN5BBPaljMcEmsQJIhnjnL5byjR09T28V1fp7OzoalYACobfDxZ4vh\nEmutFM+fmCR5I816X8bb1Pnd/RcAjJh/p+c9CSHeUegJPyFiipxfiJgi5xcipsj5hYgpcn4hYkpf\nE3hm0xncuCecLHI9wRMcJmphiW1qjD9RXLrIZZfv/N//TW2z53iE2O5bwpJSshURgWc8KeUgwkku\nAaA4xD/b7ptupLaNclgWbYLP78zCUWr75WtcEivn+b2jfDEcdTa3yKWy5RWepPPgBJ+PkVxYKgOA\ncjUsVL34D1zSbWXT1Fad4eXGKnUuPaeafJuLS+FjNrzBZdb3/mb4HDh/IqLO2xXozi9ETJHzCxFT\n5PxCxBQ5vxAxRc4vREyR8wsRU/oq9aVzaUzdujtou3GUR6pdCOfvxNL6a7TP+jqXPBoDPFqqtnOC\n2i5eCrenR7kM1ayFZRwAmIuQtr73V/+T2rIVPv5cMSwt5jIsNguwFJ+r6hq3+QavC1deC0tbayVe\nZ3D3rjFqO3T7LdS2Y4gfs1++HD5HSmv81C/sH6K29DCfj8wSj45M7OS5LHKr4UjHdIR7VmphybHd\nVq0+IcQmyPmFiClyfiFiipxfiJgi5xcipvR1tb/VdKwuh0tbFcd54MO+qfBqbrlxmvZptHkJrXSa\nr7zuGitS2+Ji+FpZML763mrxlePb33uI2nZPhHMdAsALLzxPbeWlcF69lfO8tFl5uUFtG6O83Fhh\nqEBt2Wp4m2Nj/DgXd/CV6joJfgGAaoYHT1U3wrXNUuN81b5d58FHxTQfYyKcvR4AkG/xgKBhMseZ\nHP9cy0vhcmPNFj/vr0R3fiFiipxfiJgi5xcipsj5hYgpcn4hYoqcX4iYsqnUZ2b7APw5OiW4HcCj\n7v51M/sigD8E8Ea4y+fd/SdR29qo1vHM0VNB25mlsCQDAAkPB6XsjZDKqmd5Ca1Wneez2zNxK7Xt\nqoQloGSFS2VDBS7X3HsDz8U3Mckltv23hPMgAsC58yeC7WvneZmsV3/FZcAzTS57NSPkVNTDQUt1\n5xJmmadCxIuzi9S2Y473WyCxU+5csssVI4JjEvx+mYsoKTYMLi8vVcK5+lIpPr+lWngcbedy41u2\n38N7mgD+1N2fM7NBAM+a2c+6tq+5+3/peW9CiHcMvdTqmwEw0329bmbHAOzZ6oEJIbaWt/Wb38wO\nArgHwNPdps+a2REze8zMeEC+EOIdR8/Ob2ZFAD8A8Dl3XwPwDQA3ArgbnW8GXyH9Hjazw2Z2uFKN\n+FEnhOgrPTm/maXRcfxvu/sPAcDd59y95Z2Vk28CuC/U190fdfdpd5/O5/gilhCiv2zq/GZmAL4F\n4Ji7f/Wy9qnL3vZxALwEihDiHUcvq/0fAPBpAC+Z2Qvdts8D+JSZ3Y2O/HcawB9ttiFrORLrYQnu\nYpNLOYXRqWD7rmI4HyAANIpczrtw/DS1pVJckgFJg1dO8WtoI0K/ung2QqNKcrmp2eJRhAcPheXP\n8elp2qfw86ep7ezf/ZLadg3zuapthE+tocIw7dNs8mO2alz2Wk5xGXOgGZ6rhTKPLmwu8DJZw0Ve\nGiyf5TJmtcLHb9mwT1xa5jkeiyPhcRhP1fgWelnt/wXCp32kpi+EeGejJ/yEiClyfiFiipxfiJgi\n5xcipsj5hYgpfU3giUQCng8/6FMc2Um7DZBEkdkxfu0a382jm8Yjykytj/EpmcyF5ZWd4LLRyoXz\n1HaywiWqwz89Sm0Ll3gyy3/9/n8ZbL/tD26nfe75Z3dT23PHz1LbzPwZart0Ppxgsj7PJd1WmkfF\nler8uNgsj6pEISxHrq3wPtlhnpi0VluntvIiqecGYLDAS5FZPiwRVis86WchS2TAdu9RfbrzCxFT\n5PxCxBQ5vxAxRc4vREyR8wsRU+T8QsSUvkp9mWwah27aG7RdKPEaeRdJDsnFGZ5cMjfEI6wqiRFq\nwxpPJLpSDssr6RyfxkRhB7UZePKjlSz/bBfXjlHbzMZysL1U4QlNLy1w6bDEMmACOHAjl2dHCuEa\nhc++wCMZExk+j7sO8USoK8u83/JGWC5rZbmsmE3zcyCf4RGVqR28LmPC+H22kA/bikm+vVKbHM+3\nEdWnO78QMUXOL0RMkfMLEVPk/ELEFDm/EDFFzi9ETOmr1JdKpzA6GZa3yoM8rfeeLJF5RnhSxOEB\nvr1du3lUX7vMI6mcBHvtdS4bbbS5bDRhfPr3jfDkpNWD76G2yV1hibNZ4ZGH5RIf/0033Uxtv/2v\n7qS2oXw4im1xbp72ef6Fc9Q2O8dtJ4theRMAhlfCSUEbzs+PQpLLxEOjXJIu13gC0uZ61HkVnn+v\ncbk3uRKOLlzGAu1zJbrzCxFT5PxCxBQ5vxAxRc4vREyR8wsRUzZd7TezHICnAGS77/9Ld/+CmR0C\n8F0AOwA8C+DT7s6XtgE0Wg3Mrc2GbW0eJDLbDK/23zTISyetL/JglUKCr24b+EdItcP9ymWe161a\n57niZpp85TuV5opEKs+DbdrN8Kp+rRLOqQcAE2M8gGRqNz8uR58+QW2TE6eD7SMDk7TPYIqvbi9F\nnKnJdT6P+0cmwvvawYOq1iKqSS8v8Tx9rQQfZDPBj2cuE84zWGvz+RgYCqsViWTv9/Ne3lkD8GF3\nvwudctwPmNn7AHwZwNfc/SYAywA+0/NehRDbzqbO7x3eqFyY7v5zAB8G8Jfd9scBfGxLRiiE2BJ6\n+o5gZsluhd55AD8DcALAiru/EVR8HsCerRmiEGIr6Mn53b3l7ncD2AvgPgC39boDM3vYzA6b2eEN\nklhBCNF/3tZqv7uvAPg5gPcDGDH79fOpewFcIH0edfdpd58uFHgxBCFEf9nU+c1s3MxGuq/zAH4X\nwDF0LgJ/0H3bQwB+vFWDFEJcf3oJ7JkC8LiZJdG5WHzf3f/KzF4B8F0z+48AngfwrU231GwDS+Gv\n/sOjESWvzof71Ad4frzXT16ktj1TfHlig+TAA4B2IhxItDLPgykmRrmMlgQPBPEEl3lmLvIgl/Gx\nfcH2oUxELsE0D1Y5PsP3dfzoq9Q2NByWrw5MhqU3AFhZ5xJmJhveHgDcvGc/tU1/4P3B9p07ueQ4\nf5FLh//wwivUVm/wUlkboyVqy+XCeQHn5rjsXCGSdMJ6T+K3qfO7+xEA9wTaT6Lz+18I8S5ET/gJ\nEVPk/ELEFDm/EDFFzi9ETJHzCxFTzJ3LE9d9Z2aXAJzp/rkTeBsJx7YOjePNaBxv5t02jgPuPt7L\nBvvq/G/asdlhd5/elp1rHBqHxqGv/ULEFTm/EDFlO53/0W3c9+VoHG9G43gz/2THsW2/+YUQ24u+\n9gsRU7bF+c3sATN7zcxeN7NHtmMM3XGcNrOXzOwFMzvcx/0+ZmbzZvbyZW1jZvYzMzve/Z9nmNza\ncXzRzC505+QFM/toH8axz8x+bmavmNlRM/s33fa+zknEOPo6J2aWM7N/NLMXu+P4D932Q2b2dNdv\nvmdmvK5YL7h7X/8BSKKTBuwGABkALwK4o9/j6I7lNICd27DfDwK4F8DLl7X9ZwCPdF8/AuDL2zSO\nLwL4t32ejykA93ZfDwL4FYA7+j0nEePo65wAMADF7us0gKcBvA/A9wF8stv+3wD88bXsZzvu/PcB\neN3dT3on1fd3ATy4DePYNtz9KQBLVzQ/iE4iVKBPCVHJOPqOu8+4+3Pd1+voJIvZgz7PScQ4+op3\n2PKkudvh/HsAXJ4hYjuTfzqAn5rZs2b28DaN4Q0m3X2m+3oWAM82sfV81syOdH8WbPnPj8sxs4Po\n5I94Gts4J1eMA+jznPQjaW7cF/zud/d7AXwEwJ+Y2Qe3e0BA58qPzoVpO/gGgBvRqdEwA+Ar/dqx\nmRUB/ADA59x97XJbP+ckMI6+z4lfQ9LcXtkO578A4PJcUzT551bj7he6/88D+BG2NzPRnJlNAUD3\nf55Lagtx97nuidcG8E30aU7MLI2Ow33b3X/Ybe77nITGsV1z0t33206a2yvb4fzPALi5u3KZAfBJ\nAE/0exBmVjCzwTdeA/g9AC9H99pSnkAnESqwjQlR33C2Lh9HH+bEzAydHJDH3P2rl5n6OidsHP2e\nk74lze3XCuYVq5kfRWcl9QSAf7dNY7gBHaXhRQBH+zkOAN9B5+tjA53fbp9Bp+bhkwCOA/hbAGPb\nNI7/AeAlAEfQcb6pPozjfnS+0h8B8EL330f7PScR4+jrnAB4LzpJcY+gc6H595eds/8I4HUA/wtA\n9lr2oyfs8HdEAAAAMklEQVT8hIgpcV/wEyK2yPmFiClyfiFiipxfiJgi5xcipsj5hYgpcn4hYoqc\nX4iY8v8AmhtlqgSGG3AAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fb171193cc0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\nAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fb17115e4a8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# Sample random points in the latent space\n",
    "random_latent_vectors = np.random.normal(size=(10, latent_dim))\n",
    "\n",
    "# Decode them to fake images\n",
    "generated_images = generator.predict(random_latent_vectors)\n",
    "\n",
    "for i in range(generated_images.shape[0]):\n",
    "    img = image.array_to_img(generated_images[i] * 255., scale=False)\n",
    "    plt.figure()\n",
    "    plt.imshow(img)\n",
    "    \n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Froggy with some pixellated artifacts."
   ]
  }
 ],
 "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.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
