tf.queue.RandomShuffleQueue
| Просмотреть исходный код на GitHub |
Реализация очереди, из которой элементы извлекаются в случайном порядке.
Наследуется от: QueueBase
tf.queue.RandomShuffleQueue(
capacity, min_after_dequeue, dtypes, shapes=None, names=None, seed=None,
shared_name=None, name='random_shuffle_queue'
)
Описание методов этого класса см. в tf.queue.QueueBase.
| Аргументы | |
|---|---|
capacity | Целое число. Максимальное количество элементов, которое может храниться в этой очереди. |
min_after_dequeue | Целое число (описано выше). |
dtypes | Список объектов DType. Длина dtypes должна быть равна количеству тензоров в каждом элементе очереди. |
shapes | (Необязательно.) Список полностью определённых объектов TensorShape с такой же длиной, как у dtypes, или None. |
names | (Необязательно.) Список имен компонентов в очереди с такой же длиной, как у dtypes, или None. Если указано, методы dequeue возвращают словарь с именами в качестве ключей. |
seed | Целое число Python. Используется для создания случайного начального значения. См. tf.compat.v1.set_random_seed для получения дополнительной информации о поведении. |
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, которые в противном случае заблокируются, ожидая новых элементов (если 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
)
Добавляет ноль или более элементов в эту очередь.
Данная операция разделяет каждый компонент тензора по 0-й размерности, чтобы создать несколько элементов очереди. Все тензоры в vals должны иметь одинаковый размер в 0-й размерности.
Если очередь полная во время выполнения этой операции, она будет блокироваться, пока все элементы не будут внесены в очередь.
Во время выполнения эта операция может вызвать ошибку, если очередь 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.4/api_docs/python/tf/queue/RandomShuffleQueue