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


Python tf.compat.v1.train.Checkpoint.restore用法及代码示例


用法

restore(
    save_path
)

参数

返回

  • 加载状态对象,可用于对检查点恢复的状态进行断言并运行初始化/恢复操作。

    返回的状态对象有以下方法:

    • assert_consumed() :如果任何变量不匹配,则引发异常:检查点值没有匹配的 Python 对象或依赖关系图中的 Python 对象在检查点中没有值。此方法返回状态对象,因此可以与 initialize_or_restorerun_restore_ops 链接。

    • assert_existing_objects_matched() :如果依赖图中的任何现有 Python 对象不匹配,则引发异常。与 assert_consumed 不同,如果检查点中的值没有对应的 Python 对象,则此断言将通过。例如,尚未构建的 tf.keras.Layer 对象,因此尚未创建任何变量,将通过此断言但将失败 assert_consumed 。在将较大检查点的一部分加载到新的 Python 程序中时很有用,例如保存了带有 tf.compat.v1.train.Optimizer 的训练检查点,但仅加载了推理所需的状态。此方法返回状态对象,因此可以与 initialize_or_restorerun_restore_ops 链接。

    • assert_nontrivial_match() :断言除根对象之外的其他内容已匹配。这是一个非常弱的断言,但对于库代码中的健全性检查很有用,其中对象可能存在于检查点中,而这些对象可能尚未在 Python 中创建,并且某些 Python 对象可能没有检查点值。

    • expect_partial():关于不完整的检查点恢复的静默警告。当Checkpoint 对象被删除时(通常在程序关闭时),检查点文件或对象的未使用部分会打印警告。

    • initialize_or_restore(session=None) :构建图形时,如果 save_pathNone ,则运行变量初始化程序,否则运行恢复操作。如果没有明确指定session,则使用默认会话。即刻执行时没有效果(变量被即刻地初始化或恢复)。

    • run_restore_ops(session=None) :构建图形时,运行恢复操作。如果没有明确指定session,则使用默认会话。即刻执行时无效(恢复操作即刻运行)。只能在 save_path 不是 None 时调用。

恢复训练检查点。

恢复此 Checkpoint 及其依赖的任何对象。

即刻执行时,如果要恢复的变量已经创建,则立即赋值,或者推迟恢复直到创建变量。如果在检查点中有相应的对象,则在此调用之后添加的依赖项将被匹配(恢复请求将在任何可跟踪的对象中排队等待添加预期的依赖项)。

构建图时,会将恢复操作添加到图中,但不会立即运行。

checkpoint = tf.train.Checkpoint( ... )
checkpoint.restore(path)

为确保加载完成并且不再发生延迟恢复,您可以使用 restore 返回的状态对象的 assert_consumed() 方法。如果在检查点中未找到依赖图中的任何 Python 对象,或者任何检查点值没有匹配的 Python 对象,则断言将引发异常:

checkpoint = tf.train.Checkpoint( ... )
checkpoint.restore(path).assert_consumed()

构建图形时,assert_consumed() 表示将为此检查点创建的所有还原操作都已创建。它们可以通过状态对象的run_restore_ops() 方法运行:

checkpoint.restore(path).assert_consumed().run_restore_ops()

如果检查点没有被完全消耗掉,那么随着更多对象被添加到依赖图中,恢复操作列表将会增长。

要检查 Python 对象中的所有变量是否已从检查点恢复值,请使用 assert_existing_objects_matched() 。在创建图表中的变量后调用此断言很有用。

可以使用此方法加载基于名称的tf.compat.v1.train.Saver 检查点。名称用于匹配变量。在构建图形时,在返回的状态对象上调用 run_restore_ops()initialize_or_restore() 之前,不会创建/运行恢复操作,但在即刻执行时会出现 restore-on-creation。尽快使用tf.train.Checkpoint.save 重新编码基于名称的检查点。

相关用法


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