自深度學習重新獲得公認以來,許多機器學習框架層出不窮,爭相成為研究人員以及行業從業人員的新寵。從早期的學術成果 Caffe、Theano,到獲得龐大工業支持的 PyTorch、TensorFlow,許多研究者面對大量的學習框架不知該如何選擇?
Tensorflow / Keras 和 PyTorch 是迄今為止最受歡迎的兩個主要機器學習庫。TensorFlow 由谷歌團隊開發,于 2015 年發布。而 PyTorch 則由 Facebook 的團隊開發,并于 2017 年在 GitHub 上開源。
為了充分發揮不同機器學習框架的優勢,許多機器學習從業者對不同框架進行了比較,通過對比優缺點,以選擇最適合自己的框架。
在本文中,我們將從以下兩個方面對機器學習庫(PyTorch 1.8 和 Tensorflow 2.5)進行比較:
最新發行版本中的新增功能;
使用哪個以及為什么。
Tensorflow 2.x VS Pytorch 1.8
Tensorflow 2.x
TensorFlow 1 和 TensorFlow 2.x 之間有很多變化。第一個是 Tensorflow.js. 的發布。隨著 Web 應用程序越來越占主導地位,在瀏覽器上部署模型的需求大大增加。借助 Tensorflow.js,你可以使用 Node 在瀏覽器中運行現有的 python 模型、重新訓練現有的模型,并使用 Javascript 完全構建和訓練模型(不需要 python)。
Tensorflow 2.x 中的另一個版本是 Tensorflow Lite,一個輕量級庫,用于在移動和嵌入式設備上部署模型。這是因為移動和 Web 應用程序是兩種最主要的應用程序類型。
使用 Tensorflow Lite,你可以簡單地將現有模型轉換為「compressed flat buffer」,然后將 buffer 加載到移動設備或任何其他嵌入式設備中。這期間發生的主要優化過程是將 32 位浮點值轉換成 8 位,這更適合于嵌入式設備(更少的內存使用)。
此外還包括 Tensorflow Extended(TFX)的發布,它是用于部署生產 ML pipeline 的端到端平臺。其在機器學習的 3 個最重要領域(web 應用程序、移動應用程序和生產管理)方面做得很好。
機器學習生產 pipeline 仍需要大量研究和開發。TFX 可以應對經典的軟件生產挑戰,例如可擴展性、可維護性和模塊化。此外,它還可以幫助解決機器學習的特定挑戰,例如持續在線學習、數據驗證,數據管理等。
PyTorch 1.8
與 Tensorflow Lite 相似,PyTorch 改進了其現有的 Pytorch Mobile。該框架可以量化、跟蹤、優化和保存適用于 Android 和 iOS 的模型。此外還發布了 Pytorch Lite Interpreter 的原型,該原型可減小移動設備上二進制運行時的大小。
此外,還通過更具體的錯誤處理和 pipeline 并行為分布式訓練提供了更多支持。Pytorch Profiler 用于分析 APP、模型的執行時間、執行流程、內存消耗等。
盡管 Pytorch lightning 不是 PyTorch 1.8 的一部分,但還是值得一提。Pytorch lightning 已發布,可以使編碼神經網絡更加簡單。可以將其視為 Pytorch 的 Keras,使用廣泛,其中的原因可歸結為 Keras 顯著的改進了 Tensorflow,因為它使實現模型變得更加容易和快捷。在 Pytorch 中,Pytorch lightning 起到了相同的作用。
該如何選擇?
從本質上講,這兩個庫都是相當不錯的,它們在性能和功能上非常接近。總的來說,兩個庫之間的編碼風格有所不同。
PyTorch 以其 OOP(面向對象編程)風格而聞名。例如,當創建自定義模型或自定義數據集時,你很可能會創建一個新類,該類繼承默認的 PyTorch 庫,然后在進行代碼調整。盡管 OOP 以某種方式為代碼提供了一種結構,但就代碼行數而言,會使代碼變得很長。
另一方面,當使用 Tensorflow 時,你很可能會使用 Keras。例如在進行 Kaggle 比賽時(監督學習圖像分類、目標檢測、圖像分割、NLP 等任務),可以發現 Keras 的代碼實現比 PyTorch 短。作為初學者 / 中級人員,這是非常不錯的選擇,因為你不必花費大量時間閱讀和分解代碼行。
在某些情況下,需要在特定的機器學習領域中尋找特定的模型。例如,當進行目標檢測比賽時,想要實現 DETR(Facebook 的 Data-Efficient transformer),結果發現大部分資源都是用 PyTorch 編寫的,因此在這種情況下,使用 PyTorch 更加容易。
另外,PyTorch 的代碼實現更長,因為它們涵蓋了許多底層細節。這既是優點也是缺點。當你是初學者時先學習低層級的細節,然后再使用更高層級的 API(例如 Keras)非常有幫助。但是,這同時也是一個缺點,因為你會發現自己迷失于許多細節和相當長的代碼段中。因此,從本質上講,如果你的工作期限很緊,最好選擇 Keras 而不是 PyTorch。
原文鏈接:https://towardsdatascience.com/pytorch-vs-tensorflow-2021-d403504d7bc3
文章轉自機器之心
(版權歸原作者所有,侵刪)
編輯:jq
-
pytorch
+關注
關注
2文章
803瀏覽量
13146
原文標題:PyTorch 1.8 和 Tensorflow 2.5,我該用哪個?
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論