聊完TensorFlow的由來,再來要瞭解的是TensorFlow的基本架構,這邊先引用我在查詢資料時找到的架構圖:
它的基本架構就是像這樣由下而上堆疊而成的,那麼分別做些簡單的介紹:
處理器:
大家比較熟知的處理器有中央處理器(CPU),也就是每台電腦的重要運算核心之一,還有圖形處理器(GPU),也就是愛打電動的宅宅們相當熟知的微處理器。比較鮮為人知的是張量處理器TPU(Tensor Processing Unit),它是Google為開發人工智慧技術所研製的晶片處理器,比GPU更加強大,但直到近年才開放部份對外銷售。
平台:
昨天有提到TensorFlow期望能適用於各個平台,其中包含常用的電腦作業系統Windows及Linux,兩大行動裝置系統iOS和Android,較為平價簡易的樹莓派(Raspberry Pi),甚至透過雲端執行,在不用修改程式碼的情況下,可以用這些不同平台執行深度學習的訓練。
TensorFlow分散式執行引擎(TensorFlow Distributed Execution Engine):
深度學習中最耗費時間的,即是模型的訓練,依模型大小和資料多寡,訓練時間也不同,比較大型的模型費時長則需數天至數週才能完成。若利用此分散式執行引擎,則可同時於多台機器上進行運算與訓練,大幅縮短所需時間。
前端程式語言:
TensorFlow可使用多種前端語言,但其中Python的程式碼較為簡明,且易學習、高生產,也方便應用在物件導向、函數式運算等方面,因此推薦大家在TensorFlow中使用Python語言。
高階API:
TensorFlow本身是屬於較低階的深度學習API,所以必須從底層開始做設計開發,層層向上堆疊,雖然自由度高,但是也費時費力。而現在已經有許多開發好的高階深度學習API(Ex:Keras、TF-Learn、...)提供我們使用,讓我們可以更輕鬆更簡潔的建構出完整的深度學習模型。