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