我无法在tensorflow中使用占位符保存和恢复变量

时间:2017-03-03 08:47:23

标签: python

我的代码如下:

import tensorflow as tf
import numpy as np
sess = tf.Session()
saver = tf.train.import_meta_graph('./model.ckpt.meta')
saver.restore(sess, tf.train.latest_checkpoint('./'))
x2=np.random.random([2, 2])
print(sess.run(tf.get_collection('outputs',feed_dict={x:x2})))
print('model is loaded')
sess.close()

然后运行其他代码:

{{1}}

然后电脑告诉我' x'没有定义,我不知道出了什么问题。

2 个答案:

答案 0 :(得分:0)

我想这样做:

import tensorflow as tf
import numpy as np
sess = tf.Session()
saver = tf.train.Saver()
saver.restore(sess, './model.ckpt')
x2=np.random.random([2, 2])
print(sess.run(tf.get_collection('outputs',feed_dict={x:x2})))
print('model is loaded')
sess.close()

我在tensorflow的网站上找到了这个。希望它有所帮助。

答案 1 :(得分:0)

我找到了解决问题的方法:

import tensorflow as tf
import numpy as np
def add_layer(input):
    #v1 = tf.Variable(np.random.random([2, 2]), dtype=tf.float32, name='v1')
    v2 = tf.Variable(tf.random_normal([2, 2], dtype=tf.float32, name='v2'))
    tf.add_to_collection('h0_v2',v2)
    output=tf.matmul(input,v2)
    return output
x=tf.placeholder(tf.float32)
outputs=add_layer(x)
saver = tf.train.Saver()
sess = tf.Session()
saver = tf.train.import_meta_graph('./model.ckpt.meta')
saver.restore(sess, tf.train.latest_checkpoint('./'))
x2=np.random.random([2, 2])
print(sess.run(outputs,feed_dict={x:x2}))
print('model is loaded')
sess.close()