tf.queue.RandomShuffleQueue
Реализация очереди, которая извлекает элементы в случайном порядке.
Наследуется от: 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 элементов из этой очереди.
Эта операция конкатенирует тензоры компонентов элемента очереди по размеру 0, чтобы создать один тензор компонента. Все компоненты в извлечённом кортеже будут иметь размер n в размерности 0.
Если очередь закрыта и в ней осталось меньше чем 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.
Эта операция конкатенирует тензоры компонентов элемента очереди по размеру 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) очередь закрыта операцией закрытия с 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 | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
| Скалярный тензор, содержащий количество элементов в очереди. |
© 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/RandomShuffleQueue