1. 實例化對象
saver = tf.train.Saver(max_to_keep=1)
max_to_keep: 表明保存的最大checkpoint文件數。當一個新文件創建的時候,舊文件就會被刪掉。如果值為None或0, 表示保存所有的checkpoint文件。默認值5(也就是說,保存最近的5個checkpoint文件)。
keep_checkpoint_every_n_hour: 除了保存最近的max_to_keep_checkpoint文件,你還可能想每訓練N小時保存一個checkpoint文件。這將是非常有用的,如果你想分析一個模型在很長的一段訓練時間內是怎么改變的。例如,設置keep_checkpoint_every_n_hour=2確保每訓練2個小時保存一個checkpoint文件。
2. 保存訓練過程中或者訓練好的, 模型圖及權重參數
2.1 創建完saver對象后,就可以保存訓練好的模型了
saver.save(sess=sess, save_path=model_save_path, global_step=step)
第一個參數sess=sess, 會話名字;
第二個參數save_path=model_save_path, 設定權重參數保存到的路徑和文件名;
第三個參數global_step=step, 將訓練的次數作為后綴加入到模型名字中。
2.2 一次saver.save()后可以在文件夾中看到新增的四個文件
實際上每調用一次保存操作會創建后3個數據文件並創建一個檢查點(checkpoint)文件。
- 簡單理解就是權重等參數被保存到.ckpt.data文件中,以字典的形式;
- ckpt-index, 應該是內部需要的某種索引來正確映射前兩個文件;
- 圖和元數據被保存到.ckpt.meta文件中,可以使用tf.train.import_meta_graph加載
3. 重載模型的圖及權重參數
重載模型的參數,繼續訓練或用於測試數據
saver.restore(sess=sess, save_path = model_save_path)
- 第一個參數sess=sess, 會話名字
- 第二個參數save_path=model_save_path, 權重參數的保存路徑和文件名
原連接:https://blog.csdn.net/liuxiaodong400/article/details/83421164