1. 程式人生 > >TensorFlow學習之路1-TensorFlow介紹

TensorFlow學習之路1-TensorFlow介紹

TensorFlow是一個採用資料流圖(data flow graphs),用於資料計算的開源軟體庫。

什麼是資料流圖?

TensorFlow的資料流圖是由“節點”(nodes)和“線”(edges)組成的有向無環圖來描述數學計算。“節點”一般用來表示施加的數學操作,但也可以表示資料輸入(feed in)的起點/輸出(push out)的終點,或者是讀取/寫入持久變數(persistent variable)的終點。“線”表示“節點”之間的輸入/輸出關係。這些資料“線”可以輸運多維資料陣列,即“張量”(tensor)。張量從圖中流過的直觀影象是這個工具取名為“TensorFlow”的原因。一旦輸入端的所有張量準備好,節點將被分配到各種計算裝置完成非同步並行地執行計算。

TensorFlow的特點:

  高度的靈活性

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

  自動求微分

    基於梯度的機器學習演算法會受益於TensorFlow自動求微分的能力。作為TensorFlow使用者,你只需要定義預測模型的結構,將這個結構和目標函式(objective function)結合在一起,並新增資料,TensorFlow將自動為你計算相關的微分導數。計算某個變數相對於其他變數的導數僅僅是通過擴充套件你的圖來完成的,所以你能一直清楚看到究竟在發生什麼。

 

參考資料:

TensorFlow中文社群