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