我遇到了TensorFlow的Deep MNIST for Experts,并希望对其进行调整,以便在gpu上更有效地使用。因为feed dict似乎非常慢,所以我实现了一个输入管道,使用tf.train.shuffle_batch
和FIFOQueue
将数据输入到模型中。你知道吗
Here's a Gist with the stock implementation of the TensorFlow guide和here's a Gist with my attempt at an optimized implementation.
现在在TensorFlow页面上的示例中,经过几千次迭代后,精度很快接近1。但是在我的代码中,除了队列实现是同一个模型之外,精度似乎在~0.05到~0.15之间波动。此外,经过几百次迭代之后,损失达到了2.3左右,并且没有比这减少更多。你知道吗
另一个值得注意的点是:当我与创建的原始批处理和后续迭代中使用的批处理进行比较时,它们看起来是等价的。也许问题出在我的排队上,但我真的不知道如何解决它。如果有人看到我的实现有任何问题,一些指针将不胜感激!你知道吗
找到了解决办法。结果是
tf.train.shuffle_batch
隐式实现了RandomShuffleQueue
。将tf.train.shuffle_batch
的结果加载到FIFOQueue
可能导致FIFOQueue
不更新输入批处理,而标签正在更新,因为它们没有被传递到FIFOQueue
。移除FIFOQueue
完全解决了我的问题。你知道吗相关问题 更多 >
编程相关推荐