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


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