tf的公共API。队列的名称空间。
类
按先入先出顺序对元素进行排队的队列实现。继承自:QueueBase
别名:
看到tf.queue。QueueBase获取该类上方法的描述。
1、__init__
__init__(
capacity,
dtypes,
shapes=None,
names=None,
shared_name=None,
name='fifo_queue'
)
创建一个队列,该队列以先入先出的顺序将元素从队列中取出。FIFOQueue具有有限的容量;支持多个并发的生产者和消费者;并提供准确的一次交货。FIFOQueue包含一个包含最多容量元素的列表。每个元素都是一个定长张量元组,张量的d类型由d类型描述,其形状由shapes参数可选地描述。如果指定了shapes参数,则队列元素的每个组件必须具有各自的固定形状。如果未指定,则不同的队列元素可能具有不同的形状,但是不允许使用dequeue_many。
参数:
capacity
:一个整数。可能存储在此队列中的元素数量的上限。shapes
:(可选)具有与dtypes相同长度或没有长度的完全定义的TensorShape对象的列表。names
:(可选)。指定队列中与dtypes相同或没有相同长度的组件的字符串列表。如果指定了dequeue方法,则返回一个名称为键的字典。dtypes
name
name
queue_ref
shapes
close
close(
cancel_pending_enqueues=False,
name=None
)
关闭此队列。这个操作表明,在给定队列中不再有元素进入队列。后续的enqueue和enqueue_many操作将失败。如果队列中保留足够的元素,后续的dequeue和dequeue_many操作将继续成功。随后dequeue和dequeue_许多本来会阻塞等待更多元素的操作(如果没有调用close)现在将立即失败。如果cancel_pending_enqueues为真,所有挂起的请求也将被取消。
参数:
返回值:
dequeue
dequeue(name=None)
从该队列中删除一个元素。如果该操作执行时队列为空,它将阻塞,直到有一个元素要退出队列。在运行时,如果队列是tf.QueueBase,此操作可能会引发错误。在执行之前或执行期间关闭。如果队列已关闭,则队列为空,并且没有可以满足此请求的挂起的入队列操作tf.errors。将会产生OutOfRangeError。如果会话是tf.Session,将报tf.errors.CancelledError错误。
参数:
返回值:
5、dequeue_many
dequeue_many(
n,
name=None
)
从该队列中删除队列并连接n个元素。该操作沿着第0维将队列元素分量张量连接起来,形成单个分量张量。dequeued元组中的所有组件的第0维的大小都是n。如果队列已关闭,且剩下的元素少于n个,则会引发OutOfRange异常。在运行时,如果队列是tf.QueueBase,此操作可能会引发错误。在执行之前或执行期间关闭。如果队列已关闭,则该队列包含的元素少于n个,并且没有任何挂起的enqueue操作可以满足该请求tf.errors。将会产生OutOfRangeError。如果会话是tf.Session,将报tf.errors.CancelledError错误。
参数:
返回值:
6、dequeue_up_to
dequeue_up_to(
n,
name=None
)
从该队列中删除队列并连接n个元素。注意,并非所有队列都支持此操作。如果队列不支持DequeueUpTo,则tf.error。UnimplementedError。该操作沿着第0维将队列元素分量张量连接起来,形成单个分量张量。如果队列没有关闭,则退队列元组中的所有组件的第0维大小都为n。如果队列已关闭,且剩余元素大于0但小于n,则不会引发tf.errors。像tf.QueueBase.dequeue_many这样的OutOfRangeError会立即返回小于n个元素。如果队列已关闭,且队列中还剩0个元素,则出现tf.errors。OutOfRangeError就像dequeue_many一样被抛出。否则,该行为与dequeue_many相同。
参数:
返回值:
enqueue
enqueue(
vals,
name=None
)
将一个元素注册到此队列。如果执行此操作时队列已满,则它将阻塞,直到元素已进入队列。在运行时,如果队列是tf.QueueBase,此操作可能会引发错误。在执行之前或执行期间关闭。如果队列在此操作运行之前关闭,tf.errors。CancelledError将被提升。如果这个操作被阻塞,并且(i)队列被cancel_pending_enqueues=True的关闭操作关闭,或者(ii)如果会话是tf.Session,将报tf.errors.CancelledError错误。
参数:
vals
:张量,张量的列表或元组,或包含要排队的值的字典。返回值:
from_list
from_list(
index,
queues
)
使用队列[索引]中的队列引用创建队列。
参数:
index
:一个整数标量张量,它决定被选中的输入。queues
:QueueBase对象的列表。返回值:
is_closed
is_closed(name=None)
如果队列已关闭,则返回true。如果队列关闭,此操作返回true;如果队列打开,则返回false。
参数:
返回值:
size
size(name=None)
计算此队列中的元素数量。
参数:
返回值:
一个FIFOQueue,它支持通过填充来批量处理可变大小的张量。
继承自:QueueBase
别名:
PaddingFIFOQueue可以包含动态形状的组件,同时还支持dequeue_many。有关详细信息,请参见构造函数。
__init__
__init__(
capacity,
dtypes,
shapes,
names=None,
shared_name=None,
name='padding_fifo_queue'
)
创建一个队列,该队列以先入先出的顺序将元素从队列中取出。一个PaddingFIFOQueue具有有限的容量;支持多个并发的生产者和消费者;并提供准确的一次交货。一个PaddingFIFOQueue包含一个包含最多容量元素的列表。每个元素都是一个定长张量元组,其d类型由d类型描述,其形状由shapes参数描述。必须指定形状参数;队列元素的每个组件必须具有各自的形状。通过将任何形状维度设置为None,可以允许固定秩但大小可变的形状。在这种情况下,输入的形状可能会随着给定的维度而变化,dequeue_many将用零填充给定维度,直到指定批处理中所有元素的最大形状。
参数:
capacity
:一个整数。可能存储在此队列中的元素数量的上限。shapes
:与dtypes长度相同的TensorShape对象列表。TensorShape中包含None值的任何维度都是动态的,并且允许在该维度中以可变大小将值排队。names
:(可选)。指定队列中与dtypes相同或没有相同长度的组件的字符串列表。如果指定了dequeue方法,则返回一个名称为键的字典。可能产生的异常:
ValueError
: If shapes is not a list of shapes, or the lengths of dtypes and shapes do not match, or if names is specified and the lengths of dtypes and names do not match.dtypes
name
name
queue_ref
shape
close
close(
cancel_pending_enqueues=False,
name=None
)
关闭此队列。这个操作表明,在给定队列中不再有元素进入队列。后续的enqueue和enqueue_many操作将失败。如果队列中保留足够的元素,后续的dequeue和dequeue_many操作将继续成功。随后dequeue和dequeue_许多本来会阻塞等待更多元素的操作(如果没有调用close)现在将立即失败。如果cancel_pending_enqueues为真,所有挂起的请求也将被取消。
参数:
返回值:
dequeue
dequeue(name=None)
从该队列中删除一个元素。如果该操作执行时队列为空,它将阻塞,直到有一个元素要退出队列。在运行时,如果队列是tf.QueueBase,此操作可能会引发错误。在执行之前或执行期间关闭。如果队列已关闭,则队列为空,并且没有可以满足此请求的挂起的入队列操作tf.errors。将会产生OutOfRangeError。如果会话是tf.Session,将报tf.errors.CancelledError错误。
参数:
返回值:
5、dequeue_many
dequeue_many(
n,
name=None
)
从该队列中删除队列并连接n个元素。该操作沿着第0维将队列元素分量张量连接起来,形成单个分量张量。dequeued元组中的所有组件的第0维的大小都是n。如果队列已关闭,且剩下的元素少于n个,则会引发OutOfRange异常。在运行时,如果队列是tf.QueueBase,此操作可能会引发错误。在执行之前或执行期间关闭。如果队列已关闭,则该队列包含的元素少于n个,并且没有任何挂起的enqueue操作可以满足该请求tf.errors。将会产生OutOfRangeError。如果会话是tf.Session。如果会话是tf.Session,将报tf.errors.CancelledError错误。
参数:
返回值:
dequeue_up_to
dequeue_up_to(
n,
name=None
)
从该队列中删除队列并连接n个元素。注意,并非所有队列都支持此操作。如果队列不支持DequeueUpTo,则tf.error。UnimplementedError。该操作沿着第0维将队列元素分量张量连接起来,形成单个分量张量。如果队列没有关闭,则退队列元组中的所有组件的第0维大小都为n。如果队列已关闭,且剩余元素大于0但小于n,则不会引发tf.errors。像tf.QueueBase.dequeue_many这样的OutOfRangeError会立即返回小于n个元素。如果队列已关闭,且队列中还剩0个元素,则出现tf.errors。OutOfRangeError就像dequeue_many一样被抛出。否则,该行为与dequeue_many相同。
参数:
返回值:
enqueue
enqueue(
vals,
name=None
)
将一个元素注册到此队列。如果执行此操作时队列已满,则它将阻塞,直到元素已进入队列。在运行时,如果队列是tf.QueueBase,此操作可能会引发错误。在执行之前或执行期间关闭。如果队列在此操作运行之前关闭,tf.errors。CancelledError将被提升。如果这个操作被阻塞,并且(i)队列被cancel_pending_enqueues=True的关闭操作关闭,或者(ii)如果会话是tf.Session,将报tf.errors.CancelledError错误。
参数:
vals
:张量,张量的列表或元组,或包含要排队的值的字典。返回值:
enqueue_many
enqueue_many(
vals,
name=None
)
将零个或多个元素排队到此队列。该操作沿着第0维对每个组件张量进行切片,从而生成多个队列元素。瓦尔斯中的所有张量在第0维中都必须有相同的大小。如果在执行此操作时队列已满,它将阻塞,直到所有元素都进入队列。在运行时,如果队列是tf.QueueBase,此操作可能会引发错误。在执行之前或执行期间关闭。如果队列在此操作运行之前关闭,tf.errors。CancelledError将被提升。如果这个操作被阻塞,并且(i)队列被cancel_pending_enqueues=True的关闭操作关闭,或者(ii)如果会话是tf.Session,将报tf.errors.CancelledError错误。
参数:
vals
:张量,张量的列表或元组,或从队列元素中获取的字典。返回值: