2017-06-16 106 views
2

我正试图在Tensorflow中恢复我的模型。这是我如何保存的模型:
Tensorflow恢复模式:尝试使用未初始化的值

ae = autoencoder(input_shape=[None, height, width, depth], conv_strides=[[1, stride1, stride1, 1], [1, stride2, stride2, 1]], n_filters=[1, num_filters, num_filters], filter_sizes=[size_filter, size_filter, size_filter], corruption=False, poolsize=2) 

optimizer = tf.train.AdamOptimizer(learning_rate).minimize(ae['cost']) 

# create a session to use the graph 
init = tf.global_variables_initializer() 
saver = tf.train.Saver() 
with tf.Session() as sess: 
    sess.run(init) 
    # Network is trained here 
    ... 
    saver.save(sess, "model.ckpt") 

然后我尝试使用此代码来恢复它(在另一个文件中,训练模型之后,所以在一个单独的会话):

with tf.Session() as sess: 
    saver = tf.train.import_meta_graph("model.ckpt.meta") 
    saver.restore(sess, "model.ckpt") 
    print("Model restored") 
    ae = autoencoder(input_shape=[None, height, width, depth], conv_strides=[[1, stride1, stride1, 1], [1, stride2, stride2, 1]], n_filters=[1, num_filters, num_filters], filter_sizes=[size_filter, size_filter, size_filter], corruption=False, poolsize=2) 
    # create stuff here to reconstruct images using the autoencoder 
    ... 
    recon = sess.run(ae['y'], feed_dict={ae['x']: batch}) 

它打印出模型恢复,但我得到一个错误:
FailedPreconditionError:尝试使用未初始化的值
根据Tensorflow文档,您不必在恢复后初始化变量,所以我想它不会去那里错了。有谁知道如何解决这一问题?我有我做一些非常愚蠢的一种感觉......

回答

2

试试这个:

ae = autoencoder(input_shape=[None, height, width, depth], conv_strides= 
[[1, stride1, stride1, 1], [1, stride2, stride2, 1]], n_filters=[1, num_filters, num_filters], filter_sizes=[size_filter, size_filter, size_filter], corruption=False, poolsize=2)  
optimizer = tf.train.AdamOptimizer(learning_rate).minimize(ae['cost']) 

saver = tf.train.Saver() 

with tf.Session() as sess: 
    saver.restore(sess, "model.ckpt") 
    print("Model restored") 
    # create stuff here to reconstruct images using the autoencoder 
    ... 
    recon = sess.run(ae['y'], feed_dict={ae['x']: batch}) 
+0

要清楚,我必须使用'保护= tf.train.import_meta_graph(“model.ckpt。 meta“)'来创建保护程序?因为这不起作用。 – Kes

+0

我的不好,看到上面的修改后的版本。 – MZHm

+0

谁能告诉我为什么这个工程? – ycyoon