一、TensorFlow架構
處理器:可以在CPU、GPU、TPU執行
平台:具跨平台能力,可以目前主流的平台執行。
TensorFlow Distributed Execution Engine(分散式執行引擎):
深度學習中花最多時間的就是模型訓練,TensorFlow具備分散式運算能力,可以同時在數百台的機型訓練,大量縮短訓練時間。
前端語言:TensorFlow可以使用多種前端語言但對Python的支援最好。
高階API:TensorFlow 是較低階的深度學習API,所以臂瘀自行設計各種深度學習模型,缺點是開發需要更多程式碼,需要花更多時間。所以以TensorFlow為底層開發了很多高階API,如Keras。
二、TensorFlow簡介
TensorFlow由Tensor和Flow組成。
Tensor張量
在數學裡,張量是一種幾何實體,或是廣義上的數量,在此的數量包含純量相量和矩陣。零維的是純量一維的是向量,二維以上是矩陣。
Flow資料流程
TensorFlow的程式都是先建立計算圖,我們可以用TensorFlow提供的模組以不同的程式語言建立計算圖。可以設計張量運算流程,並建構各種深度學習或機器學習模型。建立計算圖完成後,就可以在不同平台執行計算圖。
三、TensorFlow程式設計模式
分為建立計算圖和執行計算圖。
建立計算圖:
使用TensorFlow提供的模組建立計算圖,建構各種深度學習或機器學習模型。
執行計算圖:
建立Session執行計算圖,在TensorFlow中Session的作用是在用戶端和執行裝置間建立連結。有了這個連結可將計算圖在不同裝置中執行,之後任何裝置間的資料傳遞都須透過Session。
四、Keras簡介
Keras使用起來的效率比TensorFlow好很多。Keras只處理模型建立訓練和預測,必須配合後端引擎進行運算。
五、Keras程式設計模式
Keras的程式設計就像是在做一個多層蛋糕。
建立Sequential模型
Sequential模型市多個神經網路層的線性堆疊。可以想像他是一個蛋糕架。
加入輸入層與隱藏層至模型
Keras已經內建各式神經網路層,只需在之前建立的模型上加入你選擇的網路層就好了,就像在蛋糕架中加入蛋糕層一樣簡單。
加入輸出層至模型
加入輸出層至模型就好像在加一層蛋糕。
六、Keras與TensorFlow的比較
資料來源:TensorFlow +keras深度學習人工智慧實務應用