TensorFlow 1 version | View source on GitHub |
Base class to enqueue inputs.
tf.keras.utils.SequenceEnqueuer(
sequence, use_multiprocessing=False
)
The task of an Enqueuer is to use parallelism to speed up preprocessing. This is done with processes or threads.
Example:
enqueuer = SequenceEnqueuer(...)
enqueuer.start()
datas = enqueuer.get()
for data in datas:
# Use the inputs; training, evaluating, predicting.
# ... stop sometime.
enqueuer.stop()
The enqueuer.get()
should be an infinite stream of datas.
Methods
get
get()
Creates a generator to extract data from the queue.
Skip the data if it is None
.
Returns:
Generator yielding tuples (inputs, targets)
or (inputs, targets, sample_weights)
.
is_running
is_running()
start
start(
workers=1, max_queue_size=10
)
Starts the handler's workers.
Arguments | |
---|---|
workers
|
Number of workers. |
max_queue_size
|
queue size
(when full, workers could block on put() )
|
stop
stop(
timeout=None
)
Stops running threads and wait for them to exit, if necessary.
Should be called by the same thread which called start()
.
Arguments | |
---|---|
timeout
|
maximum time to wait on thread.join()
|