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 перед или во время её выполнения. Если очередь закрыта, очередь пуста, и нет ожидающих операций enqueue, которые могут выполнить этот запрос, будет выброшена ошибка tf.errors.OutOfRangeError. Если сессия tf.Session.close, будет выброшена ошибка tf.errors.CancelledError.
| Аргументы | |
|---|---|
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
| Кортеж тензоров, который был извлечен. |
dequeue_many
dequeue_many(
n, name=None
)
Извлекает и конкатенирует n элементов из этой очереди.
Эта операция конкатенирует компоненты тензоров элементов очереди вдоль нулевой размерности, чтобы создать один компонентный тензор. Все компоненты в извлечённом кортеже будут иметь размер n в нулевой размерности.
Если очередь закрыта и в ней осталось меньше n элементов, то возникает исключение OutOfRange.
Во время выполнения эта операция может вызвать ошибку, если очередь tf.QueueBase.close перед или во время ее выполнения. Если очередь закрыта, в ней содержится меньше n элементов, и нет ожидающих операций enqueue, которые могут выполнить этот запрос, будет выброшена ошибка 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.
Эта операция конкатенирует компоненты тензоров элементов очереди вдоль нулевой размерности, чтобы создать один компонентный тензор. Если очередь не закрыта, все компоненты в извлеченном кортеже будут иметь размер n в нулевой размерности.
Если очередь закрыта и в ней осталось более 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 | Название операции (необязательно). |
| Возвращает | |
|---|---|
| Скалярный тензор, содержащий количество элементов в очереди. |
© 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/versions/r2.9/api_docs/python/tf/queue/RandomShuffleQueue