I need to display the results of the tensorflow simple net prediction (a histogram of the network predictions), say, for example, for the TensorFlow tutorial code.
The problem is I can't display results of the prediction in a readable format for this purpose (numpy.ndarray would be ideal). Predictions 'y' come up as <tf.Tensor 'Softmax_3:0' shape=(?, 10) dtype=float32>
and so far I haven't found a way of changing this format.
If anyone knows how to do that could you please advise me on that?
I've tried np.array(y)
(still keeps the Tensor format inside of the array and y = tf.Variable([y], expected_shape = [55000,10])
( throws an error TypeError: __init__() got an unexpected keyword argument 'expected_shape'
).
If this is of interest the code looks like that:
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
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)
y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
sess = tf.InteractiveSession()
tf.initialize_all_variables().run()
for _ in range(1000):
batch_xs, batch_ys = mnist.train.next_batch(100)
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))