認識 Keras 與 tf.keras
參訓課程
- 課程名稱 : Python AI應用實務班
- 訓練日期 : 109/10/17 ~ 109/11/28
- 訓練時數 : 47 小時
- 授課老師 : 廖文華 老師
參考的書目
本篇筆記
認識 Keras 與 tf.keras
支援 Python 深度學習最著名的就是 Google 的 TensorFlow ,而 Keras 是架構在 TensorFlow 上的高階函式庫。現在, TensorFlow 已將 Keras 納入自己的函式庫,並命名為 tf.keras 。
認識 TensorFlow
TensorFlow 是一套開放原始碼和高效能的數值計算函式庫,一個建立機器學習的框架, 也是機器學習的平台。
為什麼稱叫做 TensorFlow ,這是因為其輸入/輸出的運算資料是向量(Vector)、矩陣(Matrix)等多維度的資料,稱為張量(Tensor),我們建立機器學習模型需要用流程圖來描述訓練過程的所有數值運算操作,稱為計算圖(Computational Graphs),這是一種低階運算描述的圖形,Tensor 就是經過這些流程(Flow)的數值運算來產生輸出結果,故稱為 TensorFlow。
實務上,在開發機器學習專案時,基於效能的考量,在硬體運算部分不只支援 CPU ,也有支援顯示卡 GPU 和 Google 客製化的 TPU(TensorFlow Processing Unit)來加速機器學習的訓練。
如上圖,若是在 CPU 執行,TensorFlow 是使用低階 Eigen 函式庫來執行運算,如果是 GPU ,則是使用 NVIDA 開發的深度學習運算函式庫 cuDNN。
認識 Keras
Keras 是使用 Python 開發的一套的高階神經網路函式庫, 支援多種後台的神經網路計算引擎, 其預設引擎是 TensorFlow。 Keras 的主要目的是讓初學者也能夠方便且快速建構程訓練各種深度學習模型。
上圖, Keras 函式庫是架構在 TensorFlow、Theano 和微軟 CNTK 等神精網路計算引擎之上,Python 可以直接使用 TensorFlow 或透過 Keras 來開發深度學習模型。
認識 tk.keras
TensorFlow 在 2.0
版已經內建 Keras 高階函式庫 tf.keras
模組了,所以可以使用低階 TensorFlow API 建立深度學習的計算圖,也可以使用高階 Keras API 來建構高階計算圖的各種神精網路結構。
心得
在上這個課之前,筆者曾參與某專案有安裝過 TensorFlow 與 Keras,當時的 Keras 還沒整合到 TensorFlow 的函式庫,是需要另外安裝,且這些 Open Source 要非常注意版號。本篇讓我了解到 TensorFlow 命名的由來,而這深度學習的函式庫也就同事常說的黑盒子了。
留言