Deep Learning — 深度學習框架之比較

Simon Chu
Bucketing
Published in
4 min readJan 15, 2022

目前主流三大框架為 Keras、TensorFlow 與 PyTorch

結論

  • 基礎或入門:Keras。
    Keras 的好處就是對於現成的架構、資料集可以很簡單幾十行程式碼就能實現,不過因為Keras是高層的API,無法方便的對架構微調、實驗新的架構,若要深度開發請考慮用 Pytorch 或 Tensorflow
  • 研究與快速開發:Pytorch。
  • 社會中多數使用:Tensorflow。
    因為開發的比 PyTorch 早,較多專案都是用 Tensorflow 開發的。

KerasTensorFlow 都是在 2015 年提出,後來由 Google 主導整併。

TensorFlow

為符號式编程(Symbolic Programming)且跨足各式資料流程編程 (Dataflow programming) 的開源資料庫。多數是用於機器學習的應用,像是神經網絡等。

優點:
功能多、廣大社群支援、提供 TensorBoard 視覺化工具、三者中效能較佳。

缺點:
提供的函式相對底層,需有相對應的基礎,學習難度較高。

Keras

目前已經被整合至 TensorFlow 2.0 (為 tf.keras), 預設也為使用 TensorFlow 作為後端引擎,並能無縫接軌 TensorFlow 2.0 其他的核心功能與模組,包含資料管理、超參數訓練或部署等。

優點:
是容易上手、community support 佳,把很多東西都包好好給大家使用。

缺點:
因架構於 TensorFlow 之上,函式彈性較差,不易更改/調整細部模組。

PyTorch

基於 torch 所開發之框架,由 Facebook 的 AI 研究小組開發並於 2017 年在 GitHub 上開源,用於自然語言處理應用程序。 PyTorch 為指令式編程(Imperative programming) 以簡單、易用、靈活、高效的內存使用和動態計算圖而聞名。

優點:
語法簡潔易懂、採用 dynamic computation graph、擁有完善的 doc。

缺點:
因是動態編譯,執行效率相較 TensorFlow 低

參考

--

--