I am trying to use TensorFlow to create summaries and visualize them using TensorBoard. However, I get an error ( InvalidArgumentError: You must feed a value for placeholder tensor 'Placeholder_1' with dtype float ), which I do not understand.
This is the complete source of my program:
from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) import tensorflow as tf x = tf.placeholder(tf.float32, [None, 784]) W = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10])) y = tf.nn.softmax(tf.matmul(x, W) + b) _ = tf.histogram_summary("weights", W) _ = tf.histogram_summary("biases", b) _ = tf.histogram_summary("y", y) y_ = tf.placeholder(tf.float32, [None, 10]) with tf.name_scope("xent") as scope: cross_entropy = -tf.reduce_sum(y_*tf.log(y)) _ = tf.scalar_summary("cross entropy", cross_entropy) with tf.name_scope("train") as scope: train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy) init = tf.initialize_all_variables() sess = tf.Session() sess.run(init) with tf.name_scope("test") as scope: correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) _ = tf.scalar_summary("accuracy", accuracy) merged = tf.merge_all_summaries() writer = tf.train.SummaryWriter("/tmp/mnist_nn", sess.graph_def) for i in range(1000): if (i % 10) == 0: feed = {x: mnist.test.images, y_: mnist.test.labels} result = sess.run([merged, accuracy], feed_dict=feed) summary_str = result[0] acc = result[1] print("Accuracy at step %s: %s" % (i, acc)) else: batch_xs, batch_ys = mnist.train.next_batch(100) feed = {x: batch_xs, y_: batch_ys} sess.run(train_step, feed_dict=feed) print(accuracy.eval({x: mnist.test.images, y_: mnist.test.labels}))
However, when I try to run the above code, the following error occurs:
--------------------------------------------------------------------------- InvalidArgumentError Traceback (most recent call last) <ipython-input-23-584a7bc91816> in <module>() 39 if (i % 10) == 0: 40 feed = {x: mnist.test.images, y_: mnist.test.labels} ---> 41 result = sess.run([merged, accuracy], feed_dict=feed) 42 summary_str = result[0] 43 acc = result[1] /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tensorflow/python/client/session.pyc in run(self, fetches, feed_dict) 366 367
It seems like an error that the placeholder in my source did not get the corresponding value. As far as I can tell, I am loading values ββfor all placeholders ( x and y_ ).
If you need, I will add a complete log to this issue.
I also found that when I first select mnist, it works (with the following output), but it does not create a TensorBoard render:
Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes. Extracting MNIST_data/train-images-idx3-ubyte.gz Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes. Extracting MNIST_data/train-labels-idx1-ubyte.gz Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes. Extracting MNIST_data/t10k-images-idx3-ubyte.gz Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes. Extracting MNIST_data/t10k-labels-idx1-ubyte.gz Tensor("MergeSummary/MergeSummary:0", shape=TensorShape([]), dtype=string) merged Accuracy at step 0: 0.098 Accuracy at step 10: 0.7404 Accuracy at step 20: 0.8041 Accuracy at step 30: 0.814 ...