tf.experimental.dtensor.DTensorCheckpoint
Управляет сохранением/восстановлением отслеживаемых значений на диск для DTensor. (устарело)
Наследуется от: Checkpoint
tf.experimental.dtensor.DTensorCheckpoint(
mesh: tf.experimental.dtensor.Mesh,
root=None,
**kwargs
)
| Атрибуты | |
|---|---|
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. |
| Возвращаемое значение | |
|---|---|
| Объект состояния загрузки, который можно использовать для утверждений о статусе восстановления контрольной точки. Возвращаемый объект состояния имеет следующие методы:
|
| Исключения | |
|---|---|
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