tf.queue.PaddingFIFOQueue
| Просмотреть исходный код на GitHub |
Очередь FIFO, поддерживающая пакетную обработку тензоров переменной длины с применением заполнения.
Наследуется от: QueueBase
tf.queue.PaddingFIFOQueue(
capacity,
dtypes,
shapes,
names=None,
shared_name=None,
name='padding_fifo_queue'
)
Очередь может содержать компоненты с динамической формой, поддерживая dequeue_many. Подробнее см. в конструкторе.
См. tf.queue.QueueBase для описания методов данного класса.
| Аргументы | |
|---|---|
capacity | Целое число. Верхняя граница количества элементов, которые могут быть сохранены в очереди. |
dtypes | Список объектов DType. Длина dtypes должна соответствовать количеству тензоров в каждом элементе очереди. |
shapes | Список объектов TensorShape, с длиной, равной dtypes. Любая размерность в TensorShape с содержащим значением None является динамической и позволяет добавлять значения в очередь с переменным размером по этой размерности. |
names | (Необязательно.) Список имен компонентов в очереди с той же длиной, что и dtypes, или None. Если указано, методы dequeue возвращают словарь с именами в качестве ключей. |
shared_name | (Необязательно.) Если непусто, эта очередь будет совместно использоваться под данным именем между несколькими сессиями. |
name | Необязательное имя для операции очереди. |
| Исключения | |
|---|---|
ValueError | Если shapes не является списком форм, или длины dtypes и shapes не совпадают, или если имена указаны, и длины dtypes и имен не совпадают. |
| Атрибуты | |
|---|---|
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/PaddingFIFOQueue