2017-08-17 39 views
0

我遇到了TensorFlow的Deep MNIST for Experts,并希望使其适应更高效的GPU使用。由于feed_dict似乎非常慢,我使用tf.train.shuffle_batchFIFOQueue实现了一个输入流水线,将数据输入到模型中。使用队列实现TensorFlow的没有feed_dict的MNIST示例的问题

Here's a Gist with the stock implementation of the TensorFlow guidehere's a Gist with my attempt at an optimized implementation.

现在在TensorFlow页面上的例子,准确度相当快几千次迭代后接近1。然而在我的代码中,除了队列实现是同一个模型外,准确度似乎在〜0.05和〜0.15之间波动。此外,经过几百次迭代后,损耗达到2.3左右,并没有远远低于这个值。

另一个值得注意的问题是:当我对原始批次和后续迭代中使用的批次进行比较时,它们看起来是等价的。也许问题在于我的排队/出队,但我不确定如何解决它。如果有人看到我的实现的任何问题,一些指针将不胜感激!

回答

0

找到解决方案。发现tf.train.shuffle_batch隐式实现了RandomShuffleQueue。将tf.train.shuffle_batch的结果加载到FIFOQueue可能导致FIFOQueue不更新输入批处理,而标签正在更新,因为它们未被传递到FIFOQueue。删除FIFOQueue完全解决了我的问题。

相关问题