技術/比較案例,依第 7.9 節。
比較以圖形處理器(Graphics Processing Unit, GPU)支援的深度學習框架、高階應用程式介面(Application Programming Interface, API),以及原書中的處理量示例。
深度學習的擴張不只靠演算法,也依賴 GPU、統一運算裝置架構(Compute Unified Device Architecture, CUDA)與軟體函式庫。原書逐一介紹 Torch、Caffe、TensorFlow、Theano、Keras。
| 框架/API | 原書重點 |
|---|---|
| Torch | LuaJIT;張量、線性代數、神經網路/最佳化;支援 GPU |
| Caffe | C++ 函式庫;架構/求解器 .prototxt;特別強調影像處理 |
| TensorFlow | Google Brain;DistBelief 2011 → TensorFlow 2015;中央處理器(Central Processing Unit, CPU)/GPU/張量處理器(Tensor Processing Unit, TPU) |
| Theano | 2007;Python;在 CPU/GPU 上處理符號式張量運算式 |
| Keras | Python 高階 API;原書描述其可在 Theano/TensorFlow 上執行 |
| 原書效能示例 | 原書數值 |
|---|---|
| Caffe 使用單一 NVIDIA K40 GPU | 每天超過 6,000 萬張影像;約每張 1 毫秒 |
| TPU 每瓦效能 | 原書報告為當時 CPU/GPU 的 30–80 倍 |
| Google Photos TPU 示例 | 每天超過 1 億張影像;約每張 0.86 毫秒 |
比較程式語言/API 層級、支援硬體、視覺化、模型建構便利性、進階操作彈性與原書引用的處理量;Keras 代表高階易用性,較低階框架則保留更多進階設定。
每天 1 億張相對每天 6,000 萬張的原始影像數量比例 > 1.67 倍;但兩者硬體、框架、工作負載不同,不能把這個比例當成公平基準測試。
工具選擇不應只看單一處理量數字。原書示例是特定年代、硬體與工作負載的展示;實際選擇還需考慮技能、部署、支援操作與可維護性。
根據原書框架特性與引用的處理量示例做比較;必須標明這些是原書時點的示例,不可更新或宣稱目前最快的框架。
問題: 為何不能直接以每天 1 億張與 6,000 萬張影像判斷 TensorFlow/TPU 一定優於 Caffe/K40?
參考解答: 因硬體、任務、實作與衡量情境不同;這不是受控制的基準測試。