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. Если указано, методы dequeue возвращают словарь с именами в качестве ключей. |
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/r1.15/api_docs/python/tf/queue/PriorityQueue