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

原文地址:https://www.cnblogs.com/elitphil/p/12048395.html