tensorflow中的 張量(tensor)與節點操作(OP)
阿新 • • 發佈:2019-01-01
#所以需要注意的是 張量 不是 節點操作(OP)
#tensor1 = tf.matmul(a,b,name='exampleop')
#上面這個 定義的只是一個張量,是在一個靜態的圖(graph)中的
#張量在 定義完成之後是不會進行操作的,想要進行操作就必須使用 節點操作 也就是OP來執行,才能計算出ab矩陣的乘積
#OP其實是在描述 張量 中的運算關係
可以參照下面的這個例子,來理解tensorflow中 張量 與 節點操作 之間的關係
import tensorflow as tf tf.reset_default_graph() a = tf.constant([[1.0,2.0]]) b = tf.constant([[1.0],[3.0]]) tensor1 = tf.matmul(a,b,name='exampleop') print(tensor1.name,tensor1) g3 = tf.get_default_graph() #注意 tensor的名字是定義的 name 再加上 :0,也就是 name:0 #把找到的tensor複製給這個變數,也就是說test和tensor1是一樣的 test = g3.get_tensor_by_name('exampleop:0') print(test) print(tensor1.op.name) #獲取節點操作 OP testop = g3.get_operation_by_name("exampleop") print("a:",a.name) print("b:",b.name) print(testop) with tf.Session() as sess: sess.run(tf.global_variables_initializer()) test = sess.run(test) print(test) test = tf.get_default_graph().get_tensor_by_name("exampleop:0") print(test)