无法将feed_dict键解释为Tensor

时间:2016-07-16 01:24:12

标签: tensorflow

我有一个占位符列表,名为" enqueue_ops"以及名为" feed_fns"的方法列表,每个方法都返回一个feed_dict。

我的图表的队列运行符定义为:

queue_runner = feeding_queue_runner.FeedingQueueRunner(
            queue=queue, enqueue_ops=enqueue_ops,
            feed_fns=feed_fns)

但是我收到了错误

TypeError: Cannot interpret feed_dict key as Tensor: The name 'face_detection/x1' refers to an Operation, not a Tensor. Tensor names must be of the form "<op_name>:<output_index>".

但为什么他们会查看我的feed_dict键,而我的feed_dict值是他们不想看的张量?

感谢!!!

1 个答案:

答案 0 :(得分:1)

在Tensorflow中,如果要还原图形并使用它,则在保存图形之前,应给所需的变量,占位符,操作等赋予唯一名称。

有关示例,请参见下文。

W = tf.Variable(0.1, name='W')
X = tf.placeholder(tf.float32, (None, 2), name='X')
mult = tf.multiply(W,X,name='mult')

然后,保存图形后,可以按以下方式恢复和使用它。请记住将张量用引号引起来。并且,如果要查找张量的值,请在张量名称的末尾添加:0,因为tensorflow要求其采用“ op_name:output_index”格式。

with tf.Session() as sess:
    new_saver = tf.train.import_meta_graph('your_model.meta')
    new_saver.restore(sess, tf.train.latest_checkpoint('./'))
    print(sess.run('mult:0', feed_dict={'X:0': [[1,4],[2,9]]}))