TensorFlow 學習(基本概念)
阿新 • • 發佈:2018-12-14
- TensorFlow 的名字中已經說明了它最重要的兩個念——Tensor 和 Flow。Tensor 就是張量。在 TensorFlow 中,所有的資料都通過張量的形式來表示。從功能的角度上看,張量可以被簡單理解為多維陣列。但張量在 TensorFlow 中的實現並不是直接採用陣列的形式,它只是對TensorFlow 中運算結果的引用。在張量中並沒有真正儲存數字,它儲存的是如何得到這些數字的計算過程。看下面執行的例子:第一個print 輸出的只是一個引用而不是計算結果。
- 一個張量中主要儲存了三個屬性:名字(name)、維度(shape)和型別(type)。張量的第一個屬性名字不僅是一個張量的唯一識別符號,它同樣也給出了這個張量是如何計算出來的。張量的命名是通過“node:src_output”的形式來給出。其中 node 為計算節點的名稱,src_output 表示當前張量來自節點的第幾個輸出。 比如張量“add_1”就說明了 result 這個張量是計算節點“add”輸出的第二個結果(編號從 0 開始)。張量的第二個屬性是張量的維度(shape)。這個屬性描述了一個張量的維度資訊。比如“shape=(3,) ”說明了張量 result是一個一維陣列,這個陣列的長度為 3。張量的第三個屬性是型別(type),每一個張量會有一個唯一的型別。如果說 TensorFlow 的第一個詞 Tensor 表明了它的資料結構,那麼Flow 則體現了它的計算模型。Flow 翻譯成中文就是“流”,它直觀地表達了張量之間通過計算相互轉化的過程。
- TensorFlow 計算圖定義完成後,我們需要通過會話(Session)來執行定義好的運算。會話擁有並管理 TensorFlow 程式執行時的所有資源。當所有計算完成之後需要關閉會話來幫助系統回收資源,否則就可能出現資源洩漏的問題。TensorFlow 可以通過 Python 的上下文管理器來使用會話。 上述程式碼第二段展示瞭如何使用這種模式。