我有一个占位符列表,名为" 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值是他们不想看的张量?
感谢!!!
答案 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]]}))