我正在尝试处理在神经网络中连续到达的数据。为了优化整个过程,我有:
我设法使它起作用,但这是基本的,我想知道这种方法是否有更好的实现。我专注于队列的使用者线程。
操作定义:
self.queue = tf.FIFOQueue ...
self.input_dequeue_op = self.queue.dequeue_many(
tf.maximum(
tf.constant(1),
tf.minimum(
tf.constant(MAX_BATCH_SIZE),
self.queue.size()
)
)
)
消费者主题:
with network.sess.as_default():
while True:
results = network.sess.run(self.input_dequeue_op)
基本上,我打算将最大数量的当前在队列中的元素发送到神经网络,直到MAX_BATCH_SIZE(这是可以同时处理的最大值)。
该操作获得我可以加载的最大实际批次。 在我看来,这是一种非常基本的形式,我也尝试过直接使用它:
self.input_dequeue_op = self.queue.dequeue_up_to(tf.constant(MAX_BATCH_SIZE))
但是即使添加了元素,队列也被无限期地阻塞。
还有另一种更好的方法吗?