TensorFlow的設計理念
基於符號式編程
tensorflow先定義各種變量,然後建立一個數據流圖,在數據流圖中規定各個變量之間的計算關係,最後需要對數據流圖進行編譯,但此時數據流還是一個空客兒,裏面沒有任何實際數據,只有把需要運算的輸入放進入後,才能在整個模型中形成數據流,從而形成輸出值。
例一:
傳統面嚮對象語言中,如。
print(8+8)
#輸出結果爲:16
在傳統的程序操作中,運行後就執行了運算,輸出16。而在tensorflow中,數據流圖中的節點,實際上對應的是Tensorflow API中的一個操作,並沒有真正去運行。
import tensorflow as tf
t=tf.add(8,8)
print(t)
#輸出結果爲:Tensor("Add:0", shape=(), dtype=int32)
定義了一個操作,但實際上並沒有運行。
Tensorflow運算要放在圖中,圖運行只發生在會話(session)中,開啓會話後,就可以用數據去填充節點進行運算,關閉會話後就不能進行計算,因爲會話提供了操作運行和Tensor求值的環境,如:
import tensorflow as tf
# 創建圖
a = tf.constant([5.6, 2.0])
b = tf.constant([3.0, 4.0])
c = a * b
# 創建會話
sess = tf.Session()
# 計算c
print(sess.run(c))
sess.close()