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

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

Метод padded_batch класса Dataset объединяет последовательные элементы датасета в пакеты, при этом элементы внутри пакета дополняются до одинаковой формы. Это особенно полезно при работе с последовательностями разной длины, например текстами или временными рядами. Первым параметром передаётся размер пакета, вторым - словарь или кортеж с формами дополнения padded_shapes, третьим - значения заполнения padding_values, четвёртым - значение drop_remainder, определяющее, отбрасывать ли последний неполный пакет.

Синтаксис

Dataset.padded_batch(batch_size, padded_shapes=None, padding_values=None, drop_remainder=False)

Пример

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

import tensorflow as tf dataset = tf.data.Dataset.from_tensor_slices([[1, 2], [3, 4, 5], [6]]) dataset = dataset.padded_batch(2, padded_shapes=[3]) for batch in dataset: print(batch)

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

tf.Tensor( [[1 2 0] [3 4 5]], shape=(2, 3), dtype=int32) tf.Tensor( [[6 0 0]], shape=(1, 3), dtype=int32)

Пример

Давайте укажем значение заполнения -1 и отбросим последний неполный пакет:

import tensorflow as tf dataset = tf.data.Dataset.from_tensor_slices([[1, 2], [3, 4, 5], [6]]) dataset = dataset.padded_batch( 2, padded_shapes=[3], padding_values=-1, drop_remainder=True ) for batch in dataset: print(batch)

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

tf.Tensor( [[ 1 2 -1] [ 3 4 5]], shape=(2, 3), dtype=int32)

Пример

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

import tensorflow as tf values = [[1, 2], [3, 4, 5], [6]] labels = [[0], [1], [2]] dataset = tf.data.Dataset.from_tensor_slices((values, labels)) dataset = dataset.padded_batch( 2, padded_shapes=([3], [1]), padding_values=(0, -1) ) for batch in dataset: print(batch)

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

(<tf.Tensor: shape=(2, 3), dtype=int32, numpy= array([[1, 2, 0], [3, 4, 5]], dtype=int32)>, <tf.Tensor: shape=(2, 1), dtype=int32, numpy= array([[ 0], [ 1]], dtype=int32)>) (<tf.Tensor: shape=(1, 3), dtype=int32, numpy=array([[6, 0, 0]], dtype=int32)>, <tf.Tensor: shape=(1, 1), dtype=int32, numpy=array([[2]], dtype=int32)>)

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

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