Spec-Zone.ru › TensorFlow 2.9

tf.data.experimental.snapshot

API для сохранения выходных данных набора данных. (устаревшее)

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

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

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

tf.compat.v1.data.experimental.snapshot

tf.data.experimental.snapshot(
    path, compression='AUTO', reader_func=None, shard_func=None
)
Устаревшее: ЭТА ФУНКЦИЯ УСТАРЕЛА. Она будет удалена в будущей версии. Инструкции по обновлению: Используйте tf.data.Dataset.snapshot(...).

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.

© 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/snapshot

Spec-Zone.ru

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