Spec-Zone.ru › TensorFlow 2.4

tf.compat.v1.train.QueueRunner

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

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

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

Дополнительные сведения см. в руководстве по миграции.

tf.compat.v1.train.queue_runner.QueueRunner

tf.compat.v1.train.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

QueueRunner не совместимы с eager-вычислением. Используйте вместо этого tf.data для получения данных в вашей модели.

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

Возбуждённые в потоках 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/r2.4/api_docs/python/tf/compat/v1/train/QueueRunner

Spec-Zone.ru

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