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

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

Метод ragged_batch применяется к объекту Dataset и группирует его элементы в пакеты, которые могут иметь разную длину вдоль одной из осей. В отличие от обычного метода batch, который требует одинаковой формы всех элементов, ragged_batch сохраняет неоднородные данные в виде рваного тензора RaggedTensor. Первым параметром передаётся размер пакета batch_size. Вторым необязательным параметром drop_remainder можно указать, отбрасывать ли последний неполный пакет.

Метод особенно полезен при работе с последовательностями разной длины, например с текстами или временными рядами, где каждый пример имеет свою длину.

Синтаксис

Dataset.ragged_batch(batch_size, drop_remainder=False)

Пример

Давайте создадим набор данных из рваных последовательностей и сгруппируем их в пакеты по 2 элемента:

import tensorflow as tf dataset = tf.data.Dataset.from_tensor_slices( tf.ragged.constant([[1, 2], [3, 4, 5], [6], [7, 8, 9]]) ) dataset = dataset.ragged_batch(2) for batch in dataset: print(batch)

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

<tf.RaggedTensor [[1, 2], [3, 4, 5]]> <tf.RaggedTensor [[6], [7, 8, 9]]>

Пример

Давайте используем параметр drop_remainder, чтобы отбросить последний неполный пакет из 3 элементов:

import tensorflow as tf dataset = tf.data.Dataset.from_tensor_slices( tf.ragged.constant([[1, 2], [3, 4, 5], [6], [7, 8, 9]]) ) dataset = dataset.ragged_batch(3, drop_remainder=True) for batch in dataset: print(batch)

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

<tf.RaggedTensor [[1, 2], [3, 4, 5], [6]]>

Пример

Давайте применим ragged_batch к набору данных из строк разной длины и выведем форму каждого пакета:

import tensorflow as tf dataset = tf.data.Dataset.from_tensor_slices( tf.ragged.constant([list('abcde'), list('ab'), list('abc')]) ) dataset = dataset.ragged_batch(2) for batch in dataset: print(batch) print(batch.shape)

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

<tf.RaggedTensor [[b'a', b'b', b'c', b'd', b'e'], [b'a', b'b']]> (2, None) <tf.RaggedTensor [[b'a', b'b', b'c']]> (1, None)

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

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