转载请注明出处:
http://www.cnblogs.com/darkknightzh/p/7198773.html
参考网址:
http://stackoverflow.com/questions/41265035/tensorflow-why-there-are-3-files-after-saving-the-model
1. 保存模型
tensorflow中saver使用如下代码保存模型时(假设程序位于/home/xxx/test,模型保存在/home/xxx/test/model。下面是简化的代码),使用下面的代码:
saver = tf.train.Saver(tf.trainable_variables(), max_to_keep=3) saver.save(sess, 'model/model.ckpt', global_step=step, write_meta_graph=False) if not os.path.exists(' model/model.meta'): saver.export_meta_graph(metagraph_filename)
会保存下面这些文件:
每次都会保存.meta(可以判断是否有该文件,如果没有才保存)。
每次都会保存.ckpt-step.index和.ckpt-step.data-00000-of-00001文件(模型太大不清楚是否会有.ckpt-number.data-00000-of-00002等等文件)。
checkpoint文件内,会有下面的内容:
model_checkpoint_path: "/home/xxx/test/model/model.ckpt-16000" all_model_checkpoint_paths: "/home/xxx/test/model/model.ckpt-12000" all_model_checkpoint_paths: "/home/xxx/test/model/model.ckpt-14000"
2. 恢复模型参数,继续训练
当需要恢复某个模型的参数,继续进行训练时,可以使用下面的代码:
saver.restore(sess, ‘model/model.ckpt-16000’)
这样便可以恢复训练时的最后一个模型参数。
不需要加上后缀.index或者.data-00000-of-00001。
3. 直接载入meta graph及模型参数
在测试时,可以通过下面的代码直接通过meta graph构建网络、载入训练时得到的参数,并使用默认的session:
saver = tf.train.import_meta_graph(‘model/model.meta’)
saver.restore(tf.get_default_session(),’ model/model.ckpt-16000’)