我已经看过许多有关保存训练有素的神经网络的问题,包括Tensorflow: how to save/restore a model?和https://cv-tricks.com/tensorflow-tutorial/save-restore-tensorflow-models-quick-complete-tutorial/,但没有一个像我一样在没有明确保存特定变量的情况下保存模型。这是我的情况:
# In session "sesh"
saver = tf.train.Saver()
saver.save(sesh,os.getcwd(),latest_filename= 'RNN_plasma.ckpt')
现在,我退出会议并想要恢复我刚刚保存的模型。我怎样才能做到这一点?尝试时:
import tensorflow as tf
with tf.Session() as session1:
#First let's load meta graph and restore weights
saver = tf.train.import_meta_graph('RNN_plasma.ckpt')#error-line
saver.restore(session1,tf.train.latest_checkpoint('./'))
,tf.train.import_meta_graph()调用返回:
raise IOError("Cannot parse file %s: %s." % (filename, str(e)))
IOError: Cannot parse file RNN_plasma.ckpt: 1:1 : Message type "tensorflow.MetaGraphDef" has no field named "model_checkpoint_path"..
任何人都可以对这里发生的事情以及如何解决问题有任何见解吗?
(我的TensorFlow版本不带有tf.python.saved_model.simple_save()。(我有git_version 1.5.0))
答案 0 :(得分:0)
您保存了一个简单的检查点,但随后尝试将其作为元图加载。这行不通。 TensorFlow网站上有一篇文章解释了差异
必须有一个以.meta
结尾的文件。
答案 1 :(得分:0)
保存:
saver = tf.train.Saver()
saver.save(sess,"/tmp/network")
还原:
sess = tf.Session()
saver = tf.train.import_meta_graph('/tmp/network.meta')
saver.restore(sess,tf.train.latest_checkpoint('/tmp'))
graph = tf.get_default_graph()