Вы можете использовать Dataset.take()
и Dataset.skip()
:
train_size = int(0.7 * DATASET_SIZE)
val_size = int(0.15 * DATASET_SIZE)
test_size = int(0.15 * DATASET_SIZE)
full_dataset = tf.data.TFRecordDataset(FLAGS.input_file)
full_dataset = full_dataset.shuffle()
train_dataset = full_dataset.take(train_size)
test_dataset = full_dataset.skip(train_size)
val_dataset = test_dataset.skip(val_size)
test_dataset = test_dataset.take(test_size)
Для большей общности я привел пример использования 70/15/15 split / val / test split, но если вам не нужен тест или набор значений, просто проигнорируйте последние 2 строки.
Take :
Создает набор данных с максимально возможным количеством элементов из этого набора данных.
Пропускаем
Создает набор данных, который пропускает количество элементов из этого набора данных.
Вы также можете посмотреть Dataset.shard()
:
Создает набор данных, который включает только 1 / num_shards этого набора данных.