【问题标题】:Tensorflow feed_dict key cannot be interpreted as TensorTensorflow feed_dict 键不能解释为 Tensor
【发布时间】:2017-01-19 02:14:02
【问题描述】:

我刚开始在 python 中学习 Tensorflow。当我从一个简单的 AddTwo 类开始时出现以下错误。错误消息是:

无法将 feed_dict 键解释为张量:张量 Tensor("Placeholder:0", dtype=float32) 不是这个的元素 图表。

谁能帮我指出正确的方法?

import numpy as np
import tensorflow as tf

class AddTwo(object):

    def __init__(self):
        self.graph = tf.Graph()

        with self.graph.as_default():
            self.sess = tf.Session()
            self.X = tf.placeholder(tf.float32)
            self.Y = tf.placeholder(tf.float32)

            # Create an op to add the two placeholders.
            self.Z = tf.add(self.X, self.Y)

    def Add(self, x, y):       
        with tf.Session() as sess:
            #self.Z = tf.add(x, y)
            result = sess.run(self, feed_dict={self.X: x, self.Y: y})
            return result

调用 AddTwo 类的主要代码:

adder = graph.AddTwo()  
print adder.Add(50, 7)
print adder.Add([1,5],[6,7])

【问题讨论】:

  • 你试过with tf.Session(graph=self.graph) as sess:吗?在图表创建期间没有设置会话。
  • 谢谢。它有效。

标签: python tensorflow


【解决方案1】:

正如我在评论中建议的那样,您应该使用创建的图形打开会话,因此代码应该是这样的:

with self.graph.as_default():
    # no session here
    self.X = tf.placeholder(tf.float32)
    self.Y = tf.placeholder(tf.float32)

# open session with providing the graph
with tf.Session(graph=self.graph) as sess:
    pass

【讨论】:

    猜你喜欢
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 2017-12-21
    相关资源
    最近更新 更多