一统求、什么是TensorFlow?
TensorFlow是google開(kāi)發(fā)的神經(jīng)網(wǎng)絡(luò)的python結(jié)構(gòu)包据块,用于人工智能的開(kāi)源神器码邻。
TensorFlow? 是一個(gè)采用數(shù)據(jù)流圖(data flow graphs),用于數(shù)值計(jì)算的開(kāi)源軟件庫(kù)另假。節(jié)點(diǎn)(Nodes)在圖中表示數(shù)學(xué)操作像屋,圖中的線(edges)則表示在節(jié)點(diǎn)間相互聯(lián)系的多維數(shù)據(jù)數(shù)組,即張量(tensor)边篮。它靈活的架構(gòu)讓你可以在多種平臺(tái)上展開(kāi)計(jì)算己莺,例如臺(tái)式計(jì)算機(jī)中的一個(gè)或多個(gè)CPU(或GPU),服務(wù)器戈轿,移動(dòng)設(shè)備等等凌受。TensorFlow 最初由Google大腦小組(隸屬于Google機(jī)器智能研究機(jī)構(gòu))的研究員和工程師們開(kāi)發(fā)出來(lái)思杯,用于機(jī)器學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)方面的研究领突,但這個(gè)系統(tǒng)的通用性使其也可廣泛用于其他計(jì)算領(lǐng)域殴泰。
二捞魁、什么是數(shù)據(jù)流圖?
數(shù)據(jù)流圖用“結(jié)點(diǎn)”(nodes)和“線”(edges)的有向圖來(lái)描述數(shù)學(xué)計(jì)算〈斩“節(jié)點(diǎn)” 一般用來(lái)表示施加的數(shù)學(xué)操作塘匣,但也可以表示數(shù)據(jù)輸入(feed in)的起點(diǎn)/輸出(push out)的終點(diǎn),或者是讀取/寫(xiě)入持久變量(persistent variable)的終點(diǎn)历谍⊙埃“線”表示“節(jié)點(diǎn)”之間的輸入/輸出關(guān)系退唠。這些數(shù)據(jù)“線”可以輸運(yùn)“size可動(dòng)態(tài)調(diào)整”的多維數(shù)據(jù)數(shù)組,即“張量”(tensor)。張量從圖中流過(guò)的直觀圖像是這個(gè)工具取名為“Tensorflow”的原因。一旦輸入端的所有張量準(zhǔn)備好硝枉,節(jié)點(diǎn)將被分配到各種計(jì)算設(shè)備完成異步并行地執(zhí)行運(yùn)算。
三劣欢、TensorFlow特征
3.1 高度的靈活性
TensorFlow 不是一個(gè)嚴(yán)格的“神經(jīng)網(wǎng)絡(luò)”庫(kù)价脾。只要你可以將你的計(jì)算表示為一個(gè)數(shù)據(jù)流圖,你就可以使用Tensorflow。你來(lái)構(gòu)建圖省店,描寫(xiě)驅(qū)動(dòng)計(jì)算的內(nèi)部循環(huán)粗俱。我們提供了有用的工具來(lái)幫助你組裝“子圖”(常用于神經(jīng)網(wǎng)絡(luò)),當(dāng)然用戶也可以自己在Tensorflow基礎(chǔ)上寫(xiě)自己的“上層庫(kù)”。定義順手好用的新復(fù)合操作和寫(xiě)一個(gè)python函數(shù)一樣容易油宜,而且也不用擔(dān)心性能損耗蚁堤。當(dāng)然萬(wàn)一你發(fā)現(xiàn)找不到想要的底層數(shù)據(jù)操作立磁,你也可以自己寫(xiě)一點(diǎn)c++代碼來(lái)豐富底層的操作。
3.2 真正的可移植性(Portability)
Tensorflow 在CPU和GPU上運(yùn)行,比如說(shuō)可以運(yùn)行在臺(tái)式機(jī)、服務(wù)器锅移、手機(jī)移動(dòng)設(shè)備等等备绽。想要在沒(méi)有特殊硬件的前提下倍靡,在你的筆記本上跑一下機(jī)器學(xué)習(xí)的新想法?Tensorflow可以辦到這點(diǎn)。準(zhǔn)備將你的訓(xùn)練模型在多個(gè)CPU上規(guī)拇菰模化運(yùn)算,又不想修改代碼?Tensorflow可以辦到這點(diǎn)乞封。想要將你的訓(xùn)練好的模型作為產(chǎn)品的一部分用到手機(jī)app里?Tensorflow可以辦到這點(diǎn)。你改變主意了户敬,想要將你的模型作為云端服務(wù)運(yùn)行在自己的服務(wù)器上脑又,或者運(yùn)行在Docker容器里?Tensorfow也能辦到汰扭。Tensorflow就是這么拽环揽。
3.3 將科研和產(chǎn)品聯(lián)系在一起
過(guò)去如果要將科研中的機(jī)器學(xué)習(xí)想法用到產(chǎn)品中序无,需要大量的代碼重寫(xiě)工作。那樣的日子一去不復(fù)返了椰苟!在Google层皱,科學(xué)家用Tensorflow嘗試新的算法哩俭,產(chǎn)品團(tuán)隊(duì)則用Tensorflow來(lái)訓(xùn)練和使用計(jì)算模型,并直接提供給在線用戶咐扭。使用Tensorflow可以讓?xiě)?yīng)用型研究者將想法迅速運(yùn)用到產(chǎn)品中辛馆,也可以讓學(xué)術(shù)性研究者更直接地彼此分享代碼焚辅,從而提高科研產(chǎn)出率。