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 элементов из этой очереди.
Эта операция конкатенирует тензоры компонентов элемента очереди по 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) очередь закрыта операцией 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/RandomShuffleQueue