Метод snapshot класса Dataset
Метод snapshot класса Dataset сохраняет
предварительно обработанный набор данных в указанную
директорию. Это позволяет избежать повторного выполнения
тяжёлых операций преобразования при каждом новом запуске
обучения модели. Первым параметром метод принимает путь
к директории для сохранения. Вторым параметром можно
передать имя сжатия (например, GZIP или SNAPPY).
После первого прохождения данные кешируются, и при
повторном вызове метод читает их с диска.
Синтаксис
Dataset.snapshot(path, compression=None, reader_func=None, shard_func=None)
Пример
Давайте создадим набор данных из тензора и применим
к нему метод snapshot для сохранения в директорию
'./snapshot_data':
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5])
dataset = tf.data.Dataset.from_tensor_slices(t)
dataset = dataset.snapshot('./snapshot_data')
for element in dataset:
print(element.numpy())
Результат выполнения кода:
1
2
3
4
5
Пример
Давайте применим метод snapshot с компрессией
GZIP и предварительной обработкой через map:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5])
dataset = tf.data.Dataset.from_tensor_slices(t)
dataset = dataset.map(lambda x: x * 2)
dataset = dataset.snapshot('./snapshot_data_gzip', compression='GZIP')
for element in dataset:
print(element.numpy())
Результат выполнения кода:
2
4
6
8
10
Пример
Давайте применим метод snapshot к двумерному
тензору и выведем форму каждого элемента:
import tensorflow as tf
t = tf.constant([[1, 2, 3], [4, 5, 6]])
dataset = tf.data.Dataset.from_tensor_slices(t)
dataset = dataset.snapshot('./snapshot_data_2d')
for element in dataset:
print(element.numpy())
Результат выполнения кода:
[1 2 3]
[4 5 6]