tf.data.experimental.save
Сохраняет содержимое заданного набора данных.
tf.data.experimental.save(
dataset, path, compression=None, shard_func=None, checkpoint_args=None
)
Пример использования:
import tempfile path = os.path.join(tempfile.gettempdir(), "saved_data") # Save a dataset dataset = tf.data.Dataset.range(2) tf.data.experimental.save(dataset, path) new_dataset = tf.data.experimental.load(path) for elem in new_dataset: print(elem) tf.Tensor(0, shape=(), dtype=int64) tf.Tensor(1, shape=(), dtype=int64)
Сохраненный набор данных сохраняется в нескольких файлах «фрагментах». По умолчанию выходные данные набора данных делятся на фрагменты в порядке кругового обхода, но пользовательское разбиение на фрагменты может быть задано с помощью функции shard_func. Например, вы можете сохранить набор данных, используя один фрагмент следующим образом:
dataset = make_dataset()
def custom_shard_func(element):
return 0
dataset = tf.data.experimental.save(
path="/path/to/data", ..., shard_func=custom_shard_func)
Для включения создания контрольных точек передайте checkpoint_args в метод save следующим образом:
dataset = tf.data.Dataset.range(100)
save_dir = "..."
checkpoint_prefix = "..."
step_counter = tf.Variable(0, trainable=False)
checkpoint_args = {
"checkpoint_interval": 50,
"step_counter": step_counter,
"directory": checkpoint_prefix,
"max_to_keep": 20,
}
dataset.save(dataset, save_dir, checkpoint_args=checkpoint_args)
Примечание: Структура каталога и формат файлов, используемые для сохранения набора данных, считаются деталями реализации и могут изменяться. По этой причине наборы данных, сохраненные с помощьюtf.data.experimental.save, должны потребляться только черезtf.data.experimental.load, что гарантирует обратную совместимость.
| Аргументы | |
|---|---|
dataset | Набор данных для сохранения. |
path | Обязательный. Каталог для сохранения набора данных. |
compression | Необязательно. Алгоритм для сжатия данных при записи. Поддерживаемые варианты — GZIP и NONE. По умолчанию NONE. |
shard_func | Необязательно. Функция для управления отображением элементов набора данных в фрагментах файлов. Ожидается, что функция сопоставит элементы входного набора данных с целочисленными идентификаторами фрагментов (int64). Если присутствует, функция будет отслеживаться и выполняться как вычисление графа. |
checkpoint_args | Необязательные аргументы для создания контрольных точек, которые будут переданы в tf.train.CheckpointManager. Если checkpoint_args не указаны, создание контрольных точек не выполняется. Реализация save() создает объект tf.train.Checkpoint внутри, поэтому пользователи не должны устанавливать аргумент checkpoint в checkpoint_args. |
| Исключения | |
|---|---|
ValueError, если checkpoint передано в checkpoint_args. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/data/experimental/save