gpt4 book ai didi

python - 如何防止 FIFO 队列有条件挂起

转载 作者:行者123 更新时间:2023-11-30 09:19:23 25 4
gpt4 key购买 nike

FIFO Queue将暂停其 enqueuedequeue分别在队列满或空时起作用。当您只有一个队列时,这不是问题。

我的情况是我有两个队列,我必须在以下一些条件下排队:

run_options = tf.RunOptions(timeout_in_ms=10000)
i1, l1, i2, l2 = produce_sample()

if l1 == l2:
sess.run(enqueue_same_op, feed_dict={x1: i1, y1: l1, x2: i2, y2: l2}, \
options=run_options)
else:
sess.run(enqueue_diff_op, feed_dict={x1: i1, y1: l1, x2: i2, y2: l2})

enqueue_same_openqueue_diff_opqueue_same 的操作和queue_diff分别。

因为 l1<>l2 的概率比l1==l2得多。因此, session 将在 queue_diff 排队时暂停。即使我采用了run_options .

有没有办法获取队列的大小,或者测试队列是否已满?

提前非常感谢您。

最佳答案

Is there a way to get the size of the queue, or test if it is full?

您可以使用size()函数设置队列的大小并测试队列容量

capacity=1000 # your queue capacity
dtype=tf.float32
queue_diff = tf.FIFOQueue(capacity, dtype)
enqueue_op = tf.cond(tf.equal(queue_diff.size(), capacity), lambda:is_full(), lambda: enqueue(queue_diff, enqueue_elements..))

# a function to takecare when the queue is full
def is_full():
return 'Enqueue_Failed'

# a function for enqueue ops
def enqueue(queue, element...):
queue.enqueue(element)
return 'Enqueue_Success'

关于python - 如何防止 FIFO 队列有条件挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45734996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com