如何在 TensorFlow 中评估 MNIST 测试数据期间从每个输出节点获取值?
How to get the value from each output-node during eval MNIST testdata in TensorFlow?
我使用 TensorFlow 训练卷积神经网络 (CNN)。训练完成后,我使用以下代码计算准确率:
...
correct = tf.equal(tf.argmax(prediction, 1), tf.argmax(y, 1))
accuracy = tf.reduce_mean(tf.cast(correct, tf.float32))
eval_batch_size = 1
good = 0
total = 0
for i in range(int(mnist.test.num_examples/eval_batch_size)):
testSet = mnist.test.next_batch(eval_batch_size, shuffle=False)
good += accuracy.eval(feed_dict={ x: testSet[0], y: testSet[1]})
total += testSet[0].shape[0]
accuracy_eval = good/total
对于“好”,当正确检测到测试图像时,我得到值 1.0,如果检测不到,则得到值 0.0。
我想获取所有十个输出节点的值。例如,我评估带有手写“8”的测试图像,因此数字“8”的输出节点可能为 0.6,数字“3”的输出节点为 0.3,“5”的输出节点为 0.05,最后一个 0.05 传播在其他七个输出节点上。
那么我如何在 TensorFlow 中获得每个测试图像的所有这十个值?
您可以通过添加以下行来做到这一点:
pred=prediction.eval(feed_dict={ x: testSet[0], y: testSet[1]})
紧接着
testSet = mnist.test.next_batch(eval_batch_size, shuffle=False)
那么pred
就是一个包含1个概率向量的数组,这就是你感兴趣的向量
我使用 TensorFlow 训练卷积神经网络 (CNN)。训练完成后,我使用以下代码计算准确率:
...
correct = tf.equal(tf.argmax(prediction, 1), tf.argmax(y, 1))
accuracy = tf.reduce_mean(tf.cast(correct, tf.float32))
eval_batch_size = 1
good = 0
total = 0
for i in range(int(mnist.test.num_examples/eval_batch_size)):
testSet = mnist.test.next_batch(eval_batch_size, shuffle=False)
good += accuracy.eval(feed_dict={ x: testSet[0], y: testSet[1]})
total += testSet[0].shape[0]
accuracy_eval = good/total
对于“好”,当正确检测到测试图像时,我得到值 1.0,如果检测不到,则得到值 0.0。
我想获取所有十个输出节点的值。例如,我评估带有手写“8”的测试图像,因此数字“8”的输出节点可能为 0.6,数字“3”的输出节点为 0.3,“5”的输出节点为 0.05,最后一个 0.05 传播在其他七个输出节点上。
那么我如何在 TensorFlow 中获得每个测试图像的所有这十个值?
您可以通过添加以下行来做到这一点:
pred=prediction.eval(feed_dict={ x: testSet[0], y: testSet[1]})
紧接着
testSet = mnist.test.next_batch(eval_batch_size, shuffle=False)
那么pred
就是一个包含1个概率向量的数组,这就是你感兴趣的向量