Spec-Zone.ru › TensorFlow

tf.experimental.dtensor.DTensorCheckpoint

Управляет сохранением и восстановлением отслеживаемых значений на диске для DTensor. (устарело)

Наследует от: Checkpoint

tf.experimental.dtensor.DTensorCheckpoint(
    mesh: tf.experimental.dtensor.Mesh,
    root=None,
    **kwargs
)
Устарело: ЭТА ФУНКЦИЯ УСТАРЕЛА. Она будет удалена в будущей версии. Инструкции по обновлению: используйте tf.train.Checkpoint вместо DTensorCheckpoint. DTensor интегрирован с tf.train.Checkpoint, поэтому его можно использовать для сохранения и восстановления DTensor без дополнительной настройки.
Атрибуты
save_counter Целочисленная переменная, которая начинается с нуля и увеличивается при сохранении.

Используется для нумерации контрольных точек.

Методы

read

Посмотреть исходный код

read(
    save_path, options=None
)

Читает контрольную точку обучения, записанную с помощью write.

Читает этот объект Checkpoint и все объекты, от которых он зависит.

Этот метод аналогичен restore(), но не предполагает наличия в контрольной точке переменной save_counter. Он восстанавливает только объекты, от которых уже зависит контрольная точка.

Метод предназначен главным образом для использования высокоуровневыми утилитами управления контрольными точками, которые используют write() вместо save() и имеют собственные механизмы нумерации и отслеживания контрольных точек.

Пример использования:

# Create a checkpoint with write()
ckpt = tf.train.Checkpoint(v=tf.Variable(1.))
path = ckpt.write('/tmp/my_checkpoint')

# Later, load the checkpoint with read()
# With restore() assert_consumed() would have failed.
checkpoint.read(path).assert_consumed()

# You can also pass options to read(). For example this
# runs the IO ops on the localhost:
options = tf.train.CheckpointOptions(
    experimental_io_device="/job:localhost")
checkpoint.read(path, options=options)
Аргументы
save_path Путь к контрольной точке, возвращаемый методом write.
options Необязательный объект tf.train.CheckpointOptions.
Возвращает
Объект состояния загрузки, с помощью которого можно проверять состояние восстановления контрольной точки. Подробности см. в restore.

restore

Посмотреть исходный код

restore(
    save_path, options=None
)

Восстанавливает контрольную точку обучения.

Восстанавливает этот объект Checkpoint и все объекты, от которых он зависит.

Этот метод предназначен для загрузки контрольных точек, созданных с помощью save(). Для контрольных точек, созданных с помощью write(), используйте метод read(), который не предполагает наличия переменной save_counter, добавляемой методом save().

restore() либо немедленно присваивает значения, если переменные для восстановления уже созданы, либо откладывает восстановление до момента их создания. Зависимости, добавленные после этого вызова, будут сопоставлены, если в контрольной точке им соответствует объект (запрос на восстановление будет поставлен в очередь в любом отслеживаемом объекте, ожидающем добавления требуемой зависимости).

checkpoint = tf.train.Checkpoint( ... )
checkpoint.restore(path)

# You can additionally pass options to restore():
options = tf.CheckpointOptions(experimental_io_device="/job:localhost")
checkpoint.restore(path, options=options)

Чтобы убедиться, что загрузка завершена и отложенных восстановлений больше не будет, используйте метод assert_consumed() объекта состояния, возвращаемого методом restore():

checkpoint.restore(path, options=options).assert_consumed()

Проверка вызовет ошибку, если в графе зависимостей не найдены какие-либо объекты Python или если для каких-либо значений из контрольной точки нет соответствующего объекта Python.

Контрольные точки TensorFlow 1.x, основанные на именах, можно загружать с помощью этого метода через tf.compat.v1.train.Saver. Переменные сопоставляются по именам. Как можно скорее перекодируйте контрольные точки, основанные на именах, используя tf.train.Checkpoint.save.

Загрузка из контрольных точек SavedModel

Чтобы загрузить значения из SavedModel, просто передайте каталог SavedModel в checkpoint.restore:

model = tf.keras.Model(...)
tf.saved_model.save(model, path)  # or model.save(path, save_format='tf')

checkpoint = tf.train.Checkpoint(model)
checkpoint.restore(path).expect_partial()

В этом примере для загруженного состояния вызывается expect_partial(), поскольку SavedModel, сохранённые из Keras, часто содержат дополнительные ключи в контрольной точке. В противном случае при завершении программы выводится множество предупреждений о неиспользуемых ключах.

Аргументы
save_path Путь к контрольной точке, возвращаемый методом save или tf.train.latest_checkpoint. Если контрольная точка была записана с помощью основанного на именах tf.compat.v1.train.Saver, переменные сопоставляются по именам. В качестве этого пути также можно указать каталог SavedModel.
options Необязательный объект tf.train.CheckpointOptions.
Возвращает
Объект состояния загрузки, с помощью которого можно проверять состояние восстановления контрольной точки.

Возвращаемый объект состояния предоставляет следующие методы:

  • assert_consumed(): вызывает исключение, если какие-либо переменные не сопоставлены: либо для значений из контрольной точки нет соответствующего объекта Python, либо у объектов Python в графе зависимостей нет значений в контрольной точке. Этот метод возвращает объект состояния, поэтому его можно объединять в цепочку с другими проверками.

  • assert_existing_objects_matched(): вызывает исключение, если какие-либо существующие объекты Python в графе зависимостей не сопоставлены. В отличие от assert_consumed, эта проверка проходит, если значения в контрольной точке не имеют соответствующих объектов Python. Например, объект tf.keras.Layer, который ещё не был создан и поэтому не создал переменные, пройдёт эту проверку, но не пройдёт assert_consumed. Полезно при загрузке части более крупной контрольной точки в новую программу Python, например если была сохранена контрольная точка обучения с tf.compat.v1.train.Optimizer, но загружается только состояние, необходимое для вывода. Этот метод возвращает объект состояния, поэтому его можно объединять в цепочку с другими проверками.

  • assert_nontrivial_match(): проверяет, что был сопоставлен какой-либо объект, кроме корневого. Это очень слабая проверка, но она полезна для проверки корректности в коде библиотек, где в контрольной точке могут быть объекты, не созданные в Python, а у некоторых объектов Python может не быть значения в контрольной точке.

  • expect_partial(): отключает предупреждения о неполном восстановлении контрольной точки. В противном случае предупреждения о неиспользуемых частях файла контрольной точки или объекта выводятся при удалении объекта Checkpoint (часто при завершении программы).

Вызывает исключение
NotFoundError если контрольную точку или SavedModel не удаётся найти по пути save_path.

save

Посмотреть исходный код

save(
    file_prefix, options=None
)

Сохраняет контрольную точку обучения и обеспечивает базовое управление контрольными точками.

Сохранённая контрольная точка включает переменные, созданные этим объектом, и все отслеживаемые объекты, от которых он зависит на момент вызова Checkpoint.save().

save — это простая удобная оболочка для метода write, которая последовательно нумерует контрольные точки с помощью save_counter и обновляет метаданные, используемые методом tf.train.latest_checkpoint. Более сложное управление контрольными точками, например сборка мусора и пользовательская нумерация, может обеспечиваться другими утилитами, которые также оборачивают write и read. (Например, tf.train.CheckpointManager.)

step = tf.Variable(0, name="step")
checkpoint = tf.train.Checkpoint(step=step)
checkpoint.save("/tmp/ckpt")

# Later, read the checkpoint with restore()
checkpoint.restore("/tmp/ckpt-1")

# You can also pass options to save() and restore(). For example this
# runs the IO ops on the localhost:
options = tf.train.CheckpointOptions(experimental_io_device="/job:localhost")
checkpoint.save("/tmp/ckpt", options=options)

# Later, read the checkpoint with restore()
checkpoint.restore("/tmp/ckpt-1", options=options)
Аргументы
file_prefix Префикс для имён файлов контрольных точек (/path/to/directory/and_a_prefix). Имена формируются на основе этого префикса и Checkpoint.save_counter.
options Необязательный объект tf.train.CheckpointOptions.
Возвращает
Полный путь к контрольной точке.

sync

Посмотреть исходный код

sync()

Ожидает завершения всех выполняющихся операций сохранения или восстановления.

write

Посмотреть исходный код

write(
    file_prefix, options=None
)

Записывает контрольную точку обучения.

Контрольная точка включает переменные, созданные этим объектом, и все отслеживаемые объекты, от которых он зависит на момент вызова Checkpoint.write().

write не нумерует контрольные точки, не увеличивает save_counter и не обновляет метаданные, используемые методом tf.train.latest_checkpoint. Метод предназначен главным образом для использования высокоуровневыми утилитами управления контрольными точками. save обеспечивает очень простую реализацию этих возможностей.

Контрольные точки, записанные с помощью write, необходимо читать с помощью read.

Пример использования:

step = tf.Variable(0, name="step")
checkpoint = tf.Checkpoint(step=step)
checkpoint.write("/tmp/ckpt")

# Later, read the checkpoint with read()
checkpoint.read("/tmp/ckpt")

# You can also pass options to write() and read(). For example this
# runs the IO ops on the localhost:
options = tf.CheckpointOptions(experimental_io_device="/job:localhost")
checkpoint.write("/tmp/ckpt", options=options)

# Later, read the checkpoint with read()
checkpoint.read("/tmp/ckpt", options=options)
Аргументы
file_prefix Префикс для имён файлов контрольных точек (/path/to/directory/and_a_prefix).
options Необязательный объект tf.train.CheckpointOptions.
Возвращает
Полный путь к контрольной точке (то есть file_prefix).

© 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/api_docs/python/tf/experimental/dtensor/DTensorCheckpoint

Spec-Zone.ru

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