iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0
生成式 AI

《AI 新手到職場應用:深度學習 30 天實戰》系列 第 6

深度學習框架比一比:TensorFlow 與 PyTorch 的選擇

  • 分享至 

  • xImage
  •  

當你準備要踏進深度學習的實戰世界時,
第一個會遇到的問題通常不是「要怎麼設計模型」,
而是 「要用哪個框架來做」
這有點像是你要學做菜時,必須先決定你要用的是鍋子還是烤箱一樣,
雖然兩者都可以做出美味的料理,但過程和方式會不太一樣。

而在深度學習領域中,
最主流的兩大框架就是 「TensorFlow」「PyTorch」
這兩個名字幾乎是所有 AI 工程師和研究者的日常,
而且它們分別有各自的背景及特色。


什麼是深度學習框架?

如果你從零開始寫一個深度學習演算法,
理論上要自己處理很多事情。
你可能需要去寫出前向傳遞(forward propagation)、反向傳遞(backpropagation)、
梯度計算、參數更新等等。
就像你要土法煉鋼(物理的)蓋一棟房子時,得自己煉鋼、做水泥、搬磚頭、蓋房子...,
這樣不但耗時,也可能住沒幾天就倒了。

所以說專業的事還是要給專業的來做,
深度學習框架就是為了幫你把這些基礎的工程細節包裝起來。
它會提供現成的工具,例如像是「神經網路層」、「優化器」、「損失函數」等等。
這樣你只需要專注在模型設計和資料應用上,而不用煩惱那些複雜的數學和底層運算。

而在這個層面上, TensorFlowPyTorch
就像是兩家提供建材的公司,
它們都能幫你蓋出一棟房子,只是建材的風格與使用方式有差別。
以下就來分別介紹這兩個「公司」的特色吧:


TensorFlow:Google 的企業級解決方案

TensorFlow 是 Google 在 2015 年釋出的開源框架。
它的名稱來自前面有講到的「Tensor」(張量)和「Flow」(流動),
意思就是 「資料以張量的形式流動」

TensorFlow 一開始的設計就非常注重「規模」和「部署」,
因為 Google 自己就需要在龐大的基礎設施上跑深度學習模型。

例如 Google 翻譯、YouTube 推薦系統、
甚至 Android 手機上的 AI 功能,背後都有 TensorFlow 的影子。

TensorFlow 的特色在於它的完整生態系,以下就介紹一些你可能聽過的:

-Keras:

它是一個高階 API,可以讓你用非常簡單的方式寫神經網路。
以前 TensorFlow 程式碼很繁瑣,但有了 Keras 之後,新手能快速上手。

-TensorBoard:

這是一個視覺化工具,讓你能即時看到模型訓練的過程,
例如損失下降的曲線或準確率的變化。

-TensorFlow Lite:

專門為手機和物聯網裝置設計,讓模型能在低資源環境中執行。

-TensorFlow Serving:

方便把模型部署到伺服器上,支援大規模服務。

看到上面每個功能,你可以發現TensorFlow 就像是一位嚴謹的工程師,
他給了我們非常充足的工具庫,幫我們考慮到從「訓練」到「部署」的完整流程。
對於想要做產品、需要長期維護的專案,TensorFlow 是一個 「穩定的選擇」

參考資料:
https://www.tensorflow.org/learn?hl=zh-tw
https://zh.wikipedia.org/zh-tw/TensorFlow


PyTorch:研究人員的最愛

PyTorch 則是由 Facebook(Meta)在 2016 年推出的。
它比 TensorFlow 晚出場,但很快就受到了研究社群的歡迎,
原因在於它的 設計哲學

PyTorch 的核心是一個 「動態計算圖」 系統。
這代表你在寫程式時,模型的運算圖是隨著程式執行而 動態生成 的。

換句話說,當你在 Python 裡寫 for 迴圈或 if 條件,PyTorch 能直接配合,
行為就像一般的 Python 程式一樣自然。

這個特點帶來了兩個很大的優勢:

-直觀好寫

你不用額外學一套語法,對 Python 熟悉的人來說,PyTorch 幾乎是零門檻。

容易 Debug:

因為程式碼本身就是 Python,你可以直接用斷點去檢查中間的變數,
這對研究人員來說非常重要。

另外,因為研究社群偏愛 PyTorch,所以很多最新的 AI 論文、
開源模型和工具庫(例如 Hugging Face 的 NLP(自然語言處理) 模型)、
甚至是我們耳熟能詳的特斯拉自動駕駛、Uber的Pyro
都是使用 PyTorch 開發的。
這讓 PyTorch 在 「創新」「實驗」 的領域中非常強勢。

根據我們查閱的資料可以看到,PyTorch 就像是一位靈活的研究員,
他能快速幫你試驗新想法,寫程式也不會太有壓力。
可以說如果你想跟上最前沿的研究,PyTorch 幾乎可以說是必學的。

參考資料:
https://zh.wikipedia.org/zh-tw/PyTorch
https://docs.pytorch.org/tutorials/beginner/basics/intro.html


超級比一比:到底誰比較適合我?

當我們在學習深度學習框架時,最常遇到的問題就是:
「到底要學 TensorFlow 還是 PyTorch?」
這個問題沒有絕對的答案,就像是在選擇要用 Windows 還是 macOS。
兩者都有自己的優點,差別在於你要用它來做什麼。

在我根據自己查閱並整合資料後,我可以給出以下大致建議及結論:

你現在是 學生或研究人員,那會建議先學 PyTorch,
剛剛前面有提到,因為它跟python的概念幾乎一樣,
所以它也是能最快體驗到「跑得起來」感覺的框架,
同時因為很多人同時也在使用此工具,
因此研究社群也可以幫助你解決疑難雜症。

而如果你現在要佈署一個要上架的 AI 專案,
就會建議使用TensorFlow,
但也並不是說 「PyTorch 適合新手,TensorFlow 適合專業」
這句話並沒那麼精確,
而是因為TensorFlow本身就具備了很多完整的功能,
相較於PyTorch比較適合專案精細的開發,
又抑或是產業級部署。


最後我們就用一個比喻對兩個得比較做收尾:

我會形容 PyTorch 像是一把好用的小刀,很輕巧靈活,
比較適合學習和實驗這些靈活度高的工作;

而 TensorFlow 更像是一整套專業的設備,雖然複雜一些,
但能讓你真正產出一個pro的成果。


上一篇
視覺化基礎:用 Matplotlib 畫出你的第一張資料圖表
下一篇
實戰起手式 — 打造第一個手寫數字辨識模型(MNIST mini 版)
系列文
《AI 新手到職場應用:深度學習 30 天實戰》8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言