Spec-Zone.ru › TensorFlow

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
)

Миграция на TF2

Внимание: Этот API предназначен для TensorFlow v1. Продолжайте читать, чтобы узнать, как перейти с этого API на эквивалентный API TensorFlow v2. Инструкции по переносу остальной части кода см. в руководстве по миграции с TensorFlow v1 на TensorFlow v2.

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

Описание

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

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

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

Аргументы
queue A 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 execution.
Атрибуты
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 не находится в указанной области имен.

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

Spec-Zone.ru

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