TensorFlow 是一款通過(guò)數(shù)據(jù)流圖進(jìn)行數(shù)值計(jì)算的開(kāi)源庫(kù)。在數(shù)據(jù)流圖中,節(jié)點(diǎn)代表數(shù)學(xué)運(yùn)算,邊代表連接了節(jié)點(diǎn)的多維數(shù)組(張量)。靈活的架構(gòu)設(shè)計(jì)讓你可以在臺(tái)式機(jī)、服務(wù)器,甚至移動(dòng)設(shè)備的CPU、GPU上面部署運(yùn)算節(jié)點(diǎn)。TensorFlow最早是被Google Brain的研究者和工程師開(kāi)發(fā)出來(lái)的用于機(jī)器學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)的研究,但是這個(gè)系統(tǒng)也同樣適用于其他領(lǐng)域。
TensorFlow的特性
深度靈活性
TensorFlow不是一個(gè)僵化的神經(jīng)網(wǎng)絡(luò)庫(kù)。只要你能夠把你的運(yùn)算表達(dá)為數(shù)據(jù)流圖,你就可以使用TensorFlow。TensorFlow提供了現(xiàn)成的神經(jīng)網(wǎng)絡(luò)中常見(jiàn)的圖,用戶也可以在TensorFlow的基礎(chǔ)上自己編寫(xiě)庫(kù)。編寫(xiě)自定義的復(fù)合運(yùn)算就像寫(xiě)一個(gè)Python函數(shù)那么簡(jiǎn)單。如果底層的數(shù)據(jù)算子沒(méi)有提供,你也可以用C++自己寫(xiě)一個(gè)。
可移植性
臺(tái)式機(jī)、服務(wù)器,甚至移動(dòng)設(shè)備,都可以部署、移植TensorFlow的程序。既可以在CPU上運(yùn)行,也能在GPU運(yùn)行。如果你想部署到云端,沒(méi)問(wèn)題。Docker很容易支持TensorFlow。
連接科研與產(chǎn)品
研究員通過(guò)TensorFlow研究新的算法,產(chǎn)品團(tuán)隊(duì)用TensorFlow訓(xùn)練模型并把模型集成在產(chǎn)品中提供給用戶。學(xué)術(shù)界的科學(xué)研究和工業(yè)界的產(chǎn)品部署可以更加快速地迭代。
自動(dòng)求導(dǎo)
如果你使用了基于梯度的學(xué)習(xí)算法,TensorFlow的自動(dòng)求導(dǎo)會(huì)給你帶來(lái)很大的便利。作為用戶,你只需要自己定義你的預(yù)測(cè)模型的計(jì)算架構(gòu)和目標(biāo)函數(shù),只需要加上數(shù)據(jù),TensorFlow可以自動(dòng)為你計(jì)算導(dǎo)數(shù)。
語(yǔ)言選擇
TensorFlow提供了方便易用的Python接口,也支持C++,Java,Go等語(yǔ)言。
性能最大化
你可以把你的計(jì)算單元部署到CPU、GPU等不同的設(shè)備上面,并使用線程、隊(duì)列、異步計(jì)算來(lái)最大化你的硬件使用效率。TensorFow為你提供一切便利。
誰(shuí)可以使用TensorFlow
TensorFlow是給每個(gè)人的。學(xué)生、研究者、愛(ài)好者、黑客、工程師、開(kāi)始者、發(fā)明家、創(chuàng)造者都可以使用。TensorFlow基于Apache2.0開(kāi)源協(xié)議。
誰(shuí)在使用TensorFlow
ARM、Snapchat、Airbus、Google、Uber、京東、Twitter、Deepmind、ebay、小米、Dropbox等。