Pytorch 與 TensorFlow 的爭論一直是深度學習工程師的熱門話題。 為您的專案做出正確的選擇可能是成功與失敗的區別。 但是,考慮到如此多的個人偏好和偏見,您如何才能做出明智的決定?
首先,TensorFlow 和 PyTorch 提供對各種預訓練模型的訪問,這些模型分別儲存在 TensorFlow Hub 和 PyTorch Hub 中。 這些是經過訓練的模型的儲存庫,可以進行推斷、微調和部署。 只需幾個匯入和幾行**,您就可以使用預先訓練的 Mask RCNN 進行影象分割,並選擇您喜歡的骨幹模型。
很明顯,PyTorch 是大多數研究人員的首選。SwithCode 的資料顯示,所有已發表的文章中有 68% 使用該框架。 只有大約 30% 的案例在 GitHub 儲存庫上至少有乙個實現,可以合理地假設這種分布在各個框架中是一致的。
PyTorch 是 Huggingface 上 Transformer 領域的領導者。 考慮到所有可用的 TensorFlow 和 Keras 模型中有 64% 已經可用於 PyTorch。
這證明了 PyTorch 在該領域的主導地位,以及它通過大量 transformer 模型選擇來適應未來的能力。 當您想要使用自定義迴圈微調和訓練模型時,這會產生重大影響;否則,HuggingFace API 可以解決大部分困難。
TensorFlow 和 PyTorch 都提供了有用的抽象,通過減少樣板來簡化模型開發。 它們的不同之處在於 PyTorch 具有更“Pythonic”的方法並且是物件導向的,而 TensorFlow 提供了多種選項。
PyTorch 如今被用於許多深度學習專案,儘管它是三個主要框架中最不受歡迎的,但它在 AI 研究人員中越來越受歡迎。 趨勢表明,這種情況可能很快就會改變。
當研究人員需要靈活性、除錯功能和較短的訓練時間時,他們會選擇 PyTorch。 它可以在 Linux、macOS 和 Windows 上執行。
憑藉其有據可查的框架,以及大量訓練有素的模型和教程,TensorFlow 是許多行業專業人士和研究人員最喜歡的工具。 TensorFlow 提供更好的視覺化效果,使開發人員能夠更好地除錯和跟蹤訓練過程。 但是,PyTorch 僅提供有限的視覺化效果。
得益於 TensorFlow Serving 框架,TensorFlow 在將經過訓練的模型部署到生產環境方面也擊敗了 PyTorch。 PyTorch 沒有提供這樣的框架,因此開發人員需要使用 Django 或 Flask 作為後端伺服器。
在資料並行性方面,PyTorch 依靠 Python 對非同步執行的原生支援來獲得最佳效能。 但是,使用 TensorFlow,您必須手動編碼和優化在特定裝置上執行的每個操作,以允許分布式訓練。 總之,您可以在 TensorFlow 中複製 Pytorch 中的所有內容;你只需要更加努力地工作。
如果你剛剛開始探索深度學習,你應該先學習 PyTorch,因為它在研究社群中很受歡迎。 但是,如果您熟悉機器學習和深度學習,並且專注於盡快在該行業找到工作,請先學習 TensorFlow。
初學者:從 keras 開始是最合適的選擇。 它使您免於處理深度學習的許多困難。 但是,如果您想更深入地挖掘(您必須在某個時候這樣做),請選擇 pytorch。
研究人員:Pytorch 可能是乙個更好的選擇——除非你在乙個採用率可能不同的利基市場工作!
在生產環境中工作:
如果您在生產環境中部署模型,TensorFlow 及其 TFX-TFLite 生態系統可提供更全面的解決方案,並在業界得到更廣泛的認可。
但是,如果您願意在技術堆疊中擁有第二個生態系統,您仍然可以使用 Pytorch 對其進行建模,並使用 Onnx 將其轉換為 TensorFlow。