1.首先還是來一段介紹
import tensorflow as tf # 下面兩句是防止警告信息 import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 創建一個常值運算,將作爲一個節點加入到默認計算圖中 hello = tf.constant("Hello world!") # 創建一個TF對話 sess = tf.Session() # 運行並獲取結果 print(sess.run(hello))
輸出結果:
runfile('/home/tlxy/PycharmProjects/demo1/tensorflow/demo1.py', wdir='/home/tlxy/PycharmProjects/demo1/tensorflow') b'Hello world!'
TensorFlow = Tensor + Flow
計算圖是一個有向圖(有向圖即爲有箭頭的圖像)
由以下內容構成:
• 一組節點,每個節點都代表一個操作,是一種運算
• 一組有向邊,每條邊代表節點之間的關係(數據傳遞和控制依賴)
Tensorflow有兩種邊:
• 常規邊(實線):代表數據依賴關係。一個節點的運算輸出成爲另一個節點的輸入,兩個節點之間有tensor流動(值傳遞)• 特殊邊(虛線):不攜帶值,表示兩個節點之間的控制相關性。比如,happens-before關係,源節點必須在目的節點執行前完成執行
import tensorflow as tf # 一個簡單的計算圖 node1 = tf.constant(3.0, tf.float32, name="node1") node2 = tf.constant(4.0, tf.float32, name="node1") node3 = tf.add(node1, node2) print(node3) print(node1) print(node2)
我們分別打印出:
Tensor("Add:0", shape=(), dtype=float32) Tensor("node1:0", shape=(), dtype=float32) Tensor("node1_1:0", shape=(), dtype=float32)
輸出的是一個張量結構,而不是一個值
node1 = tf.constant(3.0, tf.float32, name="node1") node2 = tf.constant(4.0, tf.float32, name="node1") node3 = tf.add(node1, node2) # 可以通過創建會話session來執行數據操作 sess = tf.Session() print("node1的值:",sess.run(node1)) print("node2的值:",sess.run(node2)) print("node3的值:",sess.run(node3)) sess.close()
輸出結果:
node1的值: 3.0 node2的值: 4.0 node3的值: 7.0
通過session我們可以真正執行這個計算圖