(原)tensorflow保存模型及載入保存的模型


轉載請注明出處:

http://www.cnblogs.com/darkknightzh/p/7198773.html

參考網址:

http://stackoverflow.com/questions/41265035/tensorflow-why-there-are-3-files-after-saving-the-model

1. 保存模型

tensorflow中saver使用如下代碼保存模型時(假設程序位於/home/xxx/test,模型保存在/home/xxx/test/model。下面是簡化的代碼),使用下面的代碼:

saver = tf.train.Saver(tf.trainable_variables(), max_to_keep=3)

saver.save(sess, 'model/model.ckpt', global_step=step, write_meta_graph=False)
if not os.path.exists(' model/model.meta'):
    saver.export_meta_graph(metagraph_filename)

會保存下面這些文件:

每次都會保存.meta(可以判斷是否有該文件,如果沒有才保存)。

每次都會保存.ckpt-step.index和.ckpt-step.data-00000-of-00001文件(模型太大不清楚是否會有.ckpt-number.data-00000-of-00002等等文件)。

checkpoint文件內,會有下面的內容:

model_checkpoint_path: "/home/xxx/test/model/model.ckpt-16000"
all_model_checkpoint_paths: "/home/xxx/test/model/model.ckpt-12000"
all_model_checkpoint_paths: "/home/xxx/test/model/model.ckpt-14000"

2. 恢復模型參數,繼續訓練

當需要恢復某個模型的參數,繼續進行訓練時,可以使用下面的代碼:

saver.restore(sess, ‘model/model.ckpt-16000’)

這樣便可以恢復訓練時的最后一個模型參數。

不需要加上后綴.index或者.data-00000-of-00001。

3. 直接載入meta graph及模型參數

在測試時,可以通過下面的代碼直接通過meta graph構建網絡、載入訓練時得到的參數,並使用默認的session:

saver = tf.train.import_meta_graph(‘model/model.meta’)
saver.restore(tf.get_default_session(),’ model/model.ckpt-16000’)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM