tf.contrib.staging.StagingArea
Класс для постановки в очередь входных данных. Гарантии упорядочивания нет.
tf.contrib.staging.StagingArea(
dtypes, shapes=None, names=None, shared_name=None, capacity=0, memory_limit=0
)
A StagingArea — это структура данных TensorFlow, которая хранит тензоры на нескольких шагах и предоставляет операции для помещения и извлечения тензоров.
Каждый элемент StagingArea представляет собой кортеж из одного или нескольких тензоров, где каждый компонент кортежа имеет статический тип и может иметь статическую форму.
Ёмкость StagingArea может быть ограниченной или неограниченной. Она поддерживает нескольких одновременных производителей и потребителей; и обеспечивает доставку ровно один раз.
Каждый элемент StagingArea представляет собой кортеж фиксированной длины тензоров, типы которых описаны параметром dtypes, а формы — необязательным параметром shapes.
Если задан параметр shapes, каждый компонент элемента области постановки в очередь должен иметь соответствующую фиксированную форму. Если он не указан, различные элементы могут иметь различные формы.
Её можно настроить с ёмкостью, в этом случае put(values) будет блокировать выполнение, пока не освободится место.
Аналогично, её можно настроить с пределом памяти, который будет блокировать put(values), пока не освободится место. Это в основном полезно для ограничения количества тензоров на устройствах, таких как графические процессоры.
Все команды get() и peek() блокируют выполнение, если запрашиваемые данные отсутствуют в области постановки в очередь.
| Args | |
|---|---|
dtypes | Список типов. Длина dtypes должна быть равна числу тензоров в каждом элементе. |
shapes | (Необязательно.) Ограничения на формы тензоров в элементе. Список кортежей форм или None. Этот список имеет ту же длину, что и dtypes. Если форма каких-либо тензоров в элементе ограничена, все должны быть; формы могут быть None, если формы не должны быть ограничены. |
names | (Необязательно.) При предоставлении, методы get() и put() будут использовать словари с этими именами в качестве ключей. Должно быть None или список или кортеж той же длины, что и dtypes. |
shared_name | (Необязательно.) Имя, используемое для общего объекта. Передавая одно и то же имя двум различным объектам Python, они будут использовать общую область постановки в очередь. Должно быть строкой. |
capacity | (Необязательно.) Максимальное число элементов. Целое число. Если ноль, область постановки в очередь не ограничена. |
memory_limit | (Необязательно.) Максимальное число байтов всех тензоров в области постановки в очередь. Целое число. Если ноль, область постановки в очередь не ограничена. |
| Raises | |
|---|---|
ValueError | Если один из аргументов некорректен. |
| Attributes | |
|---|---|
capacity | Максимальное число элементов этой области постановки в очередь. |
dtypes | Список типов для каждого компонента элемента области постановки в очередь. |
memory_limit | Максимальное число байтов этой области постановки в очередь. |
name | Имя области постановки в очередь. |
names | Список имён для каждого компонента элемента области постановки в очередь. |
shapes | Список форм для каждого компонента элемента области постановки в очередь. |
Методы
clear
clear(
name=None
)
Очищает область постановки в очередь.
| Args | |
|---|---|
name | Имя операции (необязательно) |
| Returns | |
|---|---|
| Созданная операция |
get
get(
name=None
)
Извлекает один элемент из этой области постановки в очередь.
Если область постановки в очередь пуста во время выполнения этой операции, она будет блокироваться до тех пор, пока не появится элемент для декьюинга.
Обратите внимание, что в отличие от других операций, которые могут блокироваться, таких как операции декьюинга очереди, это может помешать выполнению другой работы. Чтобы избежать этого, предполагается, что это будет вызываться только тогда, когда уже будет доступен элемент. Одним из способов сделать это в цикле обучения является запуск вызова put() во время сессии warmup.run, а затем вызов get() и put() на каждом последующем шаге.
Расположение возвращаемого тензора будет определяться текущим контекстом устройства при вызове этой функции.
| Args | |
|---|---|
name | Имя операции (необязательно). |
| Returns | |
|---|---|
| Кортеж тензоров, который был получен. |
peek
peek(
index, name=None
)
Просматривает элемент в области постановки в очередь.
Если область постановки в очередь слишком мала для хранения элемента по указанному индексу, она будет блокироваться до тех пор, пока не будет вставлено достаточно элементов для завершения операции.
Расположение возвращаемого тензора будет определяться текущим контекстом устройства при вызове этой функции.
| Args | |
|---|---|
index | Индекс тензора в области постановки в очередь для поиска. |
name | Имя операции (необязательно). |
| Returns | |
|---|---|
| Кортеж тензоров, которые были получены. |
put
put(
values, name=None
)
Создаёт операцию, которая помещает значение в область постановки в очередь.
Эта операция будет блокироваться, если область постановки в очередь достигла своей ёмкости.
| Args | |
|---|---|
values | Один тензор, список или кортеж тензоров или словарь со значениями тензоров. Количество элементов должно совпадать с длиной списка, предоставленного аргументу dtypes при создании StagingArea. |
name | Имя операции (необязательно). |
| Returns | |
|---|---|
| Созданная операция. |
| Raises | |
|---|---|
ValueError | Если количество или тип входных данных не соответствуют области постановки в очередь. |
size
size(
name=None
)
Возвращает количество элементов в области постановки в очередь.
| Args | |
|---|---|
name | Имя операции (необязательно) |
| Returns | |
|---|---|
| Созданная операция |
© 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/contrib/staging/StagingArea