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. Если указаны, методы извлечения возвращают словарь с именами в качестве ключей. |
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 до или во время её выполнения. Если очередь закрыта, она пуста и нет ожидающих операций добавления, которые могут выполнить этот запрос, будет поднято исключение 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) очередь закрывается операцией close с 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 | Имя операции (необязательно). |
| Возвращаемые значения | |
|---|---|
| Скалярный тензор, содержащий количество элементов в очереди. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/queue/PaddingFIFOQueue