tf.raw_ops.ParallelInterleaveDatasetV4
Создаёт набор данных, который применяет f к результатам input_dataset.
tf.raw_ops.ParallelInterleaveDatasetV4(
input_dataset, other_arguments, cycle_length, block_length,
buffer_output_elements, prefetch_input_elements, num_parallel_calls, f,
output_types, output_shapes, deterministic='default', name=None
)
Полученный набор данных похож на InterleaveDataset, за исключением того, что набор данных будет получать записи из переплетённых наборов данных параллельно.
Интерфейс Python API tf.data создаёт экземпляры этого оператора из Dataset.interleave(), когда параметр num_parallel_calls этого метода устанавливается в любое значение, кроме None.
По умолчанию выходной набор данных будет детерминированным, что может привести к блокированию набора данных, если следующий элемент данных для возврата недоступен. Чтобы избежать блокировки в начале очереди, можно установить атрибут deterministic в «false» или оставить его по умолчанию и установить параметр experimental_deterministic в tf.data.Options в False. Это может улучшить производительность за счёт недетерминированности.
| Аргументы | |
|---|---|
input_dataset | Tensor типа variant. Набор данных, генерирующий поток аргументов для функции f. |
other_arguments | Список объектов Tensor. Дополнительные аргументы для передачи в f помимо тех, которые генерируются input_dataset. Вычисляется один раз при создании набора данных. |
cycle_length | Tensor типа int64. Количество наборов данных (каждый создаётся путём применения f к элементам input_dataset), среди которых ParallelInterleaveDatasetV2 будет циклически переходить по кругу. |
block_length | Tensor типа int64. Количество элементов за раз для генерации из каждого переплетённого вызова набора данных, возвращаемого f. |
buffer_output_elements | Tensor типа int64. Количество элементов, которые каждый интерлинируемый итератор должен буферизовать (аналогично преобразованию .prefetch() для каждого интерлинируемого итератора). |
prefetch_input_elements | Tensor типа int64. Определяет количество итераторов для предварительной выборки, позволяя буферам нагреваться и данные предварительно выбираться без блокировки основного потока. |
num_parallel_calls | Tensor типа int64. Определяет количество потоков, которые должны использоваться для параллельного получения данных из входных наборов данных. Постоянная Python API tf.data.experimental.AUTOTUNE может использоваться для указания того, что уровень параллелизма должен настраиваться автоматически. |
f | Функция, декорированная @Defun. Функция, отображающая элементы input_dataset, соединённые с other_arguments, на вариант набора данных, содержащий элементы, соответствующие output_types и output_shapes. |
output_types | Список tf.DTypes, длина которого >= 1. |
output_shapes | Список форм (каждая — tf.TensorShape или список ints), длина которого >= 1. |
deterministic | Необязательный string. По умолчанию "default". Строка, указывающая уровень детерминизма на уровне оператора. Детерминированность определяет, разрешено ли интерлинированию возвращать элементы вне порядка, если следующий возвращаемый элемент недоступен, но позже появляется доступный элемент. Доступные варианты — «true», «false» и «default». «default» указывает, что детерминизм должен определяться параметром experimental_deterministic параметра tf.data.Options. |
name | Имя операции (необязательно). |
| Возвращаемые значения | |
|---|---|
Tensor типа variant. |
© 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.3/api_docs/python/tf/raw_ops/ParallelInterleaveDatasetV4