Ver fuente en GitHub

Gestiona varios puntos de control conservando algunos y eliminando los innecesarios.

Ver alias

Compat alias para la migración

Ver Guía de migración para más detalles.

tf.compat.v1.train.CheckpointManager

tf.train.CheckpointManager(
    checkpoint, directory, max_to_keep, keep_checkpoint_every_n_hours=None,
    checkpoint_name='ckpt', step_counter=None, checkpoint_interval=None,
    init_fn=None)

Uso de ejemplo:

import tensorflow as tf
checkpoint = tf.train.Checkpoint(optimizer=optimizer, model=model)
manager = tf.train.CheckpointManager(
    checkpoint, directory="/tmp/model", max_to_keep=5)
status = checkpoint.restore(manager.latest_checkpoint)whileTrue:# train
  manager.save()

CheckpointManager conserva su propio estado a través de las instancias (ver el __init__ documentación para más detalles). Solo uno debe estar activo en un directorio en particular a la vez.

Args
checkpoint los tf.train.Checkpoint instancia para guardar y administrar puntos de control.
directory La ruta a un directorio en el que escribir puntos de control. Un archivo especial llamado “punto de control” también se escribe en este directorio (en un formato de texto legible por humanos) que contiene el estado del CheckpointManager.
max_to_keep Un número entero, la cantidad de puntos de control que se deben mantener. A menos que sea preservado por keep_checkpoint_every_n_hours, los puntos de control se eliminarán del conjunto activo, los más antiguos primero, hasta que max_to_keep quedan puestos de control. Si None, no se eliminan los puntos de control y todo permanece en el conjunto activo. Tenga en cuenta que max_to_keep=None mantendrá todas las rutas de los puntos de control en la memoria y en el búfer del protocolo de estado del punto de control en el disco.
keep_checkpoint_every_n_hours Tras la eliminación del conjunto activo, se conservará un punto de control si ha sido al menos keep_checkpoint_every_n_hours desde el último puesto de control conservado. La configuración predeterminada de None no conserva ningún punto de control de esta manera.
checkpoint_name Nombre personalizado para el archivo de punto de control.
step_counter A tf.Variable instancia para verificar el valor actual del contador de pasos, en caso de que los usuarios quieran guardar puntos de control cada N pasos.
checkpoint_interval Un número entero, indica el intervalo de paso mínimo entre dos puntos de control.
init_fn Invocable. Una función para realizar una inicialización personalizada si no hay puntos de control en el directorio.
Eleva
ValueError Si max_to_keep no es un número entero positivo.
Atributos
checkpoint Devuelve el tf.train.Checkpoint objeto.
checkpoint_interval
checkpoints Una lista de puntos de control gestionados.

Tenga en cuenta que los puntos de control guardados debido a keep_checkpoint_every_n_hours no aparecerá en esta lista (para evitar listas de nombres de archivo cada vez mayores).

directory
latest_checkpoint los prefix del puesto de control más reciente en directory.

Equivalente a tf.train.latest_checkpoint(directory) dónde directory es el argumento del constructor para CheckpointManager.

Adecuado para pasar a tf.train.Checkpoint.restore para reanudar el entrenamiento.

Métodos

restore_or_initialize

Ver fuente

restore_or_initialize()

Restaurar elementos en checkpoint desde el último archivo de punto de control.

Este método primero intentará restaurar desde el punto de control más reciente en directory. Si no existen puntos de control en directory, y init_fn se especifica, este método llamará init_fn para realizar una inicialización personalizada. Esto se puede utilizar para admitir la inicialización a partir de modelos previamente entrenados.

Tenga en cuenta que a diferencia de tf.train.Checkpoint.restore(), este método no devuelve un objeto de estado de carga en el que los usuarios pueden ejecutar aserciones (por ejemplo, assert_consumed ()). Por lo tanto, para ejecutar aserciones, los usuarios deben usar directamente tf.train.Checkpoint.restore() método.

Devoluciones
La ruta del punto de control restaurada si se encuentra y se restaura el último punto de control. De lo contrario Ninguno.

save

Ver fuente

save(
    checkpoint_number=None, check_interval=True)

Crea un nuevo punto de control y lo gestiona.

Args
checkpoint_number Un número entero opcional o un tipo d-entero Variable o Tensor, utilizado para numerar el punto de control. Si None (predeterminado), los puntos de control se numeran usando checkpoint.save_counter. Incluso si checkpoint_number está provisto, save_counter todavía se incrementa. Proporcionado por el usuario checkpoint_number no se incrementa incluso si es un Variable.
check_interval Un booleano opcional. El argumento solo es efectivo cuando checkpoint_interval se pasa al administrador. Si True, el administrador solo guardará el punto de control si el intervalo entre los puntos de control es mayor que checkpoint_interval. De lo contrario, siempre guardará el punto de control a menos que ya se haya guardado un punto de control para el paso actual.
Devoluciones
El camino al nuevo punto de control. También se registra en el checkpoints y latest_checkpoint propiedades. None si no se guarda ningún punto de control.