tf.compat.v1.train.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
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, обрабатываются одним из двух способов в зависимости от того, был ли передан
|
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