Я пытаюсь восстановить сохраненную переменную в tensorflow. Похоже, это очень сложно.Как восстановить сохраненную переменную в тензорном потоке?
Я использую реализацию alexnet в http://www.cs.toronto.edu/~guerzhoy/tf_alexnet/
в файле питона, 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]
, а не отладили те,