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

Метод shuffle класса Dataset

Метод shuffle класса Dataset случайным образом перемешивает элементы датасета. Первым параметром передаётся размер буфера buffer_size, в пределах которого происходит перемешивание. Вторым необязательным параметром можно передать seed для воспроизводимости результата, третьим - reshuffle_each_iteration, который определяет, будет ли порядок меняться при каждой новой итерации. Метод возвращает новый объект Dataset.

Синтаксис

Dataset.shuffle(buffer_size, [seed], [reshuffle_each_iteration])

Пример

Давайте создадим датасет из тензора и перемешаем его элементы:

import tensorflow as tf tf.random.set_seed(0) ds = tf.data.Dataset.from_tensor_slices([1, 2, 3, 4, 5]) ds_shuffled = ds.shuffle(buffer_size=5) for item in ds_shuffled: print(item.numpy())

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

1 5 3 2 4

Пример

Давайте зададим seed, чтобы перемешивание было воспроизводимым:

import tensorflow as tf ds = tf.data.Dataset.from_tensor_slices([1, 2, 3, 4, 5]) ds_shuffled = ds.shuffle(buffer_size=5, seed=42) for item in ds_shuffled: print(item.numpy())

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

3 4 2 5 1

Пример

Давайте перемешаем элементы дважды, чтобы увидеть разный порядок при повторной итерации:

import tensorflow as tf tf.random.set_seed(0) ds = tf.data.Dataset.from_tensor_slices([1, 2, 3, 4, 5]) ds_shuffled = ds.shuffle(buffer_size=5) print("First iteration:") for item in ds_shuffled: print(item.numpy()) print("Second iteration:") for item in ds_shuffled: print(item.numpy())

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

"First iteration:" 1 5 3 2 4 "Second iteration:" 2 3 5 1 4

Пример

Давайте отключим перемешивание при повторной итерации с помощью reshuffle_each_iteration:

import tensorflow as tf tf.random.set_seed(0) ds = tf.data.Dataset.from_tensor_slices([1, 2, 3, 4, 5]) ds_shuffled = ds.shuffle(buffer_size=5, reshuffle_each_iteration=False) print("First iteration:") for item in ds_shuffled: print(item.numpy()) print("Second iteration:") for item in ds_shuffled: print(item.numpy())

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

"First iteration:" 1 5 3 2 4 "Second iteration:" 1 5 3 2 4

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

  • класс Dataset,
    который представляет собой набор данных
  • метод batch,
    который объединяет элементы датасета в пакеты
  • метод repeat,
    который повторяет датасет заданное число раз
  • метод prefetch,
    который подготавливает элементы заранее
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить