TensorFlow主要分為計算模型、數據模型和運行模型.
TensorFlow計算模型——計算圖
TensorFlow中的計算可以表示為一個有向圖(directed graph),或稱為計算圖(computation graph),其中每一個運算操作(operation)將作為一個節點(Node),節點與節點之間的連接稱為邊(edge)。這個計算圖描述了數據的計算流程,在計算圖的邊中流動(flow)的數據被稱為張量(tensor),故得名Tensorflow。
TensorFlow數據模型——張量
張量是TensorFlow管理數據的形式,從功能的角度看,張量就是一個多維數組。一個張量中主要保存了三個屬性:名字(name)、維度(shape)和類型(type)。
TensorFlow計算模型——會話
Session是用戶使用TensorFlow時的交互式接口。用戶可以通過Session的Extend方法添加新的節點和邊,用以創建計算圖,然后就可以通過Session的Run方法執行計算圖:用戶給出需要計算的節點,同時提供數據,TensorFlow就會自動尋找所有需要計算的節點並按依賴順序執行它們。對於絕大部分的用戶來說,他們只會創建一次計算圖,然后反復地執行整個計算圖或是其中的一部分子圖(sub-graph)。會話擁有並管理TensorFlow程序運行時的所有的資源。
tensorflow程序一般分為兩個階段,第一階段是定義計算圖的所有計算,第二階段是使用會話執行計算,會話擁有並管理tensorflow程序運行時的所有資源。所有計算完成后需要關閉會話來幫助系統回收資源,否則可能會出現資源泄露的問題。