You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
face_generation_gan/dlnd_face_generation.ipynb

829 lines
179 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Face Generation\n",
"In this project, you'll use generative adversarial networks to generate new images of faces.\n",
"### Get the Data\n",
"You'll be using two datasets in this project:\n",
"- MNIST\n",
"- CelebA\n",
"\n",
"Since the celebA dataset is complex and you're doing GANs in a project for the first time, we want you to test your neural network on MNIST before CelebA. Running the GANs on MNIST will allow you to see how well your model trains sooner.\n",
"\n",
"If you're using [FloydHub](https://www.floydhub.com/), set `data_dir` to \"/input\" and use the [FloydHub data ID](http://docs.floydhub.com/home/using_datasets/) \"R5KrjnANiKVhLWAkpXhNBe\"."
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Found mnist Data\n",
"Found celeba Data\n"
]
}
],
"source": [
"#data_dir = './data'\n",
"data_dir = '/input'\n",
"\n",
"# FloydHub - Use with data ID \"R5KrjnANiKVhLWAkpXhNBe\"\n",
"#data_dir = '/input'\n",
"\n",
"\n",
"\"\"\"\n",
"DON'T MODIFY ANYTHING IN THIS CELL\n",
"\"\"\"\n",
"import helper\n",
"\n",
"helper.download_extract('mnist', data_dir)\n",
"helper.download_extract('celeba', data_dir)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Explore the Data\n",
"### MNIST\n",
"As you're aware, the [MNIST](http://yann.lecun.com/exdb/mnist/) dataset contains images of handwritten digits. You can view the first number of examples by changing `show_n_images`. "
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f4c3581cc18>"
]
},
"execution_count": 90,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nFmBaZwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4c79e25c50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"show_n_images = 25\n",
"\n",
"\"\"\"\n",
"DON'T MODIFY ANYTHING IN THIS CELL\n",
"\"\"\"\n",
"%matplotlib inline\n",
"import os\n",
"from glob import glob\n",
"from matplotlib import pyplot\n",
"\n",
"mnist_images = helper.get_batch(glob(os.path.join(data_dir, 'mnist/*.jpg'))[:show_n_images], 28, 28, 'L')\n",
"pyplot.imshow(helper.images_square_grid(mnist_images, 'L'), cmap='gray')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### CelebA\n",
"The [CelebFaces Attributes Dataset (CelebA)](http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html) dataset contains over 200,000 celebrity images with annotations. Since you're going to be generating faces, you won't need the annotations. You can view the first number of examples by changing `show_n_images`."
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f4c35b484e0>"
]
},
"execution_count": 91,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nP7E6eb8E6wAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4c41232f28>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"show_n_images = 25\n",
"\n",
"\"\"\"\n",
"DON'T MODIFY ANYTHING IN THIS CELL\n",
"\"\"\"\n",
"mnist_images = helper.get_batch(glob(os.path.join(data_dir, 'img_align_celeba/*.jpg'))[:show_n_images], 28, 28, 'RGB')\n",
"pyplot.imshow(helper.images_square_grid(mnist_images, 'RGB'))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Preprocess the Data\n",
"Since the project's main focus is on building the GANs, we'll preprocess the data for you. The values of the MNIST and CelebA dataset will be in the range of -0.5 to 0.5 of 28x28 dimensional images. The CelebA images will be cropped to remove parts of the image that don't include a face, then resized down to 28x28.\n",
"\n",
"The MNIST images are black and white images with a single [color channel](https://en.wikipedia.org/wiki/Channel_(digital_image%29) while the CelebA images have [3 color channels (RGB color channel)](https://en.wikipedia.org/wiki/Channel_(digital_image%29#RGB_Images).\n",
"## Build the Neural Network\n",
"You'll build the components necessary to build a GANs by implementing the following functions below:\n",
"- `model_inputs`\n",
"- `discriminator`\n",
"- `generator`\n",
"- `model_loss`\n",
"- `model_opt`\n",
"- `train`\n",
"\n",
"### Check the Version of TensorFlow and Access to GPU\n",
"This will check to make sure you have the correct version of TensorFlow and access to a GPU"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"TensorFlow Version: 1.2.1\n",
"Default GPU Device: /gpu:0\n"
]
}
],
"source": [
"\"\"\"\n",
"DON'T MODIFY ANYTHING IN THIS CELL\n",
"\"\"\"\n",
"from distutils.version import LooseVersion\n",
"import warnings\n",
"import tensorflow as tf\n",
"\n",
"# Check TensorFlow Version\n",
"assert LooseVersion(tf.__version__) >= LooseVersion('1.0'), 'Please use TensorFlow version 1.0 or newer. You are using {}'.format(tf.__version__)\n",
"print('TensorFlow Version: {}'.format(tf.__version__))\n",
"\n",
"# Check for a GPU\n",
"if not tf.test.gpu_device_name():\n",
" warnings.warn('No GPU found. Please use a GPU to train your neural network.')\n",
"else:\n",
" print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Input\n",
"Implement the `model_inputs` function to create TF Placeholders for the Neural Network. It should create the following placeholders:\n",
"- Real input images placeholder with rank 4 using `image_width`, `image_height`, and `image_channels`.\n",
"- Z input placeholder with rank 2 using `z_dim`.\n",
"- Learning rate placeholder with rank 0.\n",
"\n",
"Return the placeholders in the following the tuple (tensor of real input images, tensor of z data)"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ERROR:tensorflow:==================================\n",
"Object was never used (type <class 'tensorflow.python.framework.ops.Operation'>):\n",
"<tf.Operation 'assert_rank_2/Assert/Assert' type=Assert>\n",
"If you want to mark it as used call its \"mark_used()\" method.\n",
"It was originally created here:\n",
"['File \"/usr/local/lib/python3.5/runpy.py\", line 193, in _run_module_as_main\\n \"__main__\", mod_spec)', 'File \"/usr/local/lib/python3.5/runpy.py\", line 85, in _run_code\\n exec(code, run_globals)', 'File \"/usr/local/lib/python3.5/site-packages/ipykernel_launcher.py\", line 16, in <module>\\n app.launch_new_instance()', 'File \"/usr/local/lib/python3.5/site-packages/traitlets/config/application.py\", line 658, in launch_instance\\n app.start()', 'File \"/usr/local/lib/python3.5/site-packages/ipykernel/kernelapp.py\", line 477, in start\\n ioloop.IOLoop.instance().start()', 'File \"/usr/local/lib/python3.5/site-packages/zmq/eventloop/ioloop.py\", line 177, in start\\n super(ZMQIOLoop, self).start()', 'File \"/usr/local/lib/python3.5/site-packages/tornado/ioloop.py\", line 888, in start\\n handler_func(fd_obj, events)', 'File \"/usr/local/lib/python3.5/site-packages/tornado/stack_context.py\", line 277, in null_wrapper\\n return fn(*args, **kwargs)', 'File \"/usr/local/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py\", line 440, in _handle_events\\n self._handle_recv()', 'File \"/usr/local/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py\", line 472, in _handle_recv\\n self._run_callback(callback, msg)', 'File \"/usr/local/lib/python3.5/site-packages/zmq/eventloop/zmqstream.py\", line 414, in _run_callback\\n callback(*args, **kwargs)', 'File \"/usr/local/lib/python3.5/site-packages/tornado/stack_context.py\", line 277, in null_wrapper\\n return fn(*args, **kwargs)', 'File \"/usr/local/lib/python3.5/site-packages/ipykernel/kernelbase.py\", line 283, in dispatcher\\n return self.dispatch_shell(stream, msg)', 'File \"/usr/local/lib/python3.5/site-packages/ipykernel/kernelbase.py\", line 235, in dispatch_shell\\n handler(stream, idents, msg)', 'File \"/usr/local/lib/python3.5/site-packages/ipykernel/kernelbase.py\", line 399, in execute_request\\n user_expressions, allow_stdin)', 'File \"/usr/local/lib/python3.5/site-packages/ipykernel/ipkernel.py\", line 196, in do_execute\\n res = shell.run_cell(code, store_history=store_history, silent=silent)', 'File \"/usr/local/lib/python3.5/site-packages/ipykernel/zmqshell.py\", line 533, in run_cell\\n return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)', 'File \"/usr/local/lib/python3.5/site-packages/IPython/core/interactiveshell.py\", line 2698, in run_cell\\n interactivity=interactivity, compiler=compiler, result=result)', 'File \"/usr/local/lib/python3.5/site-packages/IPython/core/interactiveshell.py\", line 2808, in run_ast_nodes\\n if self.run_code(code, result):', 'File \"/usr/local/lib/python3.5/site-packages/IPython/core/interactiveshell.py\", line 2862, in run_code\\n exec(code_obj, self.user_global_ns, self.user_ns)', 'File \"<ipython-input-93-60e8f0e9d266>\", line 22, in <module>\\n tests.test_model_inputs(model_inputs)', 'File \"/output/problem_unittests.py\", line 12, in func_wrapper\\n result = func(*args)', 'File \"/output/problem_unittests.py\", line 68, in test_model_inputs\\n _check_input(learn_rate, [], \\'Learning Rate\\')', 'File \"/output/problem_unittests.py\", line 34, in _check_input\\n _assert_tensor_shape(tensor, shape, \\'Real Input\\')', 'File \"/output/problem_unittests.py\", line 20, in _assert_tensor_shape\\n assert tf.assert_rank(tensor, len(shape), message=\\'{} has wrong rank\\'.format(display_name))', 'File \"/usr/local/lib/python3.5/site-packages/tensorflow/python/ops/check_ops.py\", line 617, in assert_rank\\n dynamic_condition, data, summarize)', 'File \"/usr/local/lib/python3.5/site-packages/tensorflow/python/ops/check_ops.py\", line 571, in _assert_rank_condition\\n return control_flow_ops.Assert(condition, data, summarize=summarize)', 'File \"/usr/local/lib/python3.5/site-packages/tensorflow/python/util/tf_should_use.py\", line 170, in wrapped\\n return _add_should_use_warning(fn(*args, **kwargs))', 'File \"/usr/local/lib/python3.5/site-packages/tensorflow/python/util/tf_should_use.py\", line 139, in _add_should_use_warning\\n wrapped = TFShouldUseWarningWrapper(x)', 'File \"/usr/local/lib/python3.5/site-packages/tensorflow/python/util/tf_should_use.py\", line 96, in __init__\\n stack = [s.strip() for s in traceback.format_stack()]']\n",
"==================================\n",
"Tests Passed\n"
]
}
],
"source": [
"import problem_unittests as tests\n",
"\n",
"def model_inputs(image_width, image_height, image_channels, z_dim):\n",
" \"\"\"\n",
" Create the model inputs\n",
" :param image_width: The input image width\n",
" :param image_height: The input image height\n",
" :param image_channels: The number of image channels\n",
" :param z_dim: The dimension of Z\n",
" :return: Tuple of (tensor of real input images, tensor of z data, learning rate)\n",
" \"\"\"\n",
" inputs_real = tf.placeholder(tf.float32, (None, image_width, image_height, image_channels), name='inputs_real')\n",
" inputs_z = tf.placeholder(tf.float32, (None, z_dim), name='inputs_z')\n",
" learn_r = tf.placeholder(tf.float32, name='lr')\n",
"\n",
" return inputs_real, inputs_z, learn_r\n",
"\n",
"\n",
"\"\"\"\n",
"DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE\n",
"\"\"\"\n",
"tests.test_model_inputs(model_inputs)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Hyperparameters"
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"alpha = 0.2 # for leaky relu\n",
"print_every = 10\n",
"show_every = 100 #change to 100"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Discriminator\n",
"Implement `discriminator` to create a discriminator neural network that discriminates on `images`. This function should be able to reuse the variables in the neural network. Use [`tf.variable_scope`](https://www.tensorflow.org/api_docs/python/tf/variable_scope) with a scope name of \"discriminator\" to allow the variables to be reused. The function should return a tuple of (tensor output of the discriminator, tensor logits of the discriminator)."
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tests Passed\n"
]
}
],
"source": [
"def discriminator(images, reuse=False):\n",
" \"\"\"\n",
" Create the discriminator network\n",
" :param images: Tensor of input image(s)\n",
" :param reuse: Boolean if the weights should be reused\n",
" :return: Tuple of (tensor output of the discriminator, tensor logits of the discriminator)\n",
" \"\"\"\n",
" with tf.variable_scope('discriminator', reuse=reuse):\n",
" \n",
" # Input layer is 28x28x3\n",
" x1 = tf.layers.conv2d(images, 32, 5, strides=1, padding='valid')\n",
" relu1 = tf.maximum(alpha * x1, x1)\n",
" #print(relu1)\n",
" # 24x24x32\n",
" \n",
" x2 = tf.layers.conv2d(relu1, 64, 7, strides=1, padding='valid')\n",
" bn2 = tf.layers.batch_normalization(x2, training=True)\n",
" relu2 = tf.maximum(alpha * bn2, bn2)\n",
" #print(relu2)\n",
" # 18x18x64\n",
" \n",
" x3 = tf.layers.conv2d(relu2, 128, 7, strides=1, padding='valid')\n",
" bn3 = tf.layers.batch_normalization(x3, training=True)\n",
" relu3 = tf.maximum(alpha * bn3, bn3)\n",
" #print(relu3)\n",
" # 12x12x128\n",
" \n",
" x4 = tf.layers.conv2d(relu3, 256, 5, strides=2, padding='valid')\n",
" bn4 = tf.layers.batch_normalization(x4, training=True)\n",
" relu4 = tf.maximum(alpha * bn4, bn4)\n",
" #print(relu4)\n",
" # 4x4x256\n",
"\n",
" # Flatten it\n",
" flat = tf.reshape(relu4, (-1, 4*4*256))\n",
" logits = tf.layers.dense(flat, 1)\n",
" out = tf.sigmoid(logits)\n",
" \n",
" \n",
"\n",
" return out, logits\n",
"\n",
"\n",
"\"\"\"\n",
"DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE\n",
"\"\"\"\n",
"tests.test_discriminator(discriminator, tf)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Generator\n",
"Implement `generator` to generate an image using `z`. This function should be able to reuse the variables in the neural network. Use [`tf.variable_scope`](https://www.tensorflow.org/api_docs/python/tf/variable_scope) with a scope name of \"generator\" to allow the variables to be reused. The function should return the generated 28 x 28 x `out_channel_dim` images."
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tests Passed\n"
]
}
],
"source": [
"def generator(z, out_channel_dim, is_train=True):\n",
" \"\"\"\n",
" Create the generator network\n",
" :param z: Input z\n",
" :param out_channel_dim: The number of channels in the output image\n",
" :param is_train: Boolean if generator is being used for training\n",
" :return: The tensor output of the generator\n",
" \"\"\"\n",
" \n",
" with tf.variable_scope('generator', reuse=not is_train):\n",
" \n",
" # First fully connected layer\n",
" x1 = tf.layers.dense(z, 4*4*512)\n",
" \n",
" # Reshape it to start the convolutional stack\n",
" x1 = tf.reshape(x1, (-1, 4, 4, 512))\n",
" x1 = tf.layers.batch_normalization(x1, training=is_train)\n",
" x1 = tf.maximum(alpha * x1, x1)\n",
" #print(x1)\n",
" # 4x4x512 now\n",
" \n",
" x2 = tf.layers.conv2d_transpose(x1, 256, 5, strides=2, padding='same')\n",
" x2 = tf.layers.batch_normalization(x2, training=is_train)\n",
" x2 = tf.maximum(alpha * x2, x2)\n",
" #print(x2)\n",
" # 8x8x256 now\n",
" \n",
" x3 = tf.layers.conv2d_transpose(x2, 128, 5, strides=2, padding='same')\n",
" x3 = tf.layers.batch_normalization(x3, training=is_train)\n",
" x3 = tf.maximum(alpha * x3, x3)\n",
" #print(x3)\n",
" # 16x16x128 now\n",
" \n",
" x4 = tf.layers.conv2d_transpose(x2, 64, 13, strides=1, padding='valid')\n",
" x4 = tf.layers.batch_normalization(x4, training=is_train)\n",
" x4 = tf.maximum(alpha * x4, x4)\n",
" #print(x4)\n",
" # 20x20x64 now\n",
" \n",
" # Output layer\n",
" logits = tf.layers.conv2d_transpose(x4, out_channel_dim, 9, strides=1, padding='valid')\n",
" #print(logits)\n",
" # 28x28x(channels) now\n",
" \n",
" out = tf.tanh(logits)\n",
" \n",
" return out\n",
"\n",
"\n",
"\"\"\"\n",
"DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE\n",
"\"\"\"\n",
"tests.test_generator(generator, tf)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Loss\n",
"Implement `model_loss` to build the GANs for training and calculate the loss. The function should return a tuple of (discriminator loss, generator loss). Use the following functions you implemented:\n",
"- `discriminator(images, reuse=False)`\n",
"- `generator(z, out_channel_dim, is_train=True)`"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tests Passed\n"
]
}
],
"source": [
"def model_loss(input_real, input_z, out_channel_dim):\n",
" \"\"\"\n",
" Get the loss for the discriminator and generator\n",
" :param input_real: Images from the real dataset\n",
" :param input_z: Z input\n",
" :param out_channel_dim: The number of channels in the output image\n",
" :return: A tuple of (discriminator loss, generator loss)\n",
" \"\"\"\n",
" g_model = generator(input_z, out_channel_dim, True)\n",
" d_model_real, d_logits_real = discriminator(input_real)\n",
" d_model_fake, d_logits_fake = discriminator(g_model, reuse=True)\n",
"\n",
" d_loss_real = tf.reduce_mean(\n",
" tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_real, labels=tf.ones_like(d_model_real)))\n",
" d_loss_fake = tf.reduce_mean(\n",
" tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.zeros_like(d_model_fake)))\n",
" g_loss = tf.reduce_mean(\n",
" tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.ones_like(d_model_fake)))\n",
"\n",
" d_loss = d_loss_real + d_loss_fake\n",
" \n",
" return d_loss, g_loss\n",
"\n",
"\n",
"\"\"\"\n",
"DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE\n",
"\"\"\"\n",
"tests.test_model_loss(model_loss)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Optimization\n",
"Implement `model_opt` to create the optimization operations for the GANs. Use [`tf.trainable_variables`](https://www.tensorflow.org/api_docs/python/tf/trainable_variables) to get all the trainable variables. Filter the variables with names that are in the discriminator and generator scope names. The function should return a tuple of (discriminator training operation, generator training operation)."
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tests Passed\n"
]
}
],
"source": [
"def model_opt(d_loss, g_loss, learning_rate, beta1):\n",
" \"\"\"\n",
" Get optimization operations\n",
" :param d_loss: Discriminator loss Tensor\n",
" :param g_loss: Generator loss Tensor\n",
" :param learning_rate: Learning Rate Placeholder\n",
" :param beta1: The exponential decay rate for the 1st moment in the optimizer\n",
" :return: A tuple of (discriminator training operation, generator training operation)\n",
" \"\"\"\n",
" \n",
" # Get weights and bias to update\n",
" t_vars = tf.trainable_variables()\n",
" d_vars = [var for var in t_vars if var.name.startswith('discriminator')]\n",
" g_vars = [var for var in t_vars if var.name.startswith('generator')]\n",
"\n",
" # Optimize\n",
" with tf.control_dependencies(tf.get_collection(tf.GraphKeys.UPDATE_OPS)):\n",
" d_train_opt = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(d_loss, var_list=d_vars)\n",
" g_train_opt = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(g_loss, var_list=g_vars)\n",
"\n",
" \n",
" return d_train_opt, g_train_opt\n",
"\n",
"\n",
"\"\"\"\n",
"DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE\n",
"\"\"\"\n",
"tests.test_model_opt(model_opt, tf)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Neural Network Training\n",
"### Show Output\n",
"Use this function to show the current output of the generator during training. It will help you determine how well the GANs is training."
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"\"\"\"\n",
"DON'T MODIFY ANYTHING IN THIS CELL\n",
"\"\"\"\n",
"import numpy as np\n",
"\n",
"def show_generator_output(sess, n_images, input_z, out_channel_dim, image_mode):\n",
" \"\"\"\n",
" Show example output for the generator\n",
" :param sess: TensorFlow session\n",
" :param n_images: Number of Images to display\n",
" :param input_z: Input Z Tensor\n",
" :param out_channel_dim: The number of channels in the output image\n",
" :param image_mode: The mode to use for images (\"RGB\" or \"L\")\n",
" \"\"\"\n",
" cmap = None if image_mode == 'RGB' else 'gray'\n",
" z_dim = input_z.get_shape().as_list()[-1]\n",
" example_z = np.random.uniform(-1, 1, size=[n_images, z_dim])\n",
"\n",
" samples = sess.run(\n",
" generator(input_z, out_channel_dim, False),\n",
" feed_dict={input_z: example_z})\n",
"\n",
" images_grid = helper.images_square_grid(samples, image_mode)\n",
" pyplot.imshow(images_grid, cmap=cmap)\n",
" pyplot.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Train\n",
"Implement `train` to build and train the GANs. Use the following functions you implemented:\n",
"- `model_inputs(image_width, image_height, image_channels, z_dim)`\n",
"- `model_loss(input_real, input_z, out_channel_dim)`\n",
"- `model_opt(d_loss, g_loss, learning_rate, beta1)`\n",
"\n",
"Use the `show_generator_output` to show `generator` output while you train. Running `show_generator_output` for every batch will drastically increase training time and increase the size of the notebook. It's recommended to print the `generator` output every 100 batches."
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from IPython.core.debugger import Tracer\n",
"\n",
"def train(epoch_count, batch_size, z_dim, learning_rate, beta1, get_batches, data_shape, data_image_mode):\n",
" \"\"\"\n",
" Train the GAN\n",
" :param epoch_count: Number of epochs\n",
" :param batch_size: Batch Size\n",
" :param z_dim: Z dimension\n",
" :param learning_rate: Learning Rate\n",
" :param beta1: The exponential decay rate for the 1st moment in the optimizer\n",
" :param get_batches: Function to get batches\n",
" :param data_shape: Shape of the data\n",
" :param data_image_mode: The image mode to use for images (\"RGB\" or \"L\")\n",
" \"\"\"\n",
" \n",
" # create input placeholders\n",
" #print(data_shape)\n",
" image_shape = data_shape[1:]\n",
" #print(image_shape)\n",
" out_channel_dim = image_shape[-1]\n",
" #print(out_channel_dim)\n",
" \n",
" inputs_real, inputs_z, lr_rate = model_inputs(*image_shape, z_dim)\n",
" #print(inputs_real)\n",
" d_loss, g_loss = model_loss(inputs_real, inputs_z, out_channel_dim)\n",
" d_train_opt, g_train_opt = model_opt(d_loss, g_loss, lr_rate, beta1)\n",
" #print(inputs_real)\n",
" \n",
" #t_vars = tf.trainable_variables()\n",
" #g_vars = [var for var in t_vars if var.name.startswith('generator')]\n",
" #saver = tf.train.Saver(var_list=g_vars)\n",
" \n",
" def scale(x, target_range=(-1,1)):\n",
" min, max = target_range\n",
" \n",
" # One liner, but too expensive \n",
" #x = (x - x.min()) * (max - min) / (x.max() - x.min()) + min\n",
" \n",
" # First scale to [0,1]\n",
" x = ((x - x.min())/(x.max() - x.min()))\n",
" \n",
" # Then scale to target_range\n",
" min, max = target_range\n",
" x = x * (max - min) + min\n",
" return x\n",
" \n",
" \n",
" steps = 0\n",
" with tf.Session() as sess:\n",
" sess.run(tf.global_variables_initializer())\n",
" for epoch_i in range(epoch_count):\n",
" for batch_images in get_batches(batch_size):\n",
" steps += 1\n",
" #print(\"Step {} ...\".format(steps))\n",
" \n",
" #1 Scale real images to [-1,1] range since that is also the generator output scale\n",
" batch_images = scale(batch_images, target_range=(-1,1))\n",
" \n",
" \n",
" #3 Sample random noise for generator\n",
" batch_z = np.random.uniform(-1,1, size=(batch_size, z_dim))\n",
" \n",
" \n",
" #3 Run optimizers\n",
" #print(batch_images.shape)\n",
" \n",
" \n",
" # Optimize discriminator\n",
" _ = sess.run(d_train_opt, feed_dict={inputs_real: batch_images,\n",
" inputs_z: batch_z,\n",
" lr_rate: learning_rate})\n",
" \n",
" \n",
" \n",
" \n",
" # Optimize generator\n",
" _ = sess.run(g_train_opt, feed_dict={inputs_z: batch_z,\n",
" inputs_real: batch_images,\n",
" lr_rate: learning_rate})\n",
" \n",
" \n",
" #Tracer()() #this one triggers the debugger\n",
" if steps % print_every == 0:\n",
" \n",
" d_train_loss = d_loss.eval({inputs_real: batch_images,\n",
" inputs_z: batch_z,\n",
" lr_rate: learning_rate})\n",
" \n",
" # Optimize generator\n",
" g_train_loss = g_loss.eval({inputs_z: batch_z,\n",
" inputs_real: batch_images,\n",
" lr_rate: learning_rate})\n",
" \n",
" #Tracer()() #this one triggers the debugger\n",
" print(\"Epoch {}/{}-Step {}...\".format(epoch_i+1, epoch_count,steps),\n",
" \"Discriminator Loss: {:.4f}...\".format(d_train_loss),\n",
" \"Generator Loss: {:.4f}\".format(g_train_loss))\n",
" \n",
" if steps % show_every == 0:\n",
" show_generator_output(sess, 10, inputs_z, out_channel_dim, data_image_mode)\n",
" \n",
" \n",
" \n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### MNIST\n",
"Test your GANs architecture on MNIST. After 2 epochs, the GANs should be able to generate images that look like handwritten digits. Make sure the loss of the generator is lower than the loss of the discriminator or close to 0."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tensor(\"inputs_real:0\", shape=(?, 28, 28, 1), dtype=float32)\n",
"Epoch 1/2-Step 10... Discriminator Loss: 0.4624... Generator Loss: 2.0014\n",
"Epoch 1/2-Step 20... Discriminator Loss: 0.1115... Generator Loss: 4.4609\n",
"Epoch 1/2-Step 30... Discriminator Loss: 0.3358... Generator Loss: 1.4702\n",
"Epoch 1/2-Step 40... Discriminator Loss: 0.1045... Generator Loss: 4.8826\n",
"Epoch 1/2-Step 50... Discriminator Loss: 0.2907... Generator Loss: 2.7310\n",
"Epoch 1/2-Step 60... Discriminator Loss: 0.2245... Generator Loss: 3.3256\n",
"Epoch 1/2-Step 70... Discriminator Loss: 0.0959... Generator Loss: 4.9314\n",
"Epoch 1/2-Step 80... Discriminator Loss: 0.0202... Generator Loss: 4.7981\n",
"Epoch 1/2-Step 90... Discriminator Loss: 0.0627... Generator Loss: 3.5547\n",
"Epoch 1/2-Step 100... Discriminator Loss: 0.4442... Generator Loss: 1.4499\n"
]
},
{
"data": {
"image/png": "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\nz1/AoyFtZKZFlsVn63sm7ziKp/T6NOOgWGYbpUQbfT4E7jupP7HdZD22GwPO3LfIRFMSkWQX20yS\ntm/fvur85Bm51ixAbcRvaFhCtB9+Q8MSYqFUv5TSUUvTJrosmtaQlnOt13SG1M3U+P777+/KSKks\nNJHOWdghXf6pn/qp7nj37t2ryr74xS9KmhR4PBVIWWx4/ZQBhgIm25va4O/2nWNamTL5kLZTXDJd\npG+ApwKkn7zm2972NknSQw891JVdeumlkqTrr7++KyMlNhVN+QBpf9rQFJ4CG6+ZznHd2Z98Dm3l\ndrOM00n3F7b7scceW3Vvws/3ggsu6Mps15/92Z/tym6++ebueMeOHZImp5MpOxCnhC6nLd2XUx+a\nhTbiNzQsIdadV3892Lx5c73iiiskjQUrLgNRHDHmDZlMoYrT5Ybf0BxVOTJ69OBI7evwDWwRhqPR\nKaec0h37bcylI4t/FGh4/MQTK2kLKXraRsk+0mwb9Yl7s3LlkVElT0W213bj92gjL2dx9PZox+VU\njlguT2Lkk08+2ZVxadUjNW3ktif79OUVTGHGqQ/xfNuQo7frSzEyLetSyPN9TjppnMqSjDctQ5sF\n+tpXX3219u7dO6j0DY74pZQ/KaXsK6XcibItpZRPl1LuH/2fw4kaGhoOS8xD9f+3pLdOlb1X0nW1\n1jMlXTf6u6GhYYNgUNyrtX6hlHLqVPHbJF02Ov6QpM9J+s2ha23atKkToizkcd3blJgUL20o8OCD\nD3ZlFoIo7pHqex01ZZLhlCGJPaeffnpXZoGHZaZ2p512WldGYcaUjNMI36fPC8/tpYjoc/o2WjDd\nYxtNg0m777jjjlX3pLiX0lrTRqbtpNPnn3++JOmBBx7oynbu3Nkd20akr9PtkvLGKolis4x9x6An\nqKckFEVtN66vc2pz3333SZp8Pp5q0b5pqsBnktrN6Zv7EetxxhlnSJq0BacC7pek//4uy+bBesW9\nrbVWT7CelrR11pcbGhoOL+y3ql9XhoRehZA76fBN1tDQcOgwl6o/ovqfrLWeP/r7XkmX1VqfKqVs\nl/S5WuvZQ9ehqp/Ua9Me0ii+LJJS7bK+OPcUWGIaRxrM4/R5WntOKaROPfXU7jiptJ7OkKaS6lu1\npmLt9Xe6qCYbDaUfS/vb0W5p16GUFiy5nval3iLNNjwVIG2na6rPoXrterK/JBuROrtuye27L7WW\n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\nTxtdEhSkTDE5XWFgidfAk4jVt5122ukl7RaUXJ2T4Mcyts0+FVyv9vSCduMUaZaNWB8+c7eddNwB\nXEN9KNloqA/RbkkUNfp2ePLUhe22PVIfksa+Jpxq0a5rQRvxGxqWEAsX9zz6WeChZ5LFGC5xpD3m\nKNb4OhSpOFJYrEk7taQcdNKYhTD00t53HHX9tu3bB89I2x6TBaTlLwo8bg/f7hwt/V2W2SOPdaOX\n5HR4tDQexVhfttcjJz/3ttIMKiKLsyCb9sEjeE3bgzYyWJauyaUuj5D0yvQxvQ/5uUN52YfcL1lH\njt5mXGQRPqZXINmIj7l0575D+6Q03uwvPmcW60hoI35DwxKi/fAbGpYQc1H9UsqvSvr3Wsmke4ek\nd0naLulqrWTm+YqkX6y1fr/3IpoM0klJDQ2KS4y/NtXZtWvXuAGj6zEwhOKHz6dg4hwApFkMpDF1\nJrVL66T+HrPlkH6aQqbknyyjiDhtH36XZZy6uI2srz0iOfVg7gOLRiyzjWhzrpXbK47U2PdkG0hV\nbSOur7uM16E9TOfZXl+T90k2SiItk6G6jJ6PrK/bzmmTdzXic2YyVNuNXqi2L59T2smIUzpPM9h/\nOVVze2m36Qw882JwxC+lnCjpP0l6fa31fElHaCW//u9K+v1a6xmSvi7p3Wu6c0NDwyHDvFT/SEkv\nK6UcKekoSU9JulzSn48+bzvpNDRsIAzyg1rrE6WU/ynpMUnflfS3WqH236i1mlvukXRizyU6lFJW\nBW2QriXaT8plqk912ko0k09S2XQsNdd87SZJGnbxxRd3xy4nbbTqT+psmkZlnNTM90xrwqR9Q0Et\nic7xmlayOUXyagaVZtrNqjQTY/q7jFWnQu92ppwDaaNMaUxbuRJjGya/Al6ftk5Kf4pLT5SXa+Hu\nL5z6cYrk6R+fvacprC93T3LbueuN+xCfI1eOXHfWzdMqnpNWO2j/tIo0D+ah+pu1sk/eTkknSHq5\npLfOewPupMPO0dDQcOgwjyJwpaSHa63PSFIp5WOS3izpmFLKkaNRf4ekJ9LJ3Eln27Zt1W+tJNak\nsM8Uysgyv1n7tufyy4ZvcK+7UljhNs4epdKOMAz79DUpDqVdWxKrScIV28g3uUcAfo828H1ot5QS\nOr14OaL7WTAbDtfFLZKxzPagIMVglWQjH/clvExipm3QF0qdRvy0JbZH/OT1N31s2G4ciSnkue0U\nEc2OKBonG6U29O2ylMJ/fZx8I2Zhnjn+Y5IuLaUcVVbufIWkuyV9VtJPj77TdtJpaNhAGPzh11pv\n0IqId7NWlvI2aWUE/01Jv1ZKeUArS3ofPIj1bGhoOICYdyed35L0W1PFD0l6w1puVkpZRf2SeJGo\nr5STMHrdnBSb5/j6KTNJipPn+byOj1MMOClc2hY50XIibfiZAkJ4nSRipaAW1o3ilM8fmpqkgByC\nol2qh59Z2vo6BbqwHsn+ff4P7EfT9eX3XB9Ocbgu7ulfEmT7gpdsI/qFGBTv0sattJW/y++lbFOp\nD6016Wbz3GtoWEIcsvTaftPxDZ4CDDjiWJDhOSnohUjLHfPm6RvaajrVcShc0/Xlm34o/LdPBJu+\nD0d024j35jJbYlepPfPaoA9pa3PboC9kNWUpSrv4JE+4obqZ4SSGJ02O/qluqWyWjdaSC3KIDRqJ\nwczbfqON+A0NS4j2w29oWEIsdNPMUsozkr4t6atD391AOE6tPYcrXkhtkeZrzym11tUq4xQW+sOX\npFLKrlrr6xd604OI1p7DFy+ktkgHtj2N6jc0LCHaD7+hYQlxKH74HzgE9zyYaO05fPFCaot0ANuz\n8Dl+Q0PDoUej+g0NS4iF/vBLKW8tpdxbSnmglPLeRd57f1FKOamU8tlSyt2llLtKKe8ZlW8ppXy6\nlHL/6P/17XBwiFBKOaKUcksp5ZOjv3eWUm4YPaNrSimzd/44jFBKOaaU8uellHtKKbtLKW/ayM+n\nlPKro752Zynlz0opLz1Qz2dhP/xSyhGS/pekH5N0rqS3l1LOXdT9DwCek/TrtdZzJV0q6ZdH9X+v\npOtqrWdKum7090bCeyTtxt8bOZfiH0r6VK31HEkXaqVdG/L5HPRcl7XWhfyT9CZJf4O/3yfpfYu6\n/0Foz19KukrSvZK2j8q2S7r3UNdtDW3YoZUfw+WSPimpaMVB5Mj0zA7nf5KOlvSwRroVyjfk89FK\nKrvHJW3RSkzNJyX9qwP1fBZJ9d0QY648fYcjSimnSrpY0g2SttZanaP6aUlbe047HPEHkn5DkqND\njtU6cikeJtgp6RlJfzqauvxxKeXl2qDPp9b6hCTnunxK0rNaZ67LhCburRGllFdI+gtJv1Jr/SY/\nqyuv4Q2xTFJK+QlJ+2qtXxn88sbAkZIukfRHtdaLteIaPkHrN9jz2a9cl0NY5A//CUkn4e/ePH2H\nK0opL9LKj/4jtdaPjYr3llK2jz7fLmlf3/mHGd4s6SdLKY9oZWOUy7UyRz5mlEZd2ljPaI+kPXUl\nY8XQR7UAAAENSURBVJS0kjXqEm3c59Pluqy1/kDSRK7L0XfW/XwW+cO/SdKZI1XyxVoRKj6xwPvv\nF0b5Bj8oaXet9ffw0Se0knNQ2kC5B2ut76u17qi1nqqVZ/F3tdaf1wbNpVhrfVrS46UU5wZ3bsgN\n+Xx0sHNdLliw+HFJ90l6UNJ/OdQCyhrr/qNaoYm3S7p19O/HtTIvvk7S/ZI+I2nLoa7rOtp2maRP\njo5Pk3SjpAckfVTSSw51/dbQjosk7Ro9o/8nafNGfj6SflvSPZLulPRhSS85UM+nee41NCwhmrjX\n0LCEaD/8hoYlRPvhNzQsIdoPv6FhCdF++A0NS4j2w29oWEK0H35DwxKi/fAbGpYQ/x8WlUJ/XdFq\neQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f4c26f7cf60>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"batch_size = 128\n",
"z_dim = 100\n",
"learning_rate = 0.0002\n",
"beta1 = 0.5\n",
"\n",
"\n",
"\"\"\"\n",
"DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE\n",
"\"\"\"\n",
"epochs = 2\n",
"\n",
"mnist_dataset = helper.Dataset('mnist', glob(os.path.join(data_dir, 'mnist/*.jpg')))\n",
"with tf.Graph().as_default():\n",
" train(epochs, batch_size, z_dim, learning_rate, beta1, mnist_dataset.get_batches,\n",
" mnist_dataset.shape, mnist_dataset.image_mode)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### CelebA\n",
"Run your GANs on CelebA. It will take around 20 minutes on the average GPU to run one epoch. You can run the whole epoch or stop when it starts to generate realistic faces."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true,
"scrolled": true
},
"outputs": [],
"source": [
"batch_size = None\n",
"z_dim = None\n",
"learning_rate = None\n",
"beta1 = None\n",
"\n",
"\n",
"\"\"\"\n",
"DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE\n",
"\"\"\"\n",
"epochs = 1\n",
"\n",
"celeba_dataset = helper.Dataset('celeba', glob(os.path.join(data_dir, 'img_align_celeba/*.jpg')))\n",
"with tf.Graph().as_default():\n",
" train(epochs, batch_size, z_dim, learning_rate, beta1, celeba_dataset.get_batches,\n",
" celeba_dataset.shape, celeba_dataset.image_mode)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Submitting This Project\n",
"When submitting this project, make sure to run all the cells before saving the notebook. Save the notebook file as \"dlnd_face_generation.ipynb\" and save it as a HTML file under \"File\" -> \"Download as\". Include the \"helper.py\" and \"problem_unittests.py\" files in your submission."
]
}
],
"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.1"
}
},
"nbformat": 4,
"nbformat_minor": 1
}