tf.keras.utils.SequenceEnqueuer
| Просмотреть исходный код на GitHub |
Базовый класс для очереди ввода.
tf.keras.utils.SequenceEnqueuer(
sequence, use_multiprocessing=False
)
Задача Enqueuer — ускорить предварительную обработку с помощью параллелизма. Это делается с помощью процессов или потоков.
Пример:
enqueuer = SequenceEnqueuer(...)
enqueuer.start()
datas = enqueuer.get()
for data in datas:
# Use the inputs; training, evaluating, predicting.
# ... stop sometime.
enqueuer.stop()
enqueuer.get() должен быть бесконечным потоком данных.
Методы
get
get()
Создаёт генератор для извлечения данных из очереди.
Пропускает данные, если они None. Возвращает: генератор, возвращающий кортежи (inputs, targets) или (inputs, targets, sample_weights).
is_running
is_running()
start
start(
workers=1, max_queue_size=10
)
Запускает рабочие потоки обработчика.
| Аргументы | |
|---|---|
workers | Количество рабочих потоков. |
max_queue_size | размер очереди (если она полная, рабочие потоки могут заблокироваться на put()) |
stop
stop(
timeout=None
)
Останавливает работающие потоки и ждёт их завершения, если необходимо.
Должен вызываться тем же потоком, который вызвал start().
| Аргументы | |
|---|---|
timeout | максимальное время ожидания thread.join() |
© 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/keras/utils/SequenceEnqueuer