2017-01-19 11 views
4

私はちょうどPythonでTensorflowを学び始めます。私は単純なAddTwoクラスで始めると次のエラーが出ます。エラーメッセージは次のとおりです。Tensorflow feed_dictキーはTensorとして解釈できません

テンソルとしてfeed_dictキーを解釈することはできません:テンソル テンソル(「プレースホルダ:0」、DTYPE =のfloat32)は、この グラフの要素ではありません。

誰でも私に正しい方法を教えてもらえますか?

AddTwoクラスを呼び出すメインコード
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 

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

sess: 'tf.Session(graph = self.graph)で'を試しましたか?グラフ作成中にセッションを設定しないでください。 – VMAtm

+0

ありがとうございます。できます。 –

答えて

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 
関連する問題