<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          PyTorch、TensorFlow最新版本對比,2021年了你選誰?

          共 2458字,需瀏覽 5分鐘

           ·

          2021-05-27 06:50

          選自towards data science
          作者:Mostafa Ibrahim
          來源:機器之心
          PyTorch(1.8)和Tensorflow(2.5)最新版本比較。

          自深度學習重新獲得公認以來,許多機器學習框架層出不窮,爭相成為研究人員以及行業(yè)從業(yè)人員的新寵。從早期的學術成果 Caffe、Theano,到獲得龐大工業(yè)支持的 PyTorch、TensorFlow,許多研究者面對大量的學習框架不知該如何選擇?

          機器學習框架。


          Tensorflow / Keras 和 PyTorch 是迄今為止最受歡迎的兩個主要機器學習庫。TensorFlow 由谷歌團隊開發(fā),于 2015 年發(fā)布。而 PyTorch 則由 Facebook 的團隊開發(fā),并于 2017 年在 GitHub 上開源。


          為了充分發(fā)揮不同機器學習框架的優(yōu)勢,許多機器學習從業(yè)者對不同框架進行了比較,通過對比優(yōu)缺點,以選擇最適合自己的框架。


           在本文中,我們將從以下兩個方面對機器學習庫(PyTorch 1.8 和 Tensorflow 2.5)進行比較:


          • 最新發(fā)行版本中的新增功能;

          • 使用哪個以及為什么。


          Tensorflow 2.x VS Pytorch 1.8


          Tensorflow 2.x


          TensorFlow 1 和 TensorFlow 2.x 之間有很多變化。第一個是 Tensorflow.js. 的發(fā)布。隨著 Web 應用程序越來越占主導地位,在瀏覽器上部署模型的需求大大增加。借助 Tensorflow.js,你可以使用 Node 在瀏覽器中運行現有的 python 模型、重新訓練現有的模型,并使用 Javascript 完全構建和訓練模型(不需要 python)。


          Tensorflow 2.x 中的另一個版本是 Tensorflow Lite,一個輕量級庫,用于在移動和嵌入式設備上部署模型。這是因為移動和 Web 應用程序是兩種最主要的應用程序類型。使用 Tensorflow Lite,你可以簡單地將現有模型轉換為「compressed flat buffer」,然后將 buffer 加載到移動設備或任何其他嵌入式設備中。這期間發(fā)生的主要優(yōu)化過程是將 32 位浮點值轉換成 8 位,這更適合于嵌入式設備(更少的內存使用)。


          此外還包括 Tensorflow Extended(TFX)的發(fā)布,它是用于部署生產 ML pipeline 的端到端平臺。其在機器學習的 3 個最重要領域(web 應用程序、移動應用程序和生產管理)方面做得很好。機器學習生產 pipeline 仍需要大量研究和開發(fā)。TFX 可以應對經典的軟件生產挑戰(zhàn),例如可擴展性、可維護性和模塊化。此外,它還可以幫助解決機器學習的特定挑戰(zhàn),例如持續(xù)在線學習、數據驗證,數據管理等。


          PyTorch 1.8


          與 Tensorflow Lite 相似,PyTorch 改進了其現有的 Pytorch Mobile。該框架可以量化、跟蹤、優(yōu)化和保存適用于 Android 和 iOS 的模型。此外還發(fā)布了 Pytorch Lite Interpreter 的原型,該原型可減小移動設備上二進制運行時的大小。此外,還通過更具體的錯誤處理和 pipeline 并行為分布式訓練提供了更多支持。Pytorch Profiler 用于分析 APP、模型的執(zhí)行時間、執(zhí)行流程、內存消耗等。


          盡管 Pytorch lightning 不是 PyTorch 1.8 的一部分,但還是值得一提。Pytorch lightning 已發(fā)布,可以使編碼神經網絡更加簡單??梢詫⑵湟暈?Pytorch 的 Keras,使用廣泛,其中的原因可歸結為 Keras 顯著的改進了 Tensorflow,因為它使實現模型變得更加容易和快捷。在 Pytorch 中,Pytorch lightning 起到了相同的作用。


          該如何選擇?


          從本質上講,這兩個庫都是相當不錯的,它們在性能和功能上非常接近??偟膩碚f,兩個庫之間的編碼風格有所不同。



          PyTorch 以其 OOP(面向對象編程)風格而聞名。例如,當創(chuàng)建自定義模型或自定義數據集時,你很可能會創(chuàng)建一個新類,該類繼承默認的 PyTorch 庫,然后在進行代碼調整。盡管 OOP 以某種方式為代碼提供了一種結構,但就代碼行數而言,會使代碼變得很長。


          另一方面,當使用 Tensorflow 時,你很可能會使用 Keras。例如在進行 Kaggle 比賽時(監(jiān)督學習圖像分類、目標檢測、圖像分割、NLP 等任務),可以發(fā)現 Keras 的代碼實現比 PyTorch 短。作為初學者 / 中級人員,這是非常不錯的選擇,因為你不必花費大量時間閱讀和分解代碼行。


          在某些情況下,需要在特定的機器學習領域中尋找特定的模型。例如,當進行目標檢測比賽時,想要實現 DETR(Facebook 的 Data-Efficient transformer),結果發(fā)現大部分資源都是用 PyTorch 編寫的,因此在這種情況下,使用 PyTorch 更加容易。另外,PyTorch 的代碼實現更長,因為它們涵蓋了許多底層細節(jié)。這既是優(yōu)點也是缺點。當你是初學者時先學習低層級的細節(jié),然后再使用更高層級的 API(例如 Keras)非常有幫助。但是,這同時也是一個缺點,因為你會發(fā)現自己迷失于許多細節(jié)和相當長的代碼段中。因此,從本質上講,如果你的工作期限很緊,最好選擇 Keras 而不是 PyTorch。


          原文鏈接:https://towardsdatascience.com/pytorch-vs-tensorflow-2021-d403504d7bc3


          瀏覽 55
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本手机在线播放 | 青娱乐国产精品视频网站 | 大鸡巴久久久久久久久久久 | 大鸡巴在线视频网 | 久久国产欧美 |