首页 文章

在tensorflow中评估网络的错误

提问于
浏览
0

我正在尝试通过保护程序加载已保存的模型,并通过测试数据评估网络的输出,恢复已保存的模型并将网络用作函数:

def model(x, x_size):
   with tf.variable_scope("my_net", reuse=tf.AUTO_REUSE):
       W1 = tf.get_variable('w1', [x_size, x_size], 
                initializer=tf.random_normal_initializer())
       b1 = tf.get_variable('b1', [x_size], 
                initializer=tf.random_normal_initializer())  
       y1 = tf.nn.relu(tf.matmul(x, W1) + b1,'y1')
       return y1 


eval_x = tf.placeholder(tf.float32, name='eval_x', shape=[None, x_size])
eval_probs = model(eval_x, x_size)
with tf.Session() as sess:
    new_saver = tf.train.import_meta_graph('save_model/model.ckpt.meta')
    new_saver.restore(sess, "save_model/model.ckpt")
    probs = sess.run(eval_probs, feed_dict={eval_x: test_x})

我得到的错误是:

FailedPreconditionError(参见上面的回溯):尝试使用未初始化的值my_net / w1 [[Node:my_net / w1 / read = IdentityT = DT_FLOAT,class = [“loc:@ my_net / w1”], device =“/ job:本地主机/复制:0 /任务:0 /装置:CPU:0" ]]

有人可以帮忙吗?

2 回答

  • 0

    您需要运行特殊操作来初始化变量,如 w1 . 一种简单的方法是在创建会话之后但在使用变量之前执行 sess.run(tf.global_variables_initializer()) .

  • 1

    从代码中看来,你似乎没有传递任何 Value

    x_size
    

    所以我认为你的变量没有初始化 .

相关问题