2016-03-01 55 views
0

假設我將張量定義爲RESULT = tf.add(tf.matmul(Var_1, Var_2)) 我可以通過使用sess.run(RESULT)來獲得RESULT的值。如何獲得在函數或變量範圍內定義的張量值?

但是,如果我在一些函數中定義了結果張量,例如。

def fun1(): RESULT = tf.add(tf.matmul(Var_1, Var_2))

那我怎麼才能得到結果的值?同樣的方法,如果我在變量範圍內定義,那麼獲得該張量值的方法是什麼?

回答

0

您可以使用收集我認爲:

def fun1(): 
    RESULT = tf.add(tf.matmul(Var_1, Var_2)) 
    tf.add_to_collection("FV",RESULT) 
def fun2(): 
    RESULT =tf.getCollection("FV")[0] 
    sess.run(RESULT) 
0

對我下面的工作:

with tf.Session() as sess: 
     ... 
     op = sess.graph.get_operations() 
     test = tf.get_default_graph().get_tensor_by_name("tensor_name") 
  • op = sess.graph.get_operations()讓你在計算中使用的所有張量的列表。您可以打印它print([p.values() for p in op])並找到您感興趣的張量的名稱。
  • test = tf.get_default_graph().get_tensor_by_name("tensor_name")爲您提供指定名稱的張量。