Skip to main content
 首页 » 编程设计

python之在不显式保存 session 变量的情况下恢复 TensorFlow 模型

2024年12月31日25sky-heaven

我看过很多关于保存训练好的神经网络的问题,包括 Tensorflow: how to save/restore a model?和 https://cv-tricks.com/tensorflow-tutorial/save-restore-tensorflow-models-quick-complete-tutorial/但是他们都没有在不明确保存特定变量的情况下保存模型,就像我的情况一样。这是我的情况:

# 在 session “sesh”中 节电器 = tf.train.Saver() saver.save(sesh,os.getcwd(),latest_filename= 'RNN_plasma.ckpt')

现在,我退出 session 并想要恢复我刚刚保存的模型。我怎样才能做到这一点?尝试时:

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

请您参考如下方法:

保存:

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