我试图在CPU机器上运行以下代码:
HubSection
我基本上创建了一些虚拟功能和目标(用于分类任务),将数据推送到TF FIFO队列并关闭队列以模拟我在完全成熟的系统代码中需要的一些行为。 / p>
由于FIFO队列已关闭,我希望dequeue()函数在队列变空后抛出tf.errors.OutOfRangeError异常,如下所述 https://www.tensorflow.org/versions/r0.11/api_docs/python/io_ops.html#queues
这应该在迭代7之后发生,因为我们在特征/目标数据中有8个元素。然而,该程序只是一直挂着 - 我想是因为一些阻塞调用。
我在这里做错了什么?
RCB
答案 0 :(得分:1)
代码中的fifo.close()
调用实际上并不关闭队列:而是返回tf.Operation
,运行时将关闭队列。如果使用以下代码替换它,您应该按预期看到异常:
close_op = fifo.close()
sess.run(close_op)
# Now `sess.run(data)` will return values until all of the elements in the queue
# have been dequeued.