tf.queue.PriorityQueue
| Просмотреть исходный код на GitHub |
Реализация очереди, которая декьюит элементы в приоритетном порядке.
Наследуется от: QueueBase
tf.queue.PriorityQueue(
capacity, types, shapes=None, names=None, shared_name=None,
name='priority_queue'
)
См. tf.queue.QueueBase для описания методов этого класса.
| Аргументы | |
|---|---|
capacity | Целое число. Верхняя граница числа элементов, которые могут храниться в этой очереди. |
types | Список объектов DType. Длина types должна равняться числу тензоров в каждом элементе очереди, за исключением первого элемента с приоритетом. Первый тензор в каждом элементе — это приоритет, который должен быть типа int64. |
shapes | (Необязательно.) Список полностью определённых объектов TensorShape, с длиной, равной длине types, или 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 продолжат выполняться успешно, если в очереди останется достаточно элементов. Последующие операции декьюирования и декьюирования с помощью дескриптора, которые в противном случае блокировались бы, ожидая дополнительных элементов (если 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.3/api_docs/python/tf/queue/PriorityQueue