文章作者:Tyan
博客:noahsnail.com
TensorFlow是一個關于機器智能的開源軟件庫
關于TensorFlow
TensorFlow?是一個用數據流圖進行數值計算的開源軟件庫剧蹂。數據流圖中的結點表示數學運算,數據流圖中的邊表示多維數據數組(張量)之間的數據交互烦却。這個靈活的結構讓你可以通過單獨的API將計算部署在一個或多個CPU或GPU上宠叼,這些CPU或GPU可以位于臺式機、服務器或移動設備上短绸。TensorFlow最初是由Google大腦團隊中的研究員和工程師開發(fā)的车吹,Google大腦團隊在Google的機器智能研究組織中主要是進行機器學習和深度神經網絡研究的,TensorFlow系統具有足夠的通用性醋闭,也可以應用在許多其它的領域。
什么是數據流圖朝卒?
數據流圖通過有向圖的結點和邊來描述數學計算证逻。結點通常實現數學運算,但也能表示端點輸入數據抗斤,推出結果囚企,或讀/寫持續(xù)的變量。邊表示結點之間的輸入/輸出關系瑞眼。這些數據邊攜帶動態(tài)大小的多維數據數組或張量龙宏。圖中的張量流動是TensorFlow名字的來源。結點被分配到計算設備上伤疙,以異步方式執(zhí)行银酗,一旦結點輸入邊的所有張量可用便并行執(zhí)行。
TensorFlow的特性
深度靈活性
TensorFlow不是一個死板的神經網絡庫徒像。如果你能將你的計算表示成數據流圖黍特,你就可以使用TensorFlow。你要構建數據流圖锯蛀,并且編寫驅動計算的內部循環(huán)灭衷。我們將提供幫助工具來裝配神經網絡中的常見子圖,但用戶要能編寫在TensorFlow之上的他們自己的更高層次的庫旁涤。定義方便的操作符新組合就像定義一個Python函數那樣容易翔曲,在性能上不會有任何損失。如果你不想看你需要的低層操作符劈愚,你可以寫點C++添加一個新的操作符瞳遍。
真正的可移植性
TensorFlow運行在CPU或GPU上,在桌面端造虎,服務器或移動計算平臺上傅蹂。想在筆記本上實現你的機器學習想法而不需要任何特定的硬件?TensorFlow可以幫你實現。準備擴大并在GPU上更快的訓練模型而不改變任何結點份蝴?TensorFlow可以幫你實現犁功。想在移動端部署訓練的模型作為產品中的一部分?TensorFlow可以幫你實現婚夫。改變你的想法并且想在云上運行模型來作為服務浸卦?用Docker進行容器化,TensorFlow能很好的工作案糙。
連接研究與產品
當將機器學習想法從研究轉化成產品時需要進行主要的重寫的日子已經過去了限嫌。在Google,研究科學家在TensorFlow中進行新算法的實驗时捌,產品團隊用TensorFlow來訓練模型并實時的使用模型為真實的消費者服務怒医。使用TensorFlow可以讓產品研究人員更快的將想法變?yōu)楫a品,可以讓學術研究人員更直接的共享代碼奢讨,具有更大的科學再現性稚叹。
自動微分
基于梯度的機器學習算法將能從TensorFlow的自動微分能力中受益。作為一個TensorFlow用戶拿诸,你可以定義你自己的預測模型的計算結構扒袖,結合你的目標函數,只需要添加數據——TensorFlow為你計算導數亩码。計算一些值的導數季率,而模型中的其它值只是擴展你的圖,因此你總是能確切的看到發(fā)生了什么描沟。
語言選擇
TensorFlow附帶很容易使用的Python接口和使用的C++接口來構建并執(zhí)行你的計算圖飒泻。在交互的TensorFlow iPython筆記本中編寫獨立的TensorFlow Python或C++程序,或嘗試一些東西啊掏,iPython筆記本可以存儲筆記蠢络,代碼和邏輯分組可視化。然而這僅僅只是一個開始——我們希望吸引你貢獻你最愛的語言的接口——它可以是Lua迟蜜,Javascript或R刹孔。
最大化性能
想要充分利用具有32核CPU和4塊GPU的工作站的性能嗎?TensorFlow對線程娜睛、隊列和異步計算具有一流的支持髓霞,TensorFlow可以讓你最大程度的利用你的可用硬件,可以自由的將你的TensorFlow圖中計算元素分配到不同的設備上畦戒,讓TensorFlow來處理副本方库。
誰可以使用TensorFlow?
TensorFlow是給每一個人的障斋。它是給學生纵潦、研究人員徐鹤、業(yè)余愛好者、黑客邀层、工程師返敬、開發(fā)人員、發(fā)明家和創(chuàng)新者的寥院,它是根據Apache 2.0開源協議開源的劲赠。
TensorFlow不是完整的;它將要建立和擴展秸谢。我們已經制作了源代碼的初始版本凛澎,會繼續(xù)積極的工作使它更好。我們希望建立一個主動的開源社區(qū)來推動這個庫的未來估蹄,提供反饋并且積極的貢獻源代碼塑煎。
為什么Google開源TensorFlow?
如果TensorFlow是如此之大元媚,為什么對它開源而不是保留它的所有權轧叽?回答可能比你想象的簡單:我們相信機器學習是將來產品創(chuàng)新和技術創(chuàng)新的一個關鍵要素。這個領域的研究是全球性的并且發(fā)展迅速刊棕,但是缺少標準的工具。通過分享TensorFow待逞,我們認為它是世界上最好的機器學習工具之一甥角,我們希望創(chuàng)建一個開放的標準來交流研究想法并把機器學習應用到產品中。Google工程師在面向用戶的產品和服務中真正的在使用TensorFlow识樱,我們的研究組計劃與我們的許多研究出版物一起共享TensorFlow的實現嗤无。