-
-
Save dragonforce2010/e6ece47d9d5cc57c77b4bb13c53e612a to your computer and use it in GitHub Desktop.
Revisions
-
Dandelion Mané revised this gist
Feb 27, 2017 . 3 changed files with 1 addition and 1 deletion.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -17,7 +17,7 @@ import urllib LOGDIR = '/tmp/mnist_tutorial/' GIST_URL = 'https://gist.github.com/dandelionmane/4f02ab8f1451e276fea1f165a20336f1/raw/dfb8ee95b010480d56a73f324aca480b3820c180' ### MNIST EMBEDDINGS ### mnist = tf.contrib.learn.datasets.mnist.read_data_sets(train_dir=LOGDIR + 'data', one_hot=True) Binary file not shown.LoadingSorry, something went wrong. Reload?Sorry, we cannot display this file.Sorry, this file is invalid so it cannot be displayed. -
Daniel Mané revised this gist
Feb 15, 2017 . 1 changed file with 3 additions and 3 deletions.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -49,7 +49,7 @@ def fc_layer(input, size_in, size_out, name="fc"): return act def mnist_model(learning_rate, use_two_conv, use_two_fc, hparam): tf.reset_default_graph() sess = tf.Session() @@ -101,7 +101,7 @@ def mnist_model(learning_rate, use_two_conv, use_two_fc, LOGDIR): saver = tf.train.Saver() sess.run(tf.global_variables_initializer()) writer = tf.summary.FileWriter(LOGDIR + hparam) writer.add_graph(sess.graph) config = tf.contrib.tensorboard.plugins.projector.ProjectorConfig() @@ -140,7 +140,7 @@ def main(): print('Starting run for %s' % hparam) # Actually run with the new settings mnist_model(learning_rate, use_two_fc, use_two_conv, hparam) if __name__ == '__main__': -
Daniel Mané revised this gist
Feb 15, 2017 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
LoadingSorry, something went wrong. Reload?Sorry, we cannot display this file.Sorry, this file is invalid so it cannot be displayed. -
Daniel Mané revised this gist
Feb 15, 2017 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
Binary file not shown. -
Daniel Mané revised this gist
Feb 15, 2017 . 1 changed file with 5 additions and 5 deletions.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -129,12 +129,12 @@ def make_hparam_string(learning_rate, use_two_fc, use_two_conv): return "lr_%.0E,%s,%s" % (learning_rate, conv_param, fc_param) def main(): # You can try adding some more learning rates for learning_rate in [1E-4]: # Include "False" as a value to try different model architectures for use_two_fc in [True]: for use_two_conv in [True]: # Construct a hyperparameter string for each one (example: "lr_1E-3,fc=2,conv=2) hparam = make_hparam_string(learning_rate, use_two_fc, use_two_conv) print('Starting run for %s' % hparam) -
Daniel Mané revised this gist
Feb 15, 2017 . 1 changed file with 14 additions and 0 deletions.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -1,3 +1,17 @@ # Copyright 2017 Google, Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== import os import tensorflow as tf import urllib -
Daniel Mané revised this gist
Feb 15, 2017 . 1 changed file with 15 additions and 12 deletions.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -2,10 +2,14 @@ import tensorflow as tf import urllib LOGDIR = '/tmp/mnist_tutorial/' GIST_URL = 'https://gist.github.com/dandelionmane/4f02ab8f1451e276fea1f165a20336f1/raw/a20c87f5e1f176e9abf677b46a74c6f2581c7bd8/' ### MNIST EMBEDDINGS ### mnist = tf.contrib.learn.datasets.mnist.read_data_sets(train_dir=LOGDIR + 'data', one_hot=True) ### Get a sprite and labels file for the embedding projector ### urllib.urlretrieve(GIST_URL + 'labels_1024.tsv', LOGDIR + 'labels_1024.tsv') urllib.urlretrieve(GIST_URL + 'sprite_1024.png', LOGDIR + 'sprite_1024.png') def conv_layer(input, size_in, size_out, name="conv"): @@ -31,7 +35,7 @@ def fc_layer(input, size_in, size_out, name="fc"): return act def mnist_model(learning_rate, use_two_conv, use_two_fc, LOGDIR): tf.reset_default_graph() sess = tf.Session() @@ -83,14 +87,14 @@ def mnist_model(learning_rate, use_two_conv, use_two_fc, logdir): saver = tf.train.Saver() sess.run(tf.global_variables_initializer()) writer = tf.summary.FileWriter(LOGDIR) writer.add_graph(sess.graph) config = tf.contrib.tensorboard.plugins.projector.ProjectorConfig() embedding_config = config.embeddings.add() embedding_config.tensor_name = embedding.name embedding_config.sprite.image_path = LOGDIR + 'sprite_1024.png' embedding_config.metadata_path = LOGDIR + 'labels_1024.tsv' # Specify the width and height of a single thumbnail. embedding_config.sprite.single_image_dim.extend([28, 28]) tf.contrib.tensorboard.plugins.projector.visualize_embeddings(writer, config) @@ -102,7 +106,7 @@ def mnist_model(learning_rate, use_two_conv, use_two_fc, logdir): writer.add_summary(s, i) if i % 500 == 0: sess.run(assignment, feed_dict={x: mnist.test.images[:1024], y: mnist.test.labels[:1024]}) saver.save(sess, os.path.join(LOGDIR, "model.ckpt"), i) sess.run(train_step, feed_dict={x: batch[0], y: batch[1]}) def make_hparam_string(learning_rate, use_two_fc, use_two_conv): @@ -112,18 +116,17 @@ def make_hparam_string(learning_rate, use_two_fc, use_two_conv): def main(): # You can try adding some more learning rates for learning_rate in [1E-3, 1E-4]: # You can also change to use fewer layers for use_two_fc in [True, False]: for use_two_conv in [True, False]: # Construct a hyperparameter string for each one (example: "lr_1E-3,fc=2,conv=2) hparam = make_hparam_string(learning_rate, use_two_fc, use_two_conv) print('Starting run for %s' % hparam) # Actually run with the new settings mnist_model(learning_rate, use_two_fc, use_two_conv, LOGDIR + hparam) if __name__ == '__main__': -
Daniel Mané revised this gist
Feb 15, 2017 . 2 changed files with 1024 additions and 0 deletions.There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,1024 @@ 7 2 1 0 4 1 4 9 5 9 0 6 9 0 1 5 9 7 3 4 9 6 6 5 4 0 7 4 0 1 3 1 3 4 7 2 7 1 2 1 1 7 4 2 3 5 1 2 4 4 6 3 5 5 6 0 4 1 9 5 7 8 9 3 7 4 6 4 3 0 7 0 2 9 1 7 3 2 9 7 7 6 2 7 8 4 7 3 6 1 3 6 9 3 1 4 1 7 6 9 6 0 5 4 9 9 2 1 9 4 8 7 3 9 7 4 4 4 9 2 5 4 7 6 7 9 0 5 8 5 6 6 5 7 8 1 0 1 6 4 6 7 3 1 7 1 8 2 0 2 9 9 5 5 1 5 6 0 3 4 4 6 5 4 6 5 4 5 1 4 4 7 2 3 2 7 1 8 1 8 1 8 5 0 8 9 2 5 0 1 1 1 0 9 0 3 1 6 4 2 3 6 1 1 1 3 9 5 2 9 4 5 9 3 9 0 3 6 5 5 7 2 2 7 1 2 8 4 1 7 3 3 8 8 7 9 2 2 4 1 5 9 8 7 2 3 0 4 4 2 4 1 9 5 7 7 2 8 2 6 8 5 7 7 9 1 8 1 8 0 3 0 1 9 9 4 1 8 2 1 2 9 7 5 9 2 6 4 1 5 8 2 9 2 0 4 0 0 2 8 4 7 1 2 4 0 2 7 4 3 3 0 0 3 1 9 6 5 2 5 9 2 9 3 0 4 2 0 7 1 1 2 1 5 3 3 9 7 8 6 5 6 1 3 8 1 0 5 1 3 1 5 5 6 1 8 5 1 7 9 4 6 2 2 5 0 6 5 6 3 7 2 0 8 8 5 4 1 1 4 0 3 3 7 6 1 6 2 1 9 2 8 6 1 9 5 2 5 4 4 2 8 3 8 2 4 5 0 3 1 7 7 5 7 9 7 1 9 2 1 4 2 9 2 0 4 9 1 4 8 1 8 4 5 9 8 8 3 7 6 0 0 3 0 2 6 6 4 9 3 3 3 2 3 9 1 2 6 8 0 5 6 6 6 3 8 8 2 7 5 8 9 6 1 8 4 1 2 5 9 1 9 7 5 4 0 8 9 9 1 0 5 2 3 7 8 9 4 0 6 3 9 5 2 1 3 1 3 6 5 7 4 2 2 6 3 2 6 5 4 8 9 7 1 3 0 3 8 3 1 9 3 4 4 6 4 2 1 8 2 5 4 8 8 4 0 0 2 3 2 7 7 0 8 7 4 4 7 9 6 9 0 9 8 0 4 6 0 6 3 5 4 8 3 3 9 3 3 3 7 8 0 8 2 1 7 0 6 5 4 3 8 0 9 6 3 8 0 9 9 6 8 6 8 5 7 8 6 0 2 4 0 2 2 3 1 9 7 5 1 0 8 4 6 2 6 7 9 3 2 9 8 2 2 9 2 7 3 5 9 1 8 0 2 0 5 2 1 3 7 6 7 1 2 5 8 0 3 7 2 4 0 9 1 8 6 7 7 4 3 4 9 1 9 5 1 7 3 9 7 6 9 1 3 7 8 3 3 6 7 2 8 5 8 5 1 1 4 4 3 1 0 7 7 0 7 9 4 4 8 5 5 4 0 8 2 1 0 8 4 5 0 4 0 6 1 7 3 2 6 7 2 6 9 3 1 4 6 2 5 4 2 0 6 2 1 7 3 4 1 0 5 4 3 1 1 7 4 9 9 4 8 4 0 2 4 5 1 1 6 4 7 1 9 4 2 4 1 5 5 3 8 3 1 4 5 6 8 9 4 1 5 3 8 0 3 2 5 1 2 8 3 4 4 0 8 8 3 3 1 7 3 5 9 6 3 2 6 1 3 6 0 7 2 1 7 1 4 2 4 2 1 7 9 6 1 1 2 4 8 1 7 7 4 8 0 7 3 1 3 1 0 7 7 0 3 5 5 2 7 6 6 9 2 8 3 5 2 2 5 6 0 8 2 9 2 8 8 8 8 7 4 9 3 0 6 6 3 2 1 3 2 2 9 3 0 0 5 7 8 1 4 4 6 0 2 9 1 4 7 4 7 3 9 8 8 4 7 1 2 1 2 2 3 2 3 2 3 9 1 7 4 0 3 5 5 8 6 3 2 6 7 6 6 3 2 7 8 1 1 7 5 6 4 9 5 1 3 3 4 7 8 9 1 1 6 9 1 4 4 5 4 0 6 2 2 3 1 5 1 2 0 3 8 1 2 6 7 1 6 2 3 9 0 1 2 2 0 8 9 9 0 2 5 1 9 7 8 1 0 4 1 7 9 6 4 2 6 8 1 3 7 5 4 LoadingSorry, something went wrong. Reload?Sorry, we cannot display this file.Sorry, this file is invalid so it cannot be displayed. -
Dandelion Mané created this gist
Feb 15, 2017 .There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,130 @@ import os import tensorflow as tf import urllib ### MNIST EMBEDDINGS ### mnist = tf.contrib.learn.datasets.mnist.read_data_sets(train_dir='/tmp/mnist_tutorial/data', one_hot=True) urllib.urlretrieve ### Get a sprite and labels file for the embedding projector ### def conv_layer(input, size_in, size_out, name="conv"): with tf.name_scope(name): w = tf.Variable(tf.truncated_normal([5, 5, size_in, size_out], stddev=0.1), name="W") b = tf.Variable(tf.constant(0.1, shape=[size_out]), name="B") conv = tf.nn.conv2d(input, w, strides=[1, 1, 1, 1], padding="SAME") act = tf.nn.relu(conv + b) tf.summary.histogram("weights", w) tf.summary.histogram("biases", b) tf.summary.histogram("activations", act) return tf.nn.max_pool(act, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding="SAME") def fc_layer(input, size_in, size_out, name="fc"): with tf.name_scope(name): w = tf.Variable(tf.truncated_normal([size_in, size_out], stddev=0.1), name="W") b = tf.Variable(tf.constant(0.1, shape=[size_out]), name="B") act = tf.nn.relu(tf.matmul(input, w) + b) tf.summary.histogram("weights", w) tf.summary.histogram("biases", b) tf.summary.histogram("activations", act) return act def mnist_model(learning_rate, use_two_conv, use_two_fc, logdir): tf.reset_default_graph() sess = tf.Session() # Setup placeholders, and reshape the data x = tf.placeholder(tf.float32, shape=[None, 784], name="x") x_image = tf.reshape(x, [-1, 28, 28, 1]) tf.summary.image('input', x_image, 3) y = tf.placeholder(tf.float32, shape=[None, 10], name="labels") if use_two_conv: conv1 = conv_layer(x_image, 1, 32, "conv1") conv_out = conv_layer(conv1, 32, 64, "conv2") else: conv1 = conv_layer(x_image, 1, 64, "conv") conv_out = tf.nn.max_pool(conv1, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding="SAME") flattened = tf.reshape(conv_out, [-1, 7 * 7 * 64]) if use_two_fc: fc1 = fc_layer(flattened, 7 * 7 * 64, 1024, "fc1") embedding_input = fc1 embedding_size = 1024 logits = fc_layer(fc1, 1024, 10, "fc2") else: embedding_input = flattened embedding_size = 7*7*64 logits = fc_layer(flattened, 7*7*64, 10, "fc") with tf.name_scope("xent"): xent = tf.reduce_mean( tf.nn.softmax_cross_entropy_with_logits( logits=logits, labels=y), name="xent") tf.summary.scalar("xent", xent) with tf.name_scope("train"): train_step = tf.train.AdamOptimizer(learning_rate).minimize(xent) with tf.name_scope("accuracy"): correct_prediction = tf.equal(tf.argmax(logits, 1), tf.argmax(y, 1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) tf.summary.scalar("accuracy", accuracy) summ = tf.summary.merge_all() embedding = tf.Variable(tf.zeros([1024, embedding_size]), name="test_embedding") assignment = embedding.assign(embedding_input) saver = tf.train.Saver() sess.run(tf.global_variables_initializer()) writer = tf.summary.FileWriter(logdir) writer.add_graph(sess.graph) config = tf.contrib.tensorboard.plugins.projector.ProjectorConfig() embedding_config = config.embeddings.add() embedding_config.tensor_name = embedding.name embedding_config.sprite.image_path = '/tmp/mnist_tutorial/sprite_1024.png' embedding_config.metadata_path = '/tmp/mnist_tutorial/labels_1024.tsv' # Specify the width and height of a single thumbnail. embedding_config.sprite.single_image_dim.extend([28, 28]) tf.contrib.tensorboard.plugins.projector.visualize_embeddings(writer, config) for i in range(2001): batch = mnist.train.next_batch(100) if i % 5 == 0: [train_accuracy, s] = sess.run([accuracy, summ], feed_dict={x: batch[0], y: batch[1]}) writer.add_summary(s, i) if i % 500 == 0: sess.run(assignment, feed_dict={x: mnist.test.images[:1024], y: mnist.test.labels[:1024]}) saver.save(sess, os.path.join(logdir, "model.ckpt"), i) sess.run(train_step, feed_dict={x: batch[0], y: batch[1]}) def make_hparam_string(learning_rate, use_two_fc, use_two_conv): conv_param = "conv=2" if use_two_conv else "conv=1" fc_param = "fc=2" if use_two_fc else "fc=1" return "lr_%.0E,%s,%s" % (learning_rate, conv_param, fc_param) def main(): # You can try adding some more learning rates for learning_rate in [1E-3]: # You can also change to use fewer layers for use_two_fc in [True]: for use_two_conv in [True]: # Construct a hyperparameter string for each one (example: "lr_1E-3,fc=2,conv=2) hparam = make_hparam_string(learning_rate, use_two_fc, use_two_conv) print('Starting run for %s' % hparam) logdir = "/tmp/mnist_tutorial/" + hparam # Actually run with the new settings mnist_model(learning_rate, use_two_fc, use_two_conv, logdir) if __name__ == '__main__': main()