测试程序也是很简单。
首先创建计算图:
with tf.Graph().as_default() as g:
计算图的输入和输出占位与之前反向传播的函数一样:
x = tf.placeholder(tf.float32, [
mnist.test.num_examples,
mnist_lenet5_forward.IMAGE_SIZE,
mnist_lenet5_forward.IMAGE_SIZE,
mnist_lenet5_forward.NUM_CHANNELS])
y_ = tf.placeholder(tf.float32, [None, mnist_lenet5_forward.OUTPUT_NODE])
要注意的是,构建测试图的时候,forward的第二个参数要设为FALSE,表示我们的计算图是用来测试的,所以不用dropout。
y = mnist_lenet5_forward.forward(x, False, None)
后面的恢复过程和准确率计算也是几乎完全一样:
reshaped_x = np.reshape(mnist.test.images, (
mnist.test.num_examples,
mnist_lenet5_forward.IMAGE_SIZE,
mnist_lenet5_forward.IMAGE_SIZE,
mnist_lenet5_forward.NUM_CHANNELS))
accuracy_score = sess.run(accuracy,
feed_dict={x: reshaped_x, y_: mnist.test.labels}) # 计算出测试集上准确率
训练到50000次以上的时候,打印输出的结果表示准确率在百分之九十九左右。
卷积网络的初步构建的讲解到这里就完了。下面是关于更有挑战性的卷积神经网络的构建。
本文详细介绍了如何使用TensorFlow构建卷积神经网络(CNN)进行测试,包括计算图的创建、输入输出的设置、前向传播的定义以及准确率的计算。通过具体实例,展示了在MNIST数据集上实现CNN测试流程的方法,并讨论了高阶CNN的构建挑战。
360

被折叠的 条评论
为什么被折叠?



