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 на эквивалент в TensorFlow v2. См. Руководство по миграции TensorFlow v1 в TensorFlow v2 для инструкций по миграции остальной части вашего кода.

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

Описание

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

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

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

Args
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. Область именования для добавления. Используется только при инициализации из протокольного буфера.
Raises
ValueError Если оба queue_runner_def и queue заданы.
ValueError Если queue или enqueue_ops не заданы при отсутствии восстановления из queue_runner_def.
RuntimeError Если включено eager выполнение.
Атрибуты
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 — это необязательный координатор, который потоки будут использовать для совместного завершения и сообщения об исключениях. Если координатор задан, этот метод запускает дополнительный поток для закрытия очереди, когда координатор запросит остановку.

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

Args
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.

Args
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