簡體   English   中英

如何在張量流中保存迭代模型和最佳模型?

[英]How to save iterative models and best model in tensorflow?

我正在嘗試保存模型的迭代檢查點,但也要保存在獨立驗證數據集上獲得最佳評分的模型。 但是,我的檢查點覆蓋了我的最佳模型。 有效地,我正在使用類似:

saver = tf.train.Saver()

with tf.Session() as sess:
    for epoch in range(20):
        # Train model [...]

        # and save a checkpoint 
        saver.save(sess, "iter", global_step=epoch)

        if best_validiation_acc < last_validation_acc:
            saver.save(sess, "best_model")

如何使最好的模型不被迭代的保存覆蓋?

原因是兩者都使用相同的tf.train.Saver ,因此無論您如何命名,它都會記住最后的max_to_keep=5檢查點文件。

最簡單的解決方案是設置max_to_keep=None ,這將強制保護程序保留所有檢查點並且不覆蓋任何內容 但是,您可能希望至少覆蓋迭代檢查點。 在這種情況下,解決方案是:

iter_saver = tf.train.Saver(max_to_keep=3)  # keep 3 last iterations
best_saver = tf.train.Saver(max_to_keep=5)  # keep 5 last best models

with tf.Session() as sess:
    for epoch in range(20):
        # Train model [...]

        # and save a checkpoint 
        iter_saver.save(sess, "iter/model", global_step=epoch)

        if best_validiation_acc < last_validation_acc:
            best_saver.save(sess, "best/model")

我還將使用其他目錄,以使checkpoint文件不會沖突。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM