Метод group_by_window класса Dataset
Метод group_by_window класса Dataset группирует элементы датасета в окна (подмножества) по заданному ключу. Каждому элементу исходного датасета сопоставляется ключ с помощью функции key_func, после чего элементы с одинаковым ключом собираются в отдельные окна. Первым параметром передаётся функция вычисления ключа, вторым - функция построения окна, третьим - максимальный размер окна window_size. Метод часто используется для группировки последовательностей переменной длины, например при обработке текстов или временных рядов.
Синтаксис
Dataset.group_by_window(key_func, reduce_func, window_size)
Пример
Давайте создадим датасет из чисел и сгруппируем их по чётности. Функция key_func возвращает остаток от деления на 2, а reduce_func собирает элементы окна в один тензор:
Результат выполнения кода:
tf.Tensor([1 3 5], shape=(3,), dtype=int32)
tf.Tensor([2 4 6], shape=(3,), dtype=int32)
Пример
Давайте ограничим размер окна тремя элементами и посмотрим, как разбиваются данные:
Результат выполнения кода:
tf.Tensor([1 3], shape=(2,), dtype=int32)
tf.Tensor([5], shape=(1,), dtype=int32)
tf.Tensor([2 4], shape=(2,), dtype=int32)
tf.Tensor([6], shape=(1,), dtype=int32)
Смотрите также
-
класс
Dataset,
который представляет набор данных в TensorFlow -
метод
window,
который разбивает датасет на окна -
метод
bucket_by_sequence_length,
который группирует последовательности по длине -
метод
batch,
который объединяет элементы датасета в пакеты