tf.data.experimental.parallel_interleave
| Просмотреть исходный код на GitHub |
Параллельная версия преобразования 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/versions/r2.9/api_docs/python/tf/data/experimental/parallel_interleave