深度學習:TensorFlow簡介

關於TensorFlow

TensorFlow是一個採用數據流圖(data flow graphs),用於數值計算的開源軟件庫。節點(Nodes)在圖中表示數學操作,圖中的線(edges)則表示在節點間相互聯繫的多維數據數組,即張量(tensor)。是由谷歌的研究員和工程師研究開發,用於機器學習和深度神經網絡方面的研究,但這個系統的通用性使其也可廣泛用於其他計算領域。

什麼是數據流圖(Data Flow Graph)?

數據流圖中使用“節點”與“線”表示。如果用計算機中的邏輯表示的話,“節點”就是輸入輸出位,而“線”代表着中間實現的邏輯門,如與、或、非。

Tensorflow的特徵

  • 高度的靈活性

TensorFlow 不是一個嚴格的“神經網絡”庫。只要你可以將你的計算表示爲一個數據流圖,你就可以使用Tensorflow。你來構建圖,描寫驅動計算的內部循環。我們提供了有用的工具來幫助你組裝“子圖”(常用於神經網絡),當然用戶也可以自己在Tensorflow基礎上寫自己的“上層庫”。定義順手好用的新複合操作和寫一個python函數一樣容易,而且也不用擔心性能損耗。當然萬一你發現找不到想要的底層數據操作,你也可以自己寫一點c++代碼來豐富底層的操作。

  • 真正的可移植性(Portability)

Tensorflow 在CPU和GPU上運行,比如說可以運行在臺式機、服務器、手機移動設備等等。想要在沒有特殊硬件的前提下,在你的筆記本上跑一下機器學習的新想法?Tensorflow可以辦到這點。準備將你的訓練模型在多個CPU上規模化運算,又不想修改代碼?Tensorflow可以辦到這點。想要將你的訓練好的模型作爲產品的一部分用到手機app裏?Tensorflow可以辦到這點。你改變主意了,想要將你的模型作爲雲端服務運行在自己的服務器上,或者運行在Docker容器裏?Tensorfow也能辦到

  • 多語言支持

Tensorflow 有一個合理的c++使用界面,也有一個易用的python使用界面來構建和執行你的graphs。你可以直接寫python/c++程序,也可以用交互式的ipython界面來用Tensorflow嘗試些想法,它可以幫你將筆記、代碼、可視化等有條理地歸置好。當然這僅僅是個起點——我們希望能鼓勵你創造自己最喜歡的語言界面,比如Go,Java,Lua,Javascript,或者是R

  • 性能最優化

比如說你又一個32個CPU內核、4個GPU顯卡的工作站,想要將你工作站的計算潛能全發揮出來?由於Tensorflow 給予了線程、隊列、異步操作等以最佳的支持,Tensorflow 讓你可以將你手邊硬件的計算潛能全部發揮出來。你可以自由地將Tensorflow圖中的計算元素分配到不同設備上,Tensorflow可以幫你管理好這些不同副本。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章