{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "Untitled0.ipynb", "version": "0.3.2", "views": {}, "default_view": {}, "provenance": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" } }, "cells": [ { "metadata": { "id": "ki6xJ70JGL66", "colab_type": "code", "colab": { "autoexec": { "startup": false, "wait_interval": 0 }, "base_uri": "https://localhost:8080/", "height": 85 }, "outputId": "ecce5145-fd89-4e18-85e4-886c76c92740", "executionInfo": { "status": "ok", "timestamp": 1523207055580, "user_tz": 420, "elapsed": 2348, "user": { "displayName": "Arun Rajendran", "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", "userId": "100710189298922321078" } } }, "cell_type": "code", "source": [ "%matplotlib inline\n", "\n", "import numpy as np\n", "import tensorflow as tf\n", "import matplotlib.pyplot as plt\n", "from tensorflow.examples.tutorials.mnist import input_data\n", "mnist = input_data.read_data_sets('MNIST_data', validation_size=0)" ], "execution_count": 1, "outputs": [ { "output_type": "stream", "text": [ "Extracting MNIST_data/train-images-idx3-ubyte.gz\n", "Extracting MNIST_data/train-labels-idx1-ubyte.gz\n", "Extracting MNIST_data/t10k-images-idx3-ubyte.gz\n", "Extracting MNIST_data/t10k-labels-idx1-ubyte.gz\n" ], "name": "stdout" } ] }, { "metadata": { "id": "_L_NeNoPGT-G", "colab_type": "code", "colab": { "autoexec": { "startup": false, "wait_interval": 0 }, "base_uri": "https://localhost:8080/", "height": 282 }, "outputId": "a52f9894-1b4d-478d-edbf-2e8d9c1b651a", "executionInfo": { "status": "ok", "timestamp": 1523207056072, "user_tz": 420, "elapsed": 414, "user": { "displayName": "Arun Rajendran", "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", "userId": "100710189298922321078" } } }, "cell_type": "code", "source": [ "img = mnist.train.images[2]\n", "plt.imshow(img.reshape((28, 28)), cmap='Greys_r')" ], "execution_count": 2, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": { "tags": [] }, "execution_count": 2 }, { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "tags": [] } } ] }, { "metadata": { "id": "97HWqo28GUUQ", "colab_type": "code", "colab": { "autoexec": { "startup": false, "wait_interval": 0 } } }, "cell_type": "code", "source": [ "# Size of the encoding layer (the hidden layer)\n", "encoding_dim = 32\n", "\n", "image_size = mnist.train.images.shape[1]\n", "\n", "inputs_ = tf.placeholder(tf.float32, (None, image_size), name='inputs')\n", "targets_ = tf.placeholder(tf.float32, (None, image_size), name='targets')\n", "\n", "# Output of hidden layer\n", "encoded = tf.layers.dense(inputs_, encoding_dim, activation=tf.nn.relu)\n", "\n", "# Output layer logits\n", "logits = tf.layers.dense(encoded, image_size, activation=None)\n", "# Sigmoid output from\n", "decoded = tf.nn.sigmoid(logits, name='output')\n", "\n", "loss = tf.nn.sigmoid_cross_entropy_with_logits(labels=targets_, logits=logits)\n", "cost = tf.reduce_mean(loss)\n", "opt = tf.train.AdamOptimizer(0.001).minimize(cost)" ], "execution_count": 0, "outputs": [] }, { "metadata": { "id": "Kh5HnUmGGUQ9", "colab_type": "code", "colab": { "autoexec": { "startup": false, "wait_interval": 0 } } }, "cell_type": "code", "source": [ "# Create the session\n", "sess = tf.Session()" ], "execution_count": 0, "outputs": [] }, { "metadata": { "id": "jX9LVgNLGUOW", "colab_type": "code", "colab": { "autoexec": { "startup": false, "wait_interval": 0 }, "base_uri": "https://localhost:8080/", "height": 357 }, "outputId": "fcbf4c12-84f2-4015-c25c-c3a31c7e974b", "executionInfo": { "status": "ok", "timestamp": 1523207666345, "user_tz": 420, "elapsed": 608040, "user": { "displayName": "Arun Rajendran", "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", "userId": "100710189298922321078" } } }, "cell_type": "code", "source": [ "epochs = 200\n", "batch_size = 200\n", "sess.run(tf.global_variables_initializer())\n", "for e in range(epochs):\n", " for ii in range(mnist.train.num_examples//batch_size):\n", " batch = mnist.train.next_batch(batch_size)\n", " feed = {inputs_: batch[0], targets_: batch[0]}\n", " batch_cost, _ = sess.run([cost, opt], feed_dict=feed)\n", " \n", " if( (e+1) % 10 == 0):\n", " print(\"Epoch: {}/{}...\".format(e+1, epochs),\n", " \"Training loss: {:.4f}\".format(batch_cost))" ], "execution_count": 5, "outputs": [ { "output_type": "stream", "text": [ "Epoch: 10/200... Training loss: 0.0953\n", "Epoch: 20/200... Training loss: 0.0939\n", "Epoch: 30/200... Training loss: 0.0936\n", "Epoch: 40/200... Training loss: 0.0921\n", "Epoch: 50/200... Training loss: 0.0926\n", "Epoch: 60/200... Training loss: 0.0936\n", "Epoch: 70/200... Training loss: 0.0938\n", "Epoch: 80/200... Training loss: 0.0937\n", "Epoch: 90/200... Training loss: 0.0912\n", "Epoch: 100/200... Training loss: 0.0936\n", "Epoch: 110/200... Training loss: 0.0882\n", "Epoch: 120/200... Training loss: 0.0924\n", "Epoch: 130/200... Training loss: 0.0890\n", "Epoch: 140/200... Training loss: 0.0912\n", "Epoch: 150/200... Training loss: 0.0904\n", "Epoch: 160/200... Training loss: 0.0918\n", "Epoch: 170/200... Training loss: 0.0905\n", "Epoch: 180/200... Training loss: 0.0916\n", "Epoch: 190/200... Training loss: 0.0898\n", "Epoch: 200/200... Training loss: 0.0900\n" ], "name": "stdout" } ] }, { "metadata": { "id": "Tm0WG51OGUKh", "colab_type": "code", "colab": { "autoexec": { "startup": false, "wait_interval": 0 }, "base_uri": "https://localhost:8080/", "height": 337 }, "outputId": "c95adccf-2d75-4123-9e51-160294cfb364", "executionInfo": { "status": "ok", "timestamp": 1523207667858, "user_tz": 420, "elapsed": 1451, "user": { "displayName": "Arun Rajendran", "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", "userId": "100710189298922321078" } } }, "cell_type": "code", "source": [ "fig, axes = plt.subplots(nrows=2, ncols=10, sharex=True, sharey=True, figsize=(20,4))\n", "in_imgs = mnist.test.images[:10]\n", "reconstructed, compressed = sess.run([decoded, encoded], feed_dict={inputs_: in_imgs})\n", "\n", "for images, row in zip([in_imgs, reconstructed], axes):\n", " for img, ax in zip(images, row):\n", " ax.imshow(img.reshape((28, 28)), cmap='Greys_r')\n", " ax.get_xaxis().set_visible(False)\n", " ax.get_yaxis().set_visible(False)\n", "\n", "fig.tight_layout(pad=0.1)" ], "execution_count": 6, "outputs": [ { "output_type": "display_data", "data": { "image/png": "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\nBx5Y9IF9iSWXXDJk2XVS9t0oG0fR42q2zjh69OiQlaHc3C+sAQAAAAAoBQvWAAAAAACUggVrAAAA\nAABKwYI1AAAAAACloHSxBZx55pkhy4q3snKHl156qUnGxML16dMnZBtssEHIlloq/rOaM2dOg+1j\njjkm7DNr1qwaRkdr9s1vfrPBdlYo8e6774bslltuabIx0bwmTJgQsl122SVk9SxYLOr6668P2QEH\nHBCy1VZbrTmG0ypkJVAbbrhhoceec8459R5O3fzkJz8J2bLLLhuyKVOmhGzkyJFNMiaa1rbbbtuo\nx9144411HglF/fSnPw3ZXXfdFbJOnTqFbJ111in0GjfddNOiD6wJZCVthx56aAuMpO05+OCDC+23\n1157hey//uu/GvWaWfFvUVkZp+9utdlxxx0L7ff666+H7O23367zaGgNshLDrMg7M3/+/JBtv/32\nIcu+4xS5Rs/W9rIy4F69eoWsei2pUqlUOnbsuNDX/DKzZ88O2bHHHhuyMpSb+4U1AAAAAAClYMEa\nAAAAAIBSsGANAAAAAEApuId1E/v2t78dssMOO6zQY4cNGxayp59+uuYx0TijR48OWXbvzUz1vf/G\njRtXjyHRRuy8884NtrN599Zbb4Vs7ty5TTYm6qNdu3aF9lt99dWbdiA1WGKJ+P++s7+r6N961VVX\nhWzw4MGLPrDFWIcOHULWuXPnkI0ZM6Y5hlM36623XqH93njjjSYeCc1l0KBBC90nu6/jueee2xTD\noYDseje7z+aQIUNCtttuu4Vs//33D1l2P87bbrut2ACrXHnllSF78sknCz026wZyjd48rrnmmpD1\n798/ZBtvvHHINt1005ANGDAgZD/4wQ8abGfn1uz4k+23zz77hOyKK64I2XPPPRcyckOHDi2032ab\nbRay7N/9zTffHLJHH3100QfGYis7j2TdYZtssknIunbtGrKse27BggWFxlK9X9HvQZmi96vOxpat\nH+69994hmzhx4qIPrBn4hTUAAAAAAKVgwRoAAAAAgFKwYA0AAAAAQClYsAYAAAAAoBSULjax3Xff\nPWRZQVVW8PHXv/61ScbEwh100EEh69u3b6HHvvbaayEbPnx4rUOiDdtyyy0bbGeFCtdff31zDYdG\nOvXUU0NWtLijzPbbb7+Q9enTJ2TZ35plhx9+eH0Gthj7+OOPQzZp0qSQrbXWWiHr3r17yKZOnVqf\n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\nWUHwD37wg5CNGjWqcQNrpfzCGgAAAACAUrBgDQAAAABAKViwBgAAAACgFCxYAwAAAABQCkoXExts\nsEHI+vTps9DHHX/88SEbN25cXcZE03n++edDtuWWW7bASKJtt922rs+XFYYULVarLph87LHHCj3u\nwQcfLLRfWzRs2LCQZaVk1UWbt99+e5ONiabzhz/8IWTHHHNMyJZbbrnmGM5CZUVWWenrHnvsEbIJ\nEyY0yZhYfGTnllqKPCmXrDQ4M23atAbb06dPb4rh0EodccQRC90nKyjPdO3aNWQrrrhiyMaPH1/o\n+SD7LnTxxReH7OSTTw7Z1VdfHbIdd9wxZNm1GLV59tlnQ5Z9ltttt91Cn2u99dYr9JrZd/BsDWL/\n/fcv9Hw0j+y8ccghhzTque67776Q/elPf2rUc7UlfmENAAAAAEApWLAGAAAAAKAULFgDAAAAAFAK\nFqwBAAAAACiFNl+62K9fv5A9+uijC33cL3/5y5Bdf/31dRkTzWvrrbcO2YUXXhiyZZZZptGvsdlm\nmzXYHjhwYKOf69577w3Z66+/Xuix1157bcheeOGFRo+F4jp27BiyoUOHFnrsyJEjG2zPnz+/LmOi\neb355psh22+//UKWlXHus88+TTKmr/KrX/0qZD/96U+bfRwsnoqWh/7rX/9q4pFQq6WXXjpkq666\naqHHfv7551+5DbXKjiHHHntsyE488cSQvfHGGyHLiu+gqEsuuSRkhx56aMi22mqrkG288cYhe/LJ\nJ+szMP4/WZFldp09atSoBttrrbVW2Cf7fjdjxoyQ3XzzzSE78sgjv3KcNK/OnTuHbOLEiSFbYoli\nv/l9//33G2zvvffejRtYG+cX1gAAAAAAlIIFawAAAAAASsGCNQAAAAAApWDBGgAAAACAUmjzpYun\nnnpqyLp06bLQx2XFdwsWLKjLmGh5J510UksPgVbms88+C9msWbNC9s4774TsjDPOaJIx0fLuvPPO\nQtmf//znkP3oRz8KWf/+/UP2zDPPNNi+9NJLwz7t2rULmaIfarHXXnuFbN68eSG76KKLmmM41OCL\nL74I2d///veQrbTSSiHLzmlQT9/85jcLZffcc0/IjjrqqCYZE23XBx98ELKsYDEr/LzgggtCNnjw\n4PoMjK/03nvvhWyzzTZrsH3ccceFfYYMGRKyI444ImTVBXyUz5577hmyrIix6Jpf9fe0uXPnNm5g\nbZxfWAMAAAAAUAoWrAEAAAAAKAUL1gAAAAAAlEKbuof1brvtFrL99tuvBUYCtDWff/55yPr169cC\nI2FxdNNNNxXKoCxef/31kP385z8P2ciRI5tjONRg/vz5ITvkkENC9oc//CFkY8aMaZIx0TZU3ws2\nu8fvQw89FLJzzz03ZFOnTg1Z1i8C9TZ+/PiQvfrqqyEbMGBAyLbYYosG288991z9BsYiueSSSwpl\nLJ7OO++8kBW9X/UNN9wQMte39eEX1gAAAAAAlIIFawAAAAAASsGCNQAAAAAApWDBGgAAAACAUmhT\npYtDhgwJ2TLLLFPosR999NFXbgMA8L8233zzlh4CTWjChAkh22mnnVpgJLRmd91111duw+Jq4MCB\nIXvrrbdCttFGGzXYVroITaNTp04ha9euXchmz54dstNPP71JxoRfWAMAAAAAUBIWrAEAAAAAKAUL\n1gAAAAAAlIIFawAAAAAASqFNlS4W9d5774Vs0003bbA9derU5hoOAAAA0ArMmDEjZN26dWuBkQCV\nSqVy5ZVXhuzUU08N2a9+9auQTZw4sUnGhF9YAwAAAABQEhasAQAAAAAoBQvWAAAAAACUggVrAAAA\nAABKoU2VLh5//PGFMgAAAACgdTvttNMKZTQvv7AGAAAAAKAULFgDAAAAAFAKFqwBAAAAACgFC9YA\nAAAAAJRC4dLFKVNmNuU4aOXMH2ph/lAL84damD/UwvyhFuYPtTB/qIX5Qy3MH+rBL6wBAAAAACgF\nC9YAAAAAAJRCuwULFrT0GAAAAAAA4KvvYf3hh7OsZtMoPXp0bmf+0FjmD7Uwf6iF+UMtzB9qYf5Q\nC/OHxjJ3qIX5Qy169Ojc7sv+m1uCAAAAAABQChasAQAAAAAoha+8Jcj/q2fPLk05DlqBKVNmful/\nM39YGPOHWpg/1ML8oRbmD7Uwf6iF+UMtzB9qYf5Qi6+aP//mF9YAAAAAAJSCBWsAAAAAAErBgjUA\nAAAAAKVgwRoAAAAAgFKwYA0AAAAAQClYsAYAAAAAoBQsWAMAAAAAUAoWrAEAAAAAKAUL1gAAAAAA\nlMJSLT0AYNG0a9euUPbFF180x3AAAAAAoG78whoAAAAAgFKwYA0AAAAAQClYsAYAAAAAoBQsWAMA\nAAAAUApKF2lTsnLCTp06heyMM84I2Z577hmy9u3bhywrO3z//fcbbE+fPj3s89JLL4Xs2WefDdmU\nKVNCNnbs2JB9/PHHhcZG21K0tDNj/rQORT/vBQsWNPFIAABaD9dYAPXjF9YAAAAAAJSCBWsAAAAA\nAErBgjUAAAAAAKVgwRoAAAAAgFJQukibsuyyy4bskEMOCdmRRx4Zsg4dOoRsiSWK/T+fPn36NNjO\nijZ22mmnkH300UchO+qoo0KNXU9xAAAgAElEQVT2+OOPh6ypC/Kyv10pX/NYcsklQ9a1a9eQDRw4\nMGTrr79+yJ544omQPf/88yGbPXt2yJTGNI+sxGfppZcO2aqrrhqy733vew22N9hgg7DP/fffH7Ix\nY8aE7N133w3Z/PnzQ0bLyeZK0XNV9u+5OvNvnnrL5mx2vdatW7eQZQXTc+bMCZnrk+aRXZ9kx5/s\nOJKdSxxvKLPs2JV9X1xhhRVClv27+PDDD0P26aefNnJ0rUf2Xi21VLFlrM8//zxkTX1cKXrNnp3n\nsu9z2d//ySefhCw793322WcLHVv2HkFZ+IU1AAAAAAClYMEaAAAAAIBSsGANAAAAAEApuIc1bcpy\nyy0Xso033jhk1fd7qlTye2UVvS9oEdn9tLL7U73yyisha4l7yGZ/e3Yvruzea+55W39dunQJWXZf\n9H79+oUsu2feyy+/XJ+B0WQ6d+4cspNOOilk3//+9xtsL7PMMmGfnXfeOWTnn39+yC6//PJFGSJN\nLLtfbDYvsuNDdp/N7D7106ZNa7A9b968sE/R+0Fm907M/obsXo9F77tY5D7c2f2M3Su3eWSfYzY/\nTzjhhJB97WtfC9nIkSNDdvXVV4csu56iuOyar0ePHiHLrqn/9a9/hWzSpEkhmzx5csiqj0nNcZ/r\nbI62b98+ZNl3iuw6uPpvmDVrVtjHdfHiKZt72XkpO+dk/6ay83L187XFuVL0OiF7n4tm2WdZ/brZ\nvcgPPPDAkB122GEh69WrV8iK3oc7O4bOmDEjZFmnw2233dZg+9prrw37TJgwIWSuiSgLv7AGAAAA\nAKAULFgDAAAAAFAKFqwBAAAAACgFC9YAAAAAAJRCqUsXszKCrAgjy4qU7lQq+U33y6Lef2tbk71X\nWVlC165dQ/bee++FLCs7vOaaa0L20ksvhay6mGXYsGFhn+pitEolL+7ICtOaQ/X7ueKKK4Z9dt11\n15BlBRC33npr/QbWBhX9952Vr82ZMydkr732Wsiy8jXHlZaTnQ832WSTkO25554hq54HRYvvdt99\n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\n", "text/plain": [ "" ] }, "metadata": { "tags": [] } } ] }, { "metadata": { "id": "DmUeRJMyGUHy", "colab_type": "code", "colab": { "autoexec": { "startup": false, "wait_interval": 0 } } }, "cell_type": "code", "source": [ "sess.close()" ], "execution_count": 0, "outputs": [] } ] }