"TensorFlow is an Open Source Software Library for Machine INtenlligence"
本筆記參考tensorflow.org的教程,翻譯並記錄作者的學習過程,僅供參考,如有不當之處,請及時指出並多多包涵。
TensorFlow是一款開源的數學計算軟件,使用data flow graphs的形式進行計算。這種靈活的架構允許我們使用相同的API在單或多CPUs或GPU,servers設置移動設備上進行計算。
Data Flow Graph: 使用有向圖的節點和邊共同描述數學計算。graph中的nodes代表數學操作,也可以表示數據輸入輸出的端點。邊表示節點之間的關系,傳遞操作之間互相使用的多位數組(tensors,張量),tensor在graph中流動——這也就是TensorFlow名字的由來。一旦節點相連的邊傳來了數據流,節點就被分配到計算設備上異步的(節點間)、並行的(節點內)執行。參見上圖。
TensorFlow的特點:
- Deep Flexibility: TensorFlow並不只是一個規則的neural network庫,事實上如果你可以將你的計算表示成data flow graph的形式,就可以使用TensorFlow。用戶構建graph,寫內層循環代碼驅動計算,TensorFlow可以幫助裝配子圖。定義新的操作只需要寫一個Python函數,如果缺少底層的數據操作,需要寫一些C++代碼定義操作。
- True Portability: 可以應用在不同設備上,cpus,gpu,移動設備,雲平台等
- Connect Research and Production
- Auto-Differentiation:TensorFlow的自動差分能力對很多基於Graph的機器學習算法有益??
- Language Options: TensorFlow很容易使用,有python接口和C++接口。其他語言可以使用SWIG工具使用接口。(SWIG,Simplified Wrapper and Interface Generator, 是一個非常優秀的開源工具,支持您將
C/C++
代碼與任何主流腳本語言相集成。) - Maximize Performance: 充分利用硬件資源。TensorFlow可以將graph的不同計算單元分配到不同設備執行,使用TensorFlow處理副本。