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.
Контрольные точки 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. |
| Возвращает | |
|---|---|
| Объект состояния загрузки, с помощью которого можно проверять состояние восстановления контрольной точки. Возвращаемый объект состояния предоставляет следующие методы:
|
| Вызывает исключение | |
|---|---|
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