Last active
February 6, 2018 08:39
-
-
Save matsub/14633680f68920d5e047156fa3b94767 to your computer and use it in GitHub Desktop.
TF Layersでスッとした
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"MNIST_layered.ipynb","version":"0.3.2","views":{},"default_view":{},"provenance":[{"file_id":"1CF7h_RnWLP-2SH6mkk0lZGk8JOI4t5Oy","timestamp":1517901097665}],"collapsed_sections":[]},"kernelspec":{"name":"python3","display_name":"Python 3"},"accelerator":"GPU"},"cells":[{"metadata":{"id":"iOKJezhZ04cy","colab_type":"code","colab":{"autoexec":{"startup":false,"wait_interval":0}}},"cell_type":"code","source":["import tensorflow as tf\n","sess = tf.InteractiveSession()"],"execution_count":0,"outputs":[]},{"metadata":{"id":"IfXwcbxp1Hf6","colab_type":"code","colab":{"autoexec":{"startup":false,"wait_interval":0},"output_extras":[{"item_id":1}],"base_uri":"https://localhost:8080/","height":238},"outputId":"b1d7357b-e438-42c4-cbfb-5406b01a1d95","executionInfo":{"status":"ok","timestamp":1517905502522,"user_tz":-540,"elapsed":437,"user":{"displayName":"Riku Matsubara","photoUrl":"//lh5.googleusercontent.com/-dG00Vh0-TBA/AAAAAAAAAAI/AAAAAAAAAE8/B-x8TdJqrB4/s50-c-k-no/photo.jpg","userId":"108374135676082837560"}}},"cell_type":"code","source":["from tensorflow.python.client import device_lib\n","device_lib.list_local_devices()"],"execution_count":2,"outputs":[{"output_type":"execute_result","data":{"text/plain":["[name: \"/device:CPU:0\"\n"," device_type: \"CPU\"\n"," memory_limit: 268435456\n"," locality {\n"," }\n"," incarnation: 3770251200290330070, name: \"/device:GPU:0\"\n"," device_type: \"GPU\"\n"," memory_limit: 2592210944\n"," locality {\n"," bus_id: 1\n"," }\n"," incarnation: 16512953741416392084\n"," physical_device_desc: \"device: 0, name: Tesla K80, pci bus id: 0000:00:04.0, compute capability: 3.7\"]"]},"metadata":{"tags":[]},"execution_count":2}]},{"metadata":{"id":"GaCtc_yt1QXb","colab_type":"code","colab":{"autoexec":{"startup":false,"wait_interval":0},"output_extras":[{"item_id":2}],"base_uri":"https://localhost:8080/","height":85},"outputId":"bd7401bd-25df-42ce-cfe0-a17faa8bcda3","executionInfo":{"status":"ok","timestamp":1517905504243,"user_tz":-540,"elapsed":1534,"user":{"displayName":"Riku Matsubara","photoUrl":"//lh5.googleusercontent.com/-dG00Vh0-TBA/AAAAAAAAAAI/AAAAAAAAAE8/B-x8TdJqrB4/s50-c-k-no/photo.jpg","userId":"108374135676082837560"}}},"cell_type":"code","source":["from tensorflow.examples.tutorials.mnist import input_data\n","mnist = input_data.read_data_sets('MNIST_data', one_hot=True)"],"execution_count":3,"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":"yZ4rCoDE1XdE","colab_type":"code","colab":{"autoexec":{"startup":false,"wait_interval":0}}},"cell_type":"code","source":["x = tf.placeholder(tf.float32, shape=[None, 784])\n","y = tf.placeholder(tf.float32, shape=[None, 10])"],"execution_count":0,"outputs":[]},{"metadata":{"id":"G3Y3-UcP99HJ","colab_type":"code","colab":{"autoexec":{"startup":false,"wait_interval":0}}},"cell_type":"code","source":["input_layer = tf.reshape(x, [-1, 28, 28, 1])"],"execution_count":0,"outputs":[]},{"metadata":{"id":"18gxkTsP-tJ5","colab_type":"code","colab":{"autoexec":{"startup":false,"wait_interval":0}}},"cell_type":"code","source":["# Convolutional Layer #1 and Pooling Layer #1\n","conv1 = tf.layers.conv2d(\n"," inputs=input_layer,\n"," filters=32,\n"," kernel_size=[5, 5],\n"," padding=\"same\",\n"," activation=tf.nn.relu)\n","pool1 = tf.layers.max_pooling2d(inputs=conv1, pool_size=[2, 2], strides=2)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"kMQ6Kw5y_BH4","colab_type":"code","colab":{"autoexec":{"startup":false,"wait_interval":0}}},"cell_type":"code","source":["# Convolutional Layer #2 and Pooling Layer #2\n","conv2 = tf.layers.conv2d(\n"," inputs=pool1,\n"," filters=64,\n"," kernel_size=[5, 5],\n"," padding=\"same\",\n"," activation=tf.nn.relu)\n","pool2 = tf.layers.max_pooling2d(inputs=conv2, pool_size=[2, 2], strides=2)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"XatS-Qh9_Jqg","colab_type":"code","colab":{"autoexec":{"startup":false,"wait_interval":0}}},"cell_type":"code","source":["# Dense Layer\n","pool2_flat = tf.reshape(pool2, [-1, 7 * 7 * 64])\n","dense = tf.layers.dense(inputs=pool2_flat, units=1024, activation=tf.nn.relu)\n","\n","training = tf.placeholder(tf.bool, shape=())\n","dropout = tf.layers.dropout(inputs=dense, rate=0.5, training=training)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"H3ZF-Ma1APN3","colab_type":"code","colab":{"autoexec":{"startup":false,"wait_interval":0}}},"cell_type":"code","source":["# Logits Layer\n","logits = tf.layers.dense(inputs=dropout, units=10)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"9SVbNlCSCYh9","colab_type":"code","colab":{"autoexec":{"startup":false,"wait_interval":0}}},"cell_type":"code","source":["# Calculate Loss\n","cross_entropy = tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=logits)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"6z9FMjC9DUwM","colab_type":"code","colab":{"autoexec":{"startup":false,"wait_interval":0}}},"cell_type":"code","source":["# Configure the Training Op\n","optimizer = tf.train.AdamOptimizer(1e-4)\n","train_op = optimizer.minimize(cross_entropy)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"AznrThedFXCd","colab_type":"code","colab":{"autoexec":{"startup":false,"wait_interval":0}}},"cell_type":"code","source":["# Calculate accuracy\n","correct_prediction = tf.equal(tf.argmax(logits,1), tf.argmax(y,1))\n","accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))"],"execution_count":0,"outputs":[]},{"metadata":{"id":"Vq_jN_HFF0jH","colab_type":"code","colab":{"autoexec":{"startup":false,"wait_interval":0},"output_extras":[{"item_id":11}],"base_uri":"https://localhost:8080/","height":204},"outputId":"ce91e2be-2bd0-49cb-fee4-24e6ade5490f","executionInfo":{"status":"ok","timestamp":1517905572122,"user_tz":-540,"elapsed":10999,"user":{"displayName":"Riku Matsubara","photoUrl":"//lh5.googleusercontent.com/-dG00Vh0-TBA/AAAAAAAAAAI/AAAAAAAAAE8/B-x8TdJqrB4/s50-c-k-no/photo.jpg","userId":"108374135676082837560"}}},"cell_type":"code","source":["# run\n","sess.run(tf.global_variables_initializer())\n","for i in range(1000):\n"," batch = mnist.train.next_batch(50)\n"," if i%100 == 0:\n"," train_accuracy = accuracy.eval(feed_dict={\n"," x:batch[0], y: batch[1], training: False})\n"," print(\"step %d, training accuracy %g\" % (i, train_accuracy))\n"," train_op.run(feed_dict={x: batch[0], y: batch[1], training: True})\n","\n","print(\"test accuracy %g\" % accuracy.eval(feed_dict={\n"," x: mnist.test.images, y: mnist.test.labels, training: False}))"],"execution_count":15,"outputs":[{"output_type":"stream","text":["step 0, training accuracy 0.12\n","step 100, training accuracy 0.84\n","step 200, training accuracy 0.96\n","step 300, training accuracy 0.9\n","step 400, training accuracy 0.92\n","step 500, training accuracy 0.94\n","step 600, training accuracy 0.98\n","step 700, training accuracy 1\n","step 800, training accuracy 0.94\n","step 900, training accuracy 0.96\n","test accuracy 0.9676\n"],"name":"stdout"}]}]} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment