Функция split_dataset
Функция split_dataset применяется к данным и позволяет
разделить датасет на несколько подмножеств. Первым параметром
функция принимает исходный датасет, вторым - список долей
(или размеров) для каждой части. Третьим параметром можно
указать, как интерпретировать значения: как доли
('fraction') или как абсолютные размеры
('size'). Четвертым параметром передается зерно
генератора случайных чисел для воспроизводимости.
Синтаксис
tf.data.split_dataset(dataset, splits, [mode], [seed])
Пример
Давайте создадим датасет из чисел от 1 до 10
и разделим его на две части: 60% и 40%:
import tensorflow as tf
tf.random.set_seed(0)
dataset = tf.data.Dataset.range(1, 11)
parts = tf.data.split_dataset(dataset, [0.6, 0.4], mode='fraction', seed=0)
for part in parts:
print(list(part.as_numpy_iterator()))
Результат выполнения кода:
[1, 2, 3, 4, 5, 6]
[7, 8, 9, 10]
Пример
Теперь разделим датасет на три части с абсолютными размерами:
3, 3 и 4 элемента:
import tensorflow as tf
tf.random.set_seed(0)
dataset = tf.data.Dataset.range(1, 11)
parts = tf.data.split_dataset(dataset, [3, 3, 4], mode='size', seed=0)
for part in parts:
print(list(part.as_numpy_iterator()))
Результат выполнения кода:
[1, 2, 3]
[4, 5, 6]
[7, 8, 9, 10]
Пример
Давайте разделим датасет строк и выведем первую часть:
<+python+>
import tensorflow as tf
tf.random.set_seed(0)
dataset = tf.data.Dataset.from_tensor_slices(['abcde', 'model.keras'])
parts = tf.data.split_dataset(dataset, [0.5, 0.5], mode='fraction', seed=0)
print(list(parts[0].as_numpy_iterator()))
<-python+>
Результат выполнения кода:
[b'abcde']
Смотрите также
-
функцию
timeseries_dataset_from_array,
которая создает датасет из временных рядов -
класс
TFRecordDataset,
который читает данные из файлов TFRecord -
класс
TextLineDataset,
который читает строки из текстовых файлов -
функцию
normalize,
которая нормализует данные датасета