tf.data.experimental.parallel_interleave
Параллельная версия преобразования Dataset.interleave(). (устарело)
tf.data.experimental.parallel_interleave(
map_func,
cycle_length,
block_length=1,
sloppy=False,
buffer_output_elements=None,
prefetch_input_elements=None
)
parallel_interleave() отображает map_func по своему входу, создавая вложенные наборы данных и возвращая их переплетенные элементы. В отличие от tf.data.Dataset.interleave, она получает элементы из cycle_length вложенных наборов данных параллельно, что увеличивает производительность, особенно при наличии медленных узлов. Кроме того, аргумент sloppy может использоваться для повышения производительности, ослабляя требование о том, что выходные данные должны генерироваться в детерминированном порядке, и позволяя реализации пропускать вложенные наборы данных, элементы которых недоступны при запросе.
Пример использования:
# Preprocess 4 files concurrently.
filenames = tf.data.Dataset.list_files("/path/to/data/train*.tfrecords")
dataset = filenames.apply(
tf.data.experimental.parallel_interleave(
lambda filename: tf.data.TFRecordDataset(filename),
cycle_length=4))
| Аргументы | |
|---|---|
map_func | Функция, отображающая вложенную структуру тензоров в Dataset. |
cycle_length | Количество входных Dataset, которые необходимо переплетать параллельно. |
block_length | Количество последовательных элементов, которые необходимо извлечь из входного Dataset перед переходом к следующему входному Dataset. |
sloppy | Логическое значение, определяющее, следует ли пожертвовать детерминизмом ради производительности, разрешив производство элементов вне порядка. Если sloppy равно None, используется параметр набора данных tf.data.Options.deterministic (True по умолчанию) для определения, следует ли применять детерминированный порядок. |
buffer_output_elements | Количество элементов, которые должен буферизовать каждый итератор, переплетаемый (аналогично преобразованию .prefetch() для каждого переплетенного итератора). |
prefetch_input_elements | Количество входных элементов, которые нужно преобразовать в итераторы, прежде чем они понадобятся для переплетения. |
| Возвращаемое значение | |
|---|---|
Функция преобразования Dataset, которую можно передать в tf.data.Dataset.apply. |
© 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/data/experimental/parallel_interleave