tf.queue.FIFOQueue
| Просмотреть исходный код на GitHub |
Реализация очереди, которая декьюит элементы в порядке очереди «первый пришёл — первый ушёл».
Наследуется от: QueueBase
tf.queue.FIFOQueue(
capacity,
dtypes,
shapes=None,
names=None,
shared_name=None,
name='fifo_queue'
)
См. tf.queue.QueueBase для описания методов этого класса.
| Аргументы | |
|---|---|
capacity | Целое число. Верхняя граница числа элементов, которые могут быть сохранены в этой очереди. |
dtypes | Список объектов DType. Длина dtypes должна быть равна числу тензоров в каждом элементе очереди. |
shapes | (Необязательно.) Список полностью определённых объектов TensorShape той же длины, что и dtypes, или None. |
names | (Необязательно.) Список строк, именованных компонентов в очереди той же длины, что и dtypes, или None. Если указаны, методы декьюирования возвращают словарь с именами в качестве ключей. |
shared_name | (Необязательно.) Если не пусто, эта очередь будет использоваться совместно под заданным именем в нескольких сеансах. |
name | Необязательное имя для операции очереди. |
| Атрибуты | |
|---|---|
dtypes | Список типов данных для каждого компонента элемента очереди. |
name | Имя базовой очереди. |
names | Список имён для каждого компонента элемента очереди. |
queue_ref | Ссылка на базовый объект очереди. |
shapes | Список форм для каждого компонента элемента очереди. |
Методы
close
close(
cancel_pending_enqueues=False, name=None
)
Закрывает эту очередь.
Эта операция сигнализирует о том, что больше элементов не будут помещаться в заданную очередь. Последующие операции enqueue и enqueue_many завершатся ошибкой. Последующие операции dequeue и dequeue_many будут продолжать выполняться успешно, если в очереди останется достаточно элементов. Впоследствии операции dequeue и dequeue_many, которые в противном случае блокировались бы в ожидании дополнительных элементов (если close не был вызван), теперь завершатся ошибкой немедленно.
Если cancel_pending_enqueues является True, все ожидающие запросы также будут отменены.
| Аргументы | |
|---|---|
cancel_pending_enqueues | (Необязательно.) Булево значение, по умолчанию False (описано выше). |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
| Операция закрытия очереди. |
dequeue
dequeue(
name=None
)
Декевит один элемент из этой очереди.
Если очередь пуста во время выполнения этой операции, она будет заблокирована, пока не будет элемента для декьюирования.
Во время выполнения эта операция может вызвать ошибку, если очередь tf.QueueBase.close до или во время её выполнения. Если очередь закрыта, очередь пуста, и нет ожидающих операций enqueue, которые могут выполнить этот запрос, будет выброшено исключение tf.errors.OutOfRangeError. Если сеанс tf.Session.close, будет выброшено исключение tf.errors.CancelledError.
| Аргументы | |
|---|---|
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
| Кортеж тензоров, которые были декьюированы. |
dequeue_many
dequeue_many(
n, name=None
)
Декевит и конкатенирует n элементов из этой очереди.
Эта операция конкатенирует тензоры компонентов элемента очереди по 0-му измерению, чтобы создать один тензор компонента. Все компоненты в декьюированном кортеже будут иметь размер n в 0-м измерении.
Если очередь закрыта и осталось меньше n элементов, то возбуждается исключение OutOfRange.
Во время выполнения эта операция может вызвать ошибку, если очередь tf.QueueBase.close до или во время её выполнения. Если очередь закрыта, в очереди меньше, чем n элементов, и нет ожидающих операций enqueue, которые могут выполнить этот запрос, будет выброшено исключение tf.errors.OutOfRangeError. Если сеанс tf.Session.close, будет выброшено исключение tf.errors.CancelledError.
| Аргументы | |
|---|---|
n | Скалярный Tensor, содержащий число элементов для декьюирования. |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
| Список конкатенированных тензоров, которые были декьюированы. |
dequeue_up_to
dequeue_up_to(
n, name=None
)
Декевит и конкатенирует n элементов из этой очереди.
Примечание: Эта операция не поддерживается всеми очередями. Если очередь не поддерживает DequeueUpTo, возбуждается исключение tf.errors.UnimplementedError.
Эта операция конкатенирует тензоры компонентов элемента очереди по 0-му измерению, чтобы создать один тензор компонента. Если очередь не была закрыта, все компоненты в декьюированном кортеже будут иметь размер n в 0-м измерении.
Если очередь закрыта и имеется больше, чем 0, но меньше, чем n оставшихся элементов, вместо возбуждения исключения tf.errors.OutOfRangeError как в tf.QueueBase.dequeue_many, возвращаются меньше, чем n элементов немедленно. Если очередь закрыта и осталось 0 элементов в очереди, возбуждается исключение tf.errors.OutOfRangeError так же, как и в dequeue_many. В противном случае поведение идентично dequeue_many.
| Аргументы | |
|---|---|
n | Скалярный Tensor, содержащий число элементов для декьюирования. |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
| Кортеж конкатенированных тензоров, которые были декьюированы. |
enqueue
enqueue(
vals, name=None
)
Помещает один элемент в эту очередь.
Если очередь полна во время выполнения этой операции, она будет заблокирована, пока элемент не будет помещён в очередь.
Во время выполнения эта операция может вызвать ошибку, если очередь tf.QueueBase.close до или во время её выполнения. Если очередь закрыта до запуска этой операции, будет выброшено исключение tf.errors.CancelledError. Если эта операция заблокирована и либо (i) очередь закрыта операцией close с cancel_pending_enqueues=True, либо (ii) сеанс tf.Session.close, будет выброшено исключение tf.errors.CancelledError.
| Аргументы | |
|---|---|
vals | Тензор, список или кортеж тензоров или словарь, содержащий значения для помещения в очередь. |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
| Операция помещения нового кортежа тензоров в очередь. |
enqueue_many
enqueue_many(
vals, name=None
)
Помещает ноль или более элементов в эту очередь.
Эта операция разделяет каждый тензор компонента по 0-му измерению, чтобы создать несколько элементов очереди. Все тензоры в vals должны иметь одинаковый размер в 0-м измерении.
Если очередь полна во время выполнения этой операции, она будет заблокирована, пока все элементы не будут помещены в очередь.
При выполнении, данная операция может вызвать ошибку, если очередь tf.QueueBase.close до или во время её выполнения. Если очередь закрыта до запуска этой операции, будет поднята tf.errors.CancelledError. Если данная операция заблокирована, и либо (i) очередь закрыта операцией закрытия с cancel_pending_enqueues=True, либо (ii) сессия tf.Session.close, будет поднята tf.errors.CancelledError.
| Аргументы | |
|---|---|
vals | Массив, список или кортеж массивов, или словарь, из которых берутся элементы очереди. |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
| Операция, которая вставляет пакет кортежей массивов в очередь. |
from_list
@staticmethod
from_list(
index, queues
)
Создать очередь, используя ссылку на очередь из queues[index].
| Аргументы | |
|---|---|
index | Целочисленный скалярный массив, который определяет выбираемый вход. |
queues | Список объектов QueueBase. |
| Возвращаемое значение | |
|---|---|
Объект QueueBase. |
| Исключения | |
|---|---|
TypeError | Если queues не является списком объектов QueueBase, или когда типы данных queues не одинаковые. |
is_closed
is_closed(
name=None
)
Возвращает true, если очередь закрыта.
Данная операция возвращает true, если очередь закрыта, и false, если очередь открыта.
| Аргументы | |
|---|---|
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
| True, если очередь закрыта, и false, если очередь открыта. |
size
size(
name=None
)
Вычислить количество элементов в этой очереди.
| Аргументы | |
|---|---|
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
| Скалярный массив, содержащий количество элементов в очереди. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/queue/FIFOQueue