(原)tensorflow保存模型及载入保存的模型

转载请注明出处:

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’)

 

posted on 2017-07-18 09:36  darkknightzh  阅读(14536)  评论(0编辑  收藏  举报

导航