tf.queue.FIFOQueue
Реализация очереди, из которой элементы извлекаются в порядке «первым пришёл — первым ушёл».
Наследуется от: 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, которые в противном случае блокировались бы в ожидании новых элементов (если бы очередь не была закрыта), немедленно завершатся с ошибкой.
Если 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/FIFOQueue