我正在尝试恢复张量流中保存的变量。似乎它非常非常复杂。如何恢复tensorflow中保存的变量?
我使用http://www.cs.toronto.edu/~guerzhoy/tf_alexnet/
的alexnet实施Python文件,alexnet.py,我定义变量
conv5W = tf.Variable(net_data["conv5"][0],name='conv5w')
然后,我微调模型,我看到一些它的值都改变。我的打字保存微调,型号:
saver = tf.train.Saver()
saver.save(sess,"modelname.ckpt")
在那之后,我打开一个新的IPython的控制台,然后运行:
from alexnet import *
sess=tf.InteractiveSession()
new_saver = tf.train.import_meta_graph("modelname.ckpt.meta")
new_saver.restore(sess, "modelname.ckpt")
后
,当我尝试与检索变量的值:
conv5W.eval(session=sess)
它产生:
FailedPreconditionError: Attempting to use uninitialized value conv5w
[[Node: conv5w/_98 = _Send[T=DT_FLOAT, client_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_4_conv5w", _device="/job:localhost/replica:0/task:0/gpu:0"](conv5w)]]
[[Node: conv5w/_99 = _Recv[_start_time=0, client_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_4_conv5w", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"]()]]
在另一方面,如果我初始化变量与:
init = tf.initialize_all_variables()
sess.run([init]) ,
此时它产生在net_data["conv5"][0]
的初始值,而不是微调,那些