【发布时间】:2017-04-05 04:18:13
【问题描述】:
我正在尝试实现一个程序来测试 GPU 设备上的 Tensorflow 性能。 数据测试是 MNIST 数据,使用多层感知器(神经网络)进行监督训练。 我关注了this simple example,但我将性能批次梯度的数量更改为 10000
for i in range(10000) :
batch_xs, batch_ys = mnist.train.next_batch(100)
sess.run(train_step,feed_dict={x : batch_xs, y_ : batch_ys})
if i % 500 == 0:
print(i)
最终,当我使用此代码检查预测准确性时
correct_prediction = tf.equal(tf.argmax(y,1),tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction,"float"))
print(sess.run(accuracy,feed_dict={x:mnist.test.images,y_:mnist.test.labels}))
print(tf.convert_to_tensor(mnist.test.images).get_shape())
事实证明,从 CPU 到 GPU 的准确率是不同的:当 GPU 返回的准确率大约为 0.9xx 而 CPU 仅返回 0.3xx。 有谁知道原因?或者为什么会发生这个问题?
【问题讨论】:
-
TensorBoard 可用于调试此问题。
标签: python tensorflow gpu cpu multi-layer