Skip to content

Instantly share code, notes, and snippets.

@yufengg
Created November 3, 2017 15:08
Show Gist options
  • Save yufengg/2b2fd4b81b72f0f9c7b710fa87077145 to your computer and use it in GitHub Desktop.
Save yufengg/2b2fd4b81b72f0f9c7b710fa87077145 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Copyright 2017 Google Inc. All Rights Reserved.\n",
"\n",
"Licensed under the Apache License, Version 2.0 (the \"License\");\n",
"you may not use this file except in compliance with the License.\n",
"You may obtain a copy of the License at\n",
"\n",
" http://www.apache.org/licenses/LICENSE-2.0\n",
"Unless required by applicable law or agreed to in writing, software\n",
"distributed under the License is distributed on an \"AS IS\" BASIS,\n",
"WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
"See the License for the specific language governing permissions and\n",
"limitations under the License.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## AI Adventures 10: Fashion MNIST\n",
"A (fashionable) notebook by `@yufengg`"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%%bash \n",
"rm -r /tmp/tfmodels/fashion_mnist"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.3.0\n"
]
}
],
"source": [
"import tensorflow as tf\n",
"from tensorflow.examples.tutorials.mnist import input_data\n",
"import numpy as np\n",
"\n",
"tf.logging.set_verbosity(tf.logging.INFO)\n",
"\n",
"print(tf.__version__)\n",
"\n",
"base_model_dir = \"/tmp/tfmodels/fashion_mnist/\"\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"feature_columns = [tf.feature_column.numeric_column(\n",
" \"pixels\", shape=784)]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Using default config.\n",
"INFO:tensorflow:Using config: {'_save_checkpoints_secs': 600, '_session_config': None, '_keep_checkpoint_max': 5, '_tf_random_seed': 1, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_save_checkpoints_steps': None, '_model_dir': '/tmp/tfmodels/fashion_mnist/linear', '_save_summary_steps': 100}\n"
]
}
],
"source": [
"classifier = tf.estimator.LinearClassifier(\n",
" feature_columns=feature_columns, \n",
" n_classes=10,\n",
" model_dir=base_model_dir + \"linear\"\n",
" )"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def make_input_fn(data, batch_size, num_epochs, shuffle):\n",
" return tf.estimator.inputs.numpy_input_fn(\n",
" x={'pixels': data.images},\n",
" y=data.labels.astype(np.int64),\n",
" batch_size=batch_size,\n",
" num_epochs=num_epochs,\n",
" shuffle=shuffle)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Extracting /Users/yufengg/code/github/fashion-mnist-dataset/train-images-idx3-ubyte.gz\n",
"Extracting /Users/yufengg/code/github/fashion-mnist-dataset/train-labels-idx1-ubyte.gz\n",
"Extracting /Users/yufengg/code/github/fashion-mnist-dataset/t10k-images-idx3-ubyte.gz\n",
"Extracting /Users/yufengg/code/github/fashion-mnist-dataset/t10k-labels-idx1-ubyte.gz\n"
]
}
],
"source": [
"DATA_SETS = input_data.read_data_sets(\n",
" \"/Users/yufengg/code/github/fashion-mnist-dataset\")"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Create CheckpointSaverHook.\n",
"INFO:tensorflow:Restoring parameters from /tmp/tfmodels/fashion_mnist/linear/model.ckpt-5500\n",
"INFO:tensorflow:Saving checkpoints for 5501 into /tmp/tfmodels/fashion_mnist/linear/model.ckpt.\n",
"INFO:tensorflow:loss = 46.1206, step = 5501\n",
"INFO:tensorflow:global_step/sec: 543.076\n",
"INFO:tensorflow:loss = 36.4352, step = 5601 (0.186 sec)\n",
"INFO:tensorflow:global_step/sec: 504.205\n",
"INFO:tensorflow:loss = 30.2353, step = 5701 (0.198 sec)\n",
"INFO:tensorflow:global_step/sec: 500.598\n",
"INFO:tensorflow:loss = 51.4047, step = 5801 (0.200 sec)\n",
"INFO:tensorflow:global_step/sec: 465.643\n",
"INFO:tensorflow:loss = 45.6624, step = 5901 (0.215 sec)\n",
"INFO:tensorflow:global_step/sec: 606.84\n",
"INFO:tensorflow:loss = 32.9727, step = 6001 (0.164 sec)\n",
"INFO:tensorflow:global_step/sec: 586.979\n",
"INFO:tensorflow:loss = 51.9883, step = 6101 (0.171 sec)\n",
"INFO:tensorflow:global_step/sec: 488.398\n",
"INFO:tensorflow:loss = 55.0562, step = 6201 (0.205 sec)\n",
"INFO:tensorflow:global_step/sec: 496.196\n",
"INFO:tensorflow:loss = 37.4041, step = 6301 (0.202 sec)\n",
"INFO:tensorflow:global_step/sec: 492.138\n",
"INFO:tensorflow:loss = 48.632, step = 6401 (0.203 sec)\n",
"INFO:tensorflow:global_step/sec: 523.741\n",
"INFO:tensorflow:loss = 42.2791, step = 6501 (0.191 sec)\n",
"INFO:tensorflow:Saving checkpoints for 6600 into /tmp/tfmodels/fashion_mnist/linear/model.ckpt.\n",
"INFO:tensorflow:Loss for final step: 37.7742.\n",
"INFO:tensorflow:Starting evaluation at 2017-11-03-15:06:47\n",
"INFO:tensorflow:Restoring parameters from /tmp/tfmodels/fashion_mnist/linear/model.ckpt-6600\n",
"INFO:tensorflow:Finished evaluation at 2017-11-03-15:06:48\n",
"INFO:tensorflow:Saving dict for global step 6600: accuracy = 0.8427, average_loss = 0.457945, global_step = 6600, loss = 45.7945\n",
"0.8427\n"
]
}
],
"source": [
"classifier.train(input_fn=make_input_fn(DATA_SETS.train, \n",
" batch_size=100, \n",
" num_epochs=2, \n",
" shuffle=True))\n",
"\n",
"accuracy_score = classifier.evaluate(\n",
" input_fn=make_input_fn(\n",
" DATA_SETS.test, \n",
" batch_size=100, \n",
" num_epochs=1, \n",
" shuffle=False))['accuracy']\n",
"\n",
"print(accuracy_score)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Deep Classifier"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Using default config.\n",
"INFO:tensorflow:Using config: {'_save_checkpoints_secs': 600, '_session_config': None, '_keep_checkpoint_max': 5, '_tf_random_seed': 1, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_save_checkpoints_steps': None, '_model_dir': '/tmp/tfmodels/fashion_mnist/deep', '_save_summary_steps': 100}\n"
]
}
],
"source": [
"deep_classifier = tf.estimator.DNNClassifier(\n",
" feature_columns=feature_columns, \n",
" n_classes=10,\n",
" hidden_units=[100, 75, 50],\n",
" model_dir=base_model_dir + \"deep\"\n",
" )"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Create CheckpointSaverHook.\n",
"INFO:tensorflow:Restoring parameters from /tmp/tfmodels/fashion_mnist/deep/model.ckpt-5500\n",
"INFO:tensorflow:Saving checkpoints for 5501 into /tmp/tfmodels/fashion_mnist/deep/model.ckpt.\n",
"INFO:tensorflow:loss = 17.0578, step = 5501\n",
"INFO:tensorflow:global_step/sec: 271.604\n",
"INFO:tensorflow:loss = 30.0206, step = 5601 (0.370 sec)\n",
"INFO:tensorflow:global_step/sec: 275.39\n",
"INFO:tensorflow:loss = 33.3949, step = 5701 (0.363 sec)\n",
"INFO:tensorflow:global_step/sec: 293.058\n",
"INFO:tensorflow:loss = 18.2952, step = 5801 (0.341 sec)\n",
"INFO:tensorflow:global_step/sec: 321.172\n",
"INFO:tensorflow:loss = 43.0276, step = 5901 (0.312 sec)\n",
"INFO:tensorflow:global_step/sec: 276.841\n",
"INFO:tensorflow:loss = 11.9712, step = 6001 (0.363 sec)\n",
"INFO:tensorflow:global_step/sec: 225.207\n",
"INFO:tensorflow:loss = 17.9168, step = 6101 (0.441 sec)\n",
"INFO:tensorflow:global_step/sec: 249.584\n",
"INFO:tensorflow:loss = 26.6796, step = 6201 (0.401 sec)\n",
"INFO:tensorflow:global_step/sec: 278.721\n",
"INFO:tensorflow:loss = 27.5023, step = 6301 (0.359 sec)\n",
"INFO:tensorflow:global_step/sec: 289.148\n",
"INFO:tensorflow:loss = 36.3334, step = 6401 (0.345 sec)\n",
"INFO:tensorflow:global_step/sec: 293.339\n",
"INFO:tensorflow:loss = 19.4408, step = 6501 (0.341 sec)\n",
"INFO:tensorflow:Saving checkpoints for 6600 into /tmp/tfmodels/fashion_mnist/deep/model.ckpt.\n",
"INFO:tensorflow:Loss for final step: 24.3639.\n",
"INFO:tensorflow:Starting evaluation at 2017-11-03-15:05:53\n",
"INFO:tensorflow:Restoring parameters from /tmp/tfmodels/fashion_mnist/deep/model.ckpt-6600\n",
"INFO:tensorflow:Finished evaluation at 2017-11-03-15:05:54\n",
"INFO:tensorflow:Saving dict for global step 6600: accuracy = 0.8729, average_loss = 0.364061, global_step = 6600, loss = 36.4061\n",
"0.8729\n"
]
}
],
"source": [
"deep_classifier.train(input_fn=make_input_fn(DATA_SETS.train, \n",
" batch_size=100, \n",
" num_epochs=2, \n",
" shuffle=True))\n",
"\n",
"accuracy_score = deep_classifier.evaluate(\n",
" input_fn=make_input_fn(\n",
" DATA_SETS.test, \n",
" batch_size=100, \n",
" num_epochs=1, \n",
" shuffle=False))['accuracy']\n",
"\n",
"print(accuracy_score)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Restoring parameters from /tmp/tfmodels/fashion_mnist/deep/model.ckpt-1100\n",
"Predictions: ['2'] with probabilities [ 3.34655493e-03 3.73428455e-04 5.99427521e-01 2.30065244e-03\n",
" 9.62510034e-02 1.15923649e-06 2.98093945e-01 2.75447604e-07\n",
" 2.05014148e-04 3.97151013e-07]\n",
"\n",
"Predictions: ['3'] with probabilities [ 4.99443122e-05 2.10588369e-05 3.45815420e-06 9.99904752e-01\n",
" 9.89184059e-07 9.39286635e-11 1.97568897e-05 3.45752355e-12\n",
" 4.03237550e-08 3.73907537e-11]\n",
"\n",
"Predictions: ['6'] with probabilities [ 1.58757046e-01 1.09163899e-04 1.23572983e-01 1.47371204e-03\n",
" 2.66500353e-03 1.48613035e-04 6.13631368e-01 7.42881684e-06\n",
" 9.96101350e-02 2.45846913e-05]\n",
"\n",
"Predictions: ['4'] with probabilities [ 8.10947458e-05 7.00237024e-06 1.70911252e-02 6.96684365e-05\n",
" 9.09717798e-01 6.40891784e-10 7.28539079e-02 1.12319209e-09\n",
" 1.79356168e-04 7.63112795e-10]\n",
"\n",
"Predictions: ['6'] with probabilities [ 1.26921665e-03 8.10740239e-05 1.08096236e-02 2.56098836e-04\n",
" 8.36690292e-02 1.22102549e-07 9.03248966e-01 2.86723434e-07\n",
" 6.65421947e-04 1.48497705e-07]\n",
"\n",
"Expected answers values: [2 3 6 4 6]\n"
]
}
],
"source": [
"predict_input_fn = tf.estimator.inputs.numpy_input_fn( \n",
" x={'pixels': DATA_SETS.test.images[5000:5005]},\n",
" batch_size=1,\n",
" num_epochs=1,\n",
" shuffle=False)\n",
"predictions = deep_classifier.predict(input_fn=predict_input_fn)\n",
"\n",
"for prediction in predictions:\n",
" print(\"Predictions: {} with probabilities {}\\n\".format(\n",
" prediction[\"classes\"], prediction[\"probabilities\"]))\n",
"print('Expected answers values: {}'.format(\n",
" DATA_SETS.test.labels[5000:5005]))"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x108784590>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x110638b90>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nM3/+/Jax1DwD7chda9HLMfV12kK+73WuI6k7nj8V37x5c7Ltsccem4y/HPjMb1YoJ79ZoZz8ZoVy\n8psVyslvVignv1mhnPxmhWpnie4FwDeBuTSW5B6JiCslzQa+AxxJY5nucyLi2dzjpWq3u3btaqvT\n48nNfZ9z8MEHd9w2N+Y9N4d7brx+rp6dWtI599i5awhy10fUqbXXvcagznHJ7Xvnzp0d9aldqeNe\n97i03Yc27rMb+EhEvAZ4A3ChpNcAlwArIuIYYEX1s5ntI7LJHxGjEXFPdXsr8AhwOHAmcG11t2uB\ns3rVSTPrvgm955d0JPBa4C5gbkTsXTdoLY23BWa2j2j7YnpJ04HvAxdHxJbm91sREa3m55O0HFhe\nt6Nm1l1tnfklTaKR+NdFxA3V5qclHVbFDwPWjdc2IkYiYklELOlGh82sO7LJr8Yp/irgkYj4YlPo\nFmBZdXsZcHP3u2dmvdLOy/43AucBD0i6r9p2KXA58F1J7wUeB87pTRfbU7dkNW3atGR8w4YNHT92\nLp4rU+bKTqmS16xZszpuC/kyZq4slYrnnnfuuNUpx+X2nSvP1jUMpb5s8kfEnUCrv5C3dLc7ZtYv\nvsLPrFBOfrNCOfnNCuXkNyuUk9+sUE5+s0L1feruYZVbyjpXD0+pW8+ePn16Mp6qGaeWqQbYsWNH\nMp6bTr3OMtpbtmxJtq3zvCF9jUJu37mly+vqVy0/xWd+s0I5+c0K5eQ3K5ST36xQTn6zQjn5zQrl\n5DcrlOv8lVxdNzXePzfleK4ePXv27GQ8N/12ncfO1bs3btyYjNdZXnzevHnJtrk6f05qGe5cv594\n4ola+85xnd/MBsbJb1YoJ79ZoZz8ZoVy8psVyslvVignv1mhXjZ1/lzdNmfRokXJ+Pe+972WsZNP\nPjnZduvWrcn47bffnoyfd955yXhK7nnddtttyXhu6fKpU6cm4zNmzGgZu/LKK5NtL7744mQ856qr\nrmoZO+2005JtU+s0dENqfoi6f8vt8pnfrFBOfrNCOfnNCuXkNyuUk9+sUE5+s0I5+c0KpVxNUdIC\n4JvAXCCAkYi4UtJlwPuB9dVdL42IH2Qeq2cFzNyY+dz46Vw9OzU2fMqUKcm2ubnxh1luPoALLrgg\nGb/mmmtaxkZHRzvpUl8sXLgwGe/1eP86IqKtRSbauchnN/CRiLhH0gzg55L2XpXypYj4u047aWaD\nk03+iBgFRqvbWyU9Ahze646ZWW9N6D2/pCOB1wJ3VZsuknS/pKslzWrRZrmkVZJW1eqpmXVV28kv\naTrwfeDiiNgCfBU4CjiRxiuDL4zXLiJGImJJRCzpQn/NrEvaSn5Jk2gk/nURcQNARDwdEXsi4gXg\n68BJveummXVbNvnVGH50FfBIRHyxafthTXc7G3iw+90zs15pp9R3KvCfwAPA3nrZpcC5NF7yB7Aa\nuKD6cDD1WP0Zq2hWsHZLfdnk7yYnv1nvtZv8vsLPrFBOfrNCOfnNCuXkNyuUk9+sUE5+s0I5+c0K\n5eQ3K5ST36xQTn6zQjn5zQrl5DcrlJPfrFBOfrNC9XuJ7g3A400/z6m2DaNh7duw9gvct051s29H\ntHvHvo7nf8nOpVXDOrffsPZtWPsF7lunBtU3v+w3K5ST36xQg07+kQHvP2VY+zas/QL3rVMD6dtA\n3/Ob2eAM+sxvZgPi5Dcr1ECSX9Lpkn4h6VFJlwyiD61IWi3pAUn3DXp9wWoNxHWSHmzaNlvS7ZJ+\nVX0fd43EAfXtMklPVcfuPklnDKhvCyT9h6SHJT0k6UPV9oEeu0S/BnLc+v6eX9J+wC+BtwFPAncD\n50bEw33tSAuSVgNLImLgF4RI+gNgG/DNiDiu2vZ54JmIuLz6xzkrIj4+JH27DNg26GXbq9WkDmte\nVh44CzifAR67RL/OYQDHbRBn/pOARyPisYjYBXwbOHMA/Rh6EbESeGbM5jOBa6vb19L44+m7Fn0b\nChExGhH3VLe3AnuXlR/osUv0ayAGkfyHA2uafn6SAR6AcQTwY0k/l7R80J0Zx9ymZdHWAnMH2Zlx\nZJdt76cxy8oPzbHrZLn7bvMHfi91akS8DngncGH18nYoReM92zDVattatr1fxllW/ncGeew6Xe6+\n2waR/E8BC5p+nl9tGwoR8VT1fR1wI8O39PjTe1dIrr6vG3B/fmeYlm0fb1l5huDYDdNy94NI/ruB\nYyS9StJk4N3ALQPox0tImlZ9EIOkacDbGb6lx28BllW3lwE3D7AvLzIsy7a3WlaeAR+7oVvuPiL6\n/gWcQeMT/18DnxhEH1r0axHwv9XXQ4PuG3A9jZeBz9P4bOS9wCuBFcCvgH8HZg9R3/6ZxlLu99NI\ntMMG1LdTabykvx+4r/o6Y9DHLtGvgRw3X95rVih/4GdWKCe/WaGc/GaFcvKbFcrJb1YoJ79ZoZz8\nZoX6f8L7Dz6mwsCIAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1085db610>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nVS/PTTG9zz7pGdJz49ZzfRjWrFlTN7Zw4cLkvi+++GIynltGe86cOcl4qp/Ahg0bkvvmztv69euT\n8V27dtWNzZ07N7nvzTffnIxffvnlyXg3dWSJbklrgC3ATmBHRMxv5fHMrHNGY9GOP42I9OXBzHqO\n3/ObFarV5A/gF5J+LWnpSHeQtFTSSkkrWzyWmY2iVl/2L4qIdZIOBu6U9L8Rce/QO0TEMmAZ9PYH\nfmalaenKHxHrqu8bgJ8C6RUnzaxnNJ38kiZJmrL7NvBBYNVoNczM2qvpOr+kd1O72kPt7cOPIuLL\nmX269rJ/6tSpyfhDDz2UjG/durVubPPmzcl9c+P9U/VoyNe7999//7qx3//+98l9X3/99WQ81/bc\n47/jHfWvL5MmTUruu2PHjmQ897c7fvz4urFt27Yl9021G3p7vH/b6/wR8Tzw3mb3N7PucqnPrFBO\nfrNCOfnNCuXkNyuUk9+sUKMxsGdMWLx4cTKeK2mNGzeubiw1RTTA9u3bk/FcKS9X8kpNDZ4qAwJM\nnDgxGX/jjTeS8cmTJyfjqXJcrsyYG8qcKuVBuu25x54+fXoyftxxxyXjq1b1fpcXX/nNCuXkNyuU\nk9+sUE5+s0I5+c0K5eQ3K5ST36xQxdT5TzrppGQ8N4QzVefPTb29ZcuWZDw3NDV1bICdO3fWjeXq\n2bk+BLk+CK1M/Z475zmp5w3pOn8r/RMAFi1alIy7zm9mPcvJb1YoJ79ZoZz8ZoVy8psVyslvVign\nv1mhiqnzH3/88cl4btx6aux4bgrq3PTWufH+uVp9qhafmxY8V2vP1dJzbUvFc8fO9UHI9Z84+OCD\n68Zy/RfefPPNZHz27NnJ+FjgK79ZoZz8ZoVy8psVyslvVignv1mhnPxmhXLymxWqmDr/kUcemYyn\n5r6H9Lz+uTn/c/P652rpOa3U0lt57FbjubblavGzZs1Kxo8++ui6seeeey65b+53cuqppybjY0H2\nL0PSDZI2SFo1ZNsMSXdKerb6nl7hwMx6TiOXhe8DZw/bdhmwIiKOAlZUP5vZGJJN/oi4F9g0bPO5\nwPLq9nLgvFFul5m1WbPv+fsior+6PQD01bujpKXA0iaPY2Zt0vIHfhERkurOdhgRy4BlAKn7mVln\nNftR8HpJswCq7xtGr0lm1gnNJv+twJLq9hLgZ6PTHDPrlOzLfkk3AqcBB0paC3wRuBr4iaSLgBeA\n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\nTn6zQv0/KajSwImE8oAAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11097b590>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x108912f50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"\n",
"for i in range(5000,5005):\n",
" sample = np.reshape(DATA_SETS.test.images[i], (28,28))\n",
" plt.figure()\n",
" plt.title(\"Correct label: {}\".format(DATA_SETS.test.labels[i]))\n",
" plt.imshow(sample, 'gray')\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.13"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment