tf.queue.PriorityQueue
Реализация очереди, извлекающей элементы в порядке приоритета.
Наследует от: 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 будут выполняться успешно, если в очереди останется достаточно элементов. Последующие операции 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. Если выполнение этой операции заблокировано, а очередь закрывается операцией close с параметром cancel_pending_enqueues=True или сеанс tf.Session.close, будет вызвана ошибка tf.errors.CancelledError.
| Аргументы | |
|---|---|
vals | Тензор, список или кортеж тензоров либо словарь, содержащий добавляемые значения. |
name | Имя операции (необязательно). |
| Возвращает | |
|---|---|
| Операцию, добавляющую в очередь новый кортеж тензоров. |
enqueue_many
enqueue_many(
vals, name=None
)
Добавляет в эту очередь ноль или более элементов.
Эта операция разбивает каждый тензор-компонент вдоль измерения 0, формируя несколько элементов очереди. Все тензоры в vals должны иметь одинаковый размер по измерению 0.
Если во время выполнения этой операции очередь заполнена, выполнение будет заблокировано до добавления всех элементов.
Во время выполнения эта операция может вызвать ошибку, если очередь tf.QueueBase.close до её выполнения или во время выполнения. Если очередь закрыта до запуска этой операции, будет вызвана ошибка tf.errors.CancelledError. Если выполнение этой операции заблокировано, а очередь закрывается операцией close с параметром cancel_pending_enqueues=True или сеанс 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/PriorityQueue