Tensorflow feed_dict键不能解释为Tensor

Jer*_*ong 5 python tensorflow

我刚开始学习python中的Tensorflow.当我从一个简单的AddTwo类开始时,我收到以下错误.错误消息是:

无法将feed_dict键解释为Tensor:Tensor Tensor("占位符: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
Run Code Online (Sandbox Code Playgroud)

调用AddTwo类的主代码:

adder = graph.AddTwo()  
print adder.Add(50, 7)
print adder.Add([1,5],[6,7])
Run Code Online (Sandbox Code Playgroud)

VMA*_*Atm 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
Run Code Online (Sandbox Code Playgroud)