tensorflow模型的存储与恢复

网上有些模型恢复手段不靠谱,经过自己的检验,以下这种方法确实可行
模型保存都是类似的
需要恢复的变量加个name属性:

Keep_Prob = tf.placeholder(dtype=tf.float32,name="Keep_Prob")

然后存储整个会话:

saver.save(sess, " model/myGanModel.cpkt ")

在后续文件中恢复此模型:

import tensorflow as tf
tf.train.import_meta_graph('model/myGanModel.cpkt.meta')
graph = tf.get_default_graph()
graph.get_tensor_by_name("Keep_Prob:0")

import_meta_graph将保存的模型导入default_graph中
可以通过get_tensor_by_name恢复出name为Keep_Prob的placeholder

但是在新建sess中并不会加载原图中的权重,需要通过tf.train.Saver()恢复原图的权重

saver=tf.train.Saver()
with tf.Session() as sess:
    saver.restore(sess,"../pro/model/myGanModel.cpkt")
    out=sess.run(out1,feed_dict={Captcha_Holder:Test_Captcha,Keep_Prob:1.})

注意:这一步的restore直接到cpkt就够了,像网上说的model.cpkt.data报错:not a valid checkpoint
即无效的保存点
至此,我终于能够通过saver恢复出我之前精度90%的模型
tensorflow模型的存储与恢复_第1张图片

你可能感兴趣的:(tensorflow模型的存储与恢复)