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 и может использоваться без дополнительных настроек для сохранения и восстановления dtensors.
Атрибуты
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-объекта.

Контрольные точки с именем tf.compat.v1.train.Saver из TensorFlow 1.x можно загрузить с помощью этого метода. Имена используются для сопоставления переменных. Перекодируйте контрольные точки с именами, используя 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() для загруженного состояния, так как SavedModels, сохраненные из 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 Префикс для имён файлов контрольной точки (/путь/к/директории/и_префикс). Имена генерируются на основе этого префикса и 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 Префикс для имён файлов контрольных точек (/путь/к/каталогу/и_префикс).
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