我正在嘗試恢復張量流中保存的變量。似乎它非常非常複雜。如何恢復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]
的初始值,而不是微調,那些