我正在训练一个错综复杂的神经网络,我的代码表现非常不同,这取决于我是否注释掉这一行:
print("validation accuracy %g" % accuracy.eval(feed_dict={x: validation_predictors, y_: validation_targets, keep_prob: 1.0}))
当此行被注释掉时,TensorFlow非常流畅,消耗大约8 GB。如果没有注释掉这一行,TensorFlow会占用整个系统的所有内存,而SIGKILL会以137返回码(内存不足错误)终止进程。我的火车数据集是32620条记录,我的验证数据集(导致错误的数据集)只有5292条记录。
我在Python 3.4.4中使用TensorFlow(0.9.0)和numpy(1.11.1)。我有一个2.5 GB的数据集。我正在运行OSX Yosemite 10.10,我的机器上有一个16 GB的ram。
为什么这个微小的验证数据集会炸毁我的机器以及我的代码出了什么问题?
答案 0 :(得分:3)
尝试这样的事情:
for i in xrange(10):
testSet = mnist.test.next_batch(500)
print("test accuracy %g" % accuracy.eval(feed_dict={x: testSet[0], y_: testSet[1], keep_prob: 1.0}))