Spec-Zone.ru › TensorFlow 1.15

tf.train.queue_runner.QueueRunner

Содержит список операций добавления в очередь, каждую из которых необходимо выполнить в отдельном потоке.

Просмотр псевдонимов

Основные псевдонимы

`tf.train.QueueRunner`

Псевдонимы совместимости для миграции

См. Руководство по миграции для получения дополнительной информации.

tf.compat.v1.train.QueueRunner, tf.compat.v1.train.queue_runner.QueueRunner

tf.train.queue_runner.QueueRunner(
    queue=None, enqueue_ops=None, close_op=None, cancel_op=None,
    queue_closed_exception_types=None, queue_runner_def=None, import_scope=None
)

Очереди — удобный механизм TensorFlow для асинхронного вычисления тензоров с использованием нескольких потоков. Например, в стандартной настройке «чтения входных данных» одна группа потоков генерирует имена файлов в очереди; вторая группа потоков читает записи из файлов, обрабатывает их и добавляет тензоры в вторую очередь; третья группа потоков извлекает эти записи входных данных для построения пакетов и запускает их через операции обучения.

При запуске нескольких потоков таким образом возникает несколько тонких проблем: последовательное закрытие очередей по мере исчерпания входных данных, корректное перехват и сообщение об ошибках и т. д.

QueueRunner, в сочетании с Coordinator, помогает справиться с этими проблемами.

Аргументы
queue Queue.
enqueue_ops Список операций добавления в очередь, которые будут выполняться в потоках позже.
close_op Операция закрытия очереди. Ожидающие операции добавления в очередь сохраняются.
cancel_op Операция закрытия очереди и отмены ожидающих операций добавления в очередь.
queue_closed_exception_types Необязательная кортеж типов исключений, указывающих на то, что очередь закрыта, при их возникновении во время операции добавления в очередь. По умолчанию (tf.errors.OutOfRangeError,). Другой распространённый случай — (tf.errors.OutOfRangeError, tf.errors.CancelledError), когда некоторые из операций добавления в очередь могут извлекать данные из других очередей.
queue_runner_def Необязательный протокол-буфер QueueRunnerDef. Если указан, создаёт объект QueueRunner на основе его содержимого. queue_runner_def и другие аргументы являются взаимоисключающими.
import_scope Необязательный string. Имя области видимости, которое нужно добавить. Используется только при инициализации из протокол-буфера.
Возникающие исключения
ValueError Если оба queue_runner_def и queue указаны.
ValueError Если queue или enqueue_ops не предоставлены при отсутствии восстановления из queue_runner_def.
RuntimeError Если включено выполнение Eager.

Совместимость с Eager

QueueRunners не совместимы с выполнением Eager. Вместо этого используйте tf.data для получения данных в вашу модель.

Атрибуты
cancel_op
close_op
enqueue_ops
exceptions_raised Исключение, поднятое, но не обработанное потоками QueueRunner.

Исключения, поднятые в потоках исполнителя очереди, обрабатываются одним из двух способов в зависимости от того, был ли передан Coordinator методу create_threads():

  • С Coordinator, исключения сообщаются координатору и игнорируются потоками QueueRunner.
  • Без Coordinator, исключения перехватываются потоками QueueRunner и становятся доступными в этом свойстве exceptions_raised.
name Строковое имя базовой очереди.
queue
queue_closed_exception_types

Методы

create_threads

Просмотреть исходный код

create_threads(
    sess, coord=None, daemon=False, start=False
)

Создает потоки для выполнения операций добавления в очередь для данной сессии.

Этот метод требует сессии, в которой запущен граф. Он создает список потоков, необязательно запуская их. По одному потоку на каждую операцию, переданную в enqueue_ops.

Аргумент coord — это необязательный координатор, который потоки будут использовать для совместного завершения и сообщения об ошибках. Если координатор задан, этот метод запускает дополнительный поток для закрытия очереди, когда координатор запрашивает остановку.

Если ранее созданные потоки для данной сессии всё ещё работают, новые потоки не будут созданы.

Аргументы
sess Session.
coord Необязательный объект Coordinator для отслеживания ошибок и проверки условий остановки.
daemon Булево значение. Если True сделать потоки демоническими.
start Булево значение. Если True запустить потоки. Если False вызывающий должен вызвать метод start() возвращённых потоков.
Возвращаемое значение
Список потоков.

from_proto

Просмотреть исходный код

@staticmethod
from_proto(
    queue_runner_def, import_scope=None
)

Возвращает объект QueueRunner созданный из queue_runner_def.

to_proto

Просмотреть исходный код

to_proto(
    export_scope=None
)

Преобразует этот QueueRunner в протокол-буфер QueueRunnerDef.

Аргументы
export_scope Необязательная string. Имя области видимости для удаления.
Возвращаемое значение
Протокол-буфер QueueRunnerDef, или None, если Variable не находится в указанной области видимости имени.

© 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/train/queue_runner/QueueRunner

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API