深度學習的框架有很多種,如 Caffe、TensorFlow、Keras、Apache MXNet、PyTorch 和 Google JAX 等。本系列實作會使用 TensorFlow 和 Keras,這兩種也是常常被使用的深度學習框架。
今天我們先來了解這兩個深度學習框架的背景。
TensorFlow 為 Google Brain 團隊於 2015 年開發的開源軟體庫,廣泛運用於機器學習的應用上。Google 有許多我們常使用的服務,皆由 TensorFlow 衍生,例如語音辨識、Gmail、Google 相簿以及搜尋引擎等,目前最新版本為 2023 年 11 月 14 日所發布的 2.15.0 版本。除了 Python,其他程式語言如 C++、haskell、Java、Go 和 Rust 等都可以使用 TensorFlow。
TensorFlow 也提供了一些好用的工具,如 TensorBoard,為 TensorFlow 的視覺化工具包,可以檢視模型訓練過程的狀態,例如模型的評估指標曲線,以及模型的架構圖等。在部署模型上,TensorFlow 亦有提供 Tensorflow Lite 和 Tensorflow.js,前者是運用於行動裝置上如 Android 與 iOS 系統,後者為運用於網頁上開源的 JavaScript 庫。
Keras 為 Google 工程師 François Chollet 創始,於 2015 年首次發布。原本為深度學習獨立框架,後來在第二版開始整合至 TensorFlow 中。Keras 使用的方法多元,也較容易上手,提供高階的 API,不需要先進行張量運算,很適合初學者,也適合專家進行進階的使用,目前 Keras 最新版本為 2024 年 8 月 12 日發布的 3.5.0 版本。
TensorFlow 和 Keras 兩者的運用是相輔相成的。在硬體階是由 CPU、GPU 或 TPU 來執行運算,上面一階為 TensorFlow 進行張量相關的運算,如變數、微分和分布等,最上面一階為 Keras,用來開發深度學習模型,包含層、模型、最佳化器、損失函數和評估指標等。
之後我們就一起使用 TensorFlow 和 Keras,來建構我們的深度學習模型吧!