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 文件。默认值10000小时无法看到特征。
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,权重参数的保存的路径和文件名。