Tensorflow恢复模式:尝试使用未初始化的值
问题描述:
我正试图在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文档,您不必在恢复后初始化变量,所以我想它不会去那里错了。有谁知道如何解决这一问题?我有我做一些非常愚蠢的一种感觉......
答
试试这个:
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})
要清楚,我必须使用'保护= tf.train.import_meta_graph(“model.ckpt。 meta“)'来创建保护程序?因为这不起作用。 – Kes
我的不好,看到上面的修改后的版本。 – MZHm
谁能告诉我为什么这个工程? – ycyoon