TensorFlow核心概念及基本使用
TensorFlow核心概念
綜述:TensorFlow中的計算可以表示為一個有向圖,或稱計算圖,其中每一個運算操作將作為一個節點,節點間的鏈接叫做邊。這個計算圖描述了數據的計算流程,它也負責維護和更新狀態,用戶可以對計算圖的分支進行條件控制和循環操作。計算圖中的每一個節點可以有任意多個輸入和輸出,每一個節點描述了一種運算操作,節點可以算是運算操作的實例化。在計算圖的邊中流動的的數據被稱為張量。
1.計算圖
TensorFlow是一個通過計算圖的形式來表述計算的編程系統。每一個計算都是計算圖的一個節點,而節點間的邊描述了計算之間的依賴關系。
2.TensorFlow的數據模型-張量
TensorFlow用張量這種數據結構來表示所有的數據.你可以把一個張量想象成一個n維的數組或列表.一個張量有一個靜態類型和動態類型的維數.張量可以在圖中的節點之間流通.
3.TensorFlow的運行模型-會話
會話(Session)用來執行定義好的運算。會話擁有並管理TensorFlow程序運行時的所有資源。當所有計算完成後需關閉會話來幫助系統回收資源。使用會話的方式一般有兩種:
(1)sess = tf.Session()
sess .run(...)
sess.close()
//因異常退出可能會未執行關閉會話的語句
(2)with tf.Session() as sess:
sess.run(...)
//執行完自動關閉會話
4.變量
變量是一類特殊的運算操作,它可以將一些需要保留的tensor儲存在內存或顯存中,比如神經網絡中的系數。當訓練模型時,用變量來存儲和更新參數。通常會將一個統計模型中的參數表示為一組變量. 例如, 你可以將一個神經網絡的權重作為某個變量存儲在一個 tensor 中. 在訓練過程中, 通過重復運行訓練圖, 更新這個 tensor.
TensorFlow的基本使用
1.構建圖
import tensorflow as tf
# 創建一個常量 op, 產生一個 1x2 矩陣. 這個 op 被作為一個節點
# 加到默認圖中.
# 構造器的返回值代表該常量 op 的返回值.
matrix1 = tf.constant([[3., 3.]])
# 創建另外一個常量 op, 產生一個 2x1 矩陣.
matrix2 = tf.constant([[2.],[2.]])
# 創建一個矩陣乘法 matmul op , 把 ‘matrix1‘ 和 ‘matrix2‘ 作為輸入.
# 返回值 ‘product‘ 代表矩陣乘法的結果.
product = tf.matmul(matrix1, matrix2)
2.在一個會話中啟動圖
這個使用在上一點會話中有提到的兩種方法。
TensorFlow核心概念及基本使用