Spec-Zone.ru › TensorFlow 2.4

tf.data.experimental.snapshot

API для сохранения выходных данных набора данных.

Просмотр псевдонимов

Псевдонимы совместимости для миграции

См. Руководство по миграции для получения дополнительной информации.

tf.compat.v1.data.experimental.snapshot

tf.data.experimental.snapshot(
    path, compression='AUTO', reader_func=None, shard_func=None
)

API snapshot позволяет пользователям прозрачно сохранять выходные данные своей предварительной обработки на диск и материализовывать предварительно обработанные данные в другом запуске обучения.

Этот API позволяет объединять повторяющиеся шаги предварительной обработки и повторно использовать уже обработанные данные, жертвуя объемом дискового пространства и пропускной способностью сети для освобождения ценных ресурсов ЦП и времени вычислений ускорителя.

https://github.com/tensorflow/community/blob/master/rfcs/20200107-tf-data-snapshot.md содержит подробную документацию по проектированию этой функции.

Пользователи могут указать различные параметры для управления поведением snapshot, включая способы чтения и записи снимков, передавая пользовательские функции в параметры reader_func и shard_func.

shard_func - это пользовательская функция, которая сопоставляет элементы входных данных со фрагментами снимка.

Пользователи могут указать эту функцию, чтобы контролировать, как файлы снимков записываются на диск. Ниже приведен пример написания потенциальной функции shard_func.

dataset = ...
dataset = dataset.enumerate()
dataset = dataset.apply(tf.data.experimental.snapshot("/path/to/snapshot/dir",
    shard_func=lambda x, y: x % NUM_SHARDS, ...))
dataset = dataset.map(lambda x, y: y)

reader_func - это пользовательская функция, которая принимает один аргумент: (1) набор данных наборов данных, каждый из которых представляет «раздел» элементов исходного набора данных. Мощность входного набора данных соответствует количеству фрагментов, указанных в shard_func (см. выше). Функция должна вернуть набор данных элементов исходного набора данных.

Пользователи могут указать эту функцию, чтобы контролировать, как файлы снимков читаются с диска, включая количество перемешивания и параллельности.

Вот пример стандартной функции чтения, которую может определить пользователь. Эта функция позволяет перемешивать наборы данных и читать наборы данных параллельно:

def user_reader_func(datasets):
  # shuffle the datasets splits
  datasets = datasets.shuffle(NUM_CORES)
  # read datasets in parallel and interleave their elements
  return datasets.interleave(lambda x: x, num_parallel_calls=AUTOTUNE)

dataset = dataset.apply(tf.data.experimental.snapshot("/path/to/snapshot/dir",
    reader_func=user_reader_func))

По умолчанию snapshot параллелизует чтение по количеству ядер, доступных в системе, но не будет пытаться перемешать данные.

Аргументы
path Обязательно. Каталог для хранения/загрузки снимка.
compression Необязательно. Тип сжатия, применяемый к снимку, записываемому на диск. Доступные варианты — GZIP, SNAPPY, AUTO или None. По умолчанию AUTO, который пытается выбрать подходящий алгоритм сжатия для набора данных.
reader_func Необязательно. Функция для управления чтением данных из фрагментов снимка.
shard_func Необязательно. Функция для управления фрагментацией данных при записи снимка.
Возвращаемые значения
Функция преобразования Dataset, которую можно передать в tf.data.Dataset.apply.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/data/experimental/snapshot

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API