Spec-Zone.ru › TensorFlow 2.3

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) вычислением

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/r2.3/api_docs/python/tf/compat/v1/train/QueueRunner

Spec-Zone.ru

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