tf.train.Saver()

Posted elitphil

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tf.train.Saver()相关的知识,希望对你有一定的参考价值。

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

以上是关于tf.train.Saver()的主要内容,如果未能解决你的问题,请参考以下文章

机器学习与Tensorflow——tf.train.Saver()inception-v3的应用

Tensorflow tf.train.Saver 不保存所有变量

TensorFlow Saver 保存最佳模型 tf.train.Saver Save Best Model

跟我学算法- tensorflow模型的保存与读取 tf.train.Saver()

tensorflow-训练检查点tf.train.Saver

图融合之加载子图:Tensorflow.contrib.slim与tf.train.Saver之坑