РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
489 of 824 menu

Метод interleave

Метод interleave класса Dataset применяет заданную функцию к каждому элементу исходного датасета. Функция должна возвращать вложенный датасет. Полученные датасеты объединяются в один, а их элементы чередуются в порядке следования. Первым параметром передаётся функция преобразования, вторым - размер блока cycle_length, третьим - размер блока block_length, четвёртым - количество потоков num_parallel_calls.

Синтаксис

Dataset.interleave(map_func, cycle_length, [block_length], [num_parallel_calls])

Пример

Давайте создадим датасет из чисел и применим к каждому элементу функцию, возвращающую датасет из повторений этого числа. Параметр cycle_length задаёт, сколько вложенных датасетов чередуются одновременно:

import tensorflow as tf def repeat_value(x): return tf.data.Dataset.from_tensors(x).repeat(2) ds = tf.data.Dataset.from_tensor_slices([1, 2, 3]) res = ds.interleave(repeat_value, cycle_length=2) for elem in res: print(elem.numpy())

Результат выполнения кода:

1 2 1 2 3 3

Пример

Давайте применим метод interleave к датасету строк. Функция преобразования создаст для каждой строки датасет из её символов:

import tensorflow as tf def split_chars(s): return tf.data.Dataset.from_tensor_slices(tf.strings.bytes_split(s)) ds = tf.data.Dataset.from_tensor_slices(['abcde', 'model.keras']) res = ds.interleave(split_chars, cycle_length=2) for elem in res: print(elem.numpy().decode('utf-8'))

Результат выполнения кода:

a m b o c d e l . k e r a s

Пример

Давайте укажем параметр block_length, чтобы из каждого вложенного датасета подряд бралось несколько элементов перед переключением на следующий:

import tensorflow as tf def repeat_value(x): return tf.data.Dataset.from_tensors(x).repeat(3) ds = tf.data.Dataset.from_tensor_slices([1, 2, 3]) res = ds.interleave(repeat_value, cycle_length=2, block_length=2) for elem in res: print(elem.numpy())

Результат выполнения кода:

1 1 2 2 1 3 3 2 3

Смотрите также

  • метод flat_map,
    который применяет функцию и объединяет датасеты подряд
  • метод map,
    который применяет функцию к каждому элементу датасета
  • метод concatenate,
    который объединяет два датасета в один
  • метод batch,
    который объединяет элементы датасета в пакеты
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить