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