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. Если этот параметр задан, методы извлечения из очереди возвращают словарь, в котором имена используются в качестве ключей. |
shared_name | (Необязательно.) Если указано непустое значение, эта очередь будет доступна в нескольких сеансах под заданным именем. |
name | Необязательное имя операции с очередью. |
| Вызывает исключения | |
|---|---|
ValueError | Если shapes не является списком форм, длины dtypes и shapes не совпадают либо задан names и длины dtypes и names не совпадают. |
| Атрибуты | |
|---|---|
dtypes | Список типов данных каждого компонента элемента очереди. |
name | Имя базовой очереди. |
names | Список имен каждого компонента элемента очереди. |
queue_ref | Ссылка на базовую очередь. |
shapes | Список форм каждого компонента элемента очереди. |
Методы
close
close(
cancel_pending_enqueues=False, name=None
)
Закрывает эту очередь.
Эта операция сигнализирует, что в указанную очередь больше нельзя добавлять элементы. Последующие операции enqueue и enqueue_many завершатся ошибкой. Последующие операции dequeue и dequeue_many продолжат выполняться успешно, если в очереди останется достаточно элементов. После этого операции dequeue и dequeue_many, которые в противном случае блокировались бы в ожидании новых элементов (если бы очередь не была закрыта), немедленно завершатся ошибкой.
Если 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
)
Добавляет в эту очередь ноль или более элементов.
Эта операция разбивает каждый тензор-компонент вдоль измерения 0, формируя несколько элементов очереди. Все тензоры в vals должны иметь одинаковый размер по измерению 0.
Если во время выполнения этой операции очередь заполнена, операция будет заблокирована до добавления всех элементов.
Во время выполнения эта операция может вызвать ошибку, если очередь tf.QueueBase.close до начала или в ходе ее выполнения. Если очередь закрыта до запуска этой операции, будет вызвано исключение tf.errors.CancelledError. Если эта операция заблокирована и (i) очередь закрыта операцией close с параметром 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