當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。