当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.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
)

参数

  • checkpoint tf.train.Checkpoint 实例保存和管理检查点。
  • directory 写入检查点的目录的路径。一个名为 "checkpoint" 的特殊文件也被写入此目录(以人类可读的文本格式),其中包含 CheckpointManager 的状态。
  • max_to_keep 一个整数,要保留的检查点数。除非 keep_checkpoint_every_n_hours 保留,否则检查点将从活动集中删除,最旧的先删除,直到仅保留 max_to_keep 检查点。如果 None ,则不会删除任何检查点,并且所有内容都保留在活动集中。请注意,max_to_keep=None 会将所有检查点路径保存在内存和磁盘上的检查点状态协议缓冲区中。
  • keep_checkpoint_every_n_hours 从活动集中删除后,如果自上次保留的检查点以来至少为keep_checkpoint_every_n_hours,则将保留检查点。 None 的默认设置不会以这种方式保留任何检查点。
  • checkpoint_name 检查点文件的自定义名称。
  • step_counter tf.Variable 实例,用于检查当前步数计数器值,以防用户希望每 N 步保存检查点。
  • checkpoint_interval 一个整数,表示两个检查点之间的最小步长间隔。
  • init_fn 可调用。如果目录中没有检查点,则执行自定义初始化的函数。

抛出

  • ValueError 如果max_to_keep 不是正整数。

属性

  • checkpoint 返回 tf.train.Checkpoint 对象。
  • checkpoint_interval
  • checkpoints 托管检查点列表。

    请注意,由于 keep_checkpoint_every_n_hours 而保存的检查点不会显示在此列表中(以避免出现 ever-growing 文件名列表)。

  • directory
  • latest_checkpoint 最近检查点的前缀directory.

    等效于 tf.train.latest_checkpoint(directory) 其中 directoryCheckpointManager 的构造函数参数。

    适合传到tf.train.Checkpoint.restore恢复训练。

示例用法:

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)
while True:
  # train
  manager.save()

CheckpointManager 跨实例化保留其自己的状态(有关详细信息,请参阅__init__ 文档)。一次只能在特定目录中活动一个。

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.train.CheckpointManager。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。