Pytorch還是TensorFlow?頂會帶你覽趨勢

2021-02-13 計算機視覺聯盟

點上方藍字計算機視覺聯盟獲取更多乾貨

在開源框架領域,PyTorch 與 TensorFlow 之爭一直存在,研究人員在寫論文時也會有不同的偏向。但近年來,得益於 PyTorch 本身的一些優勢,越來越多的學者偏向於選擇 PyTorch,TensorFlow 的使用比例也因此逐漸下降。

自 2009 年深度學習再度成為焦點以來,很多機器學習框架成為研究者和業界開發者的新寵。從早期的學術框架 Caffe、Theano 到如今 Pytorch、TensorFlow 這樣越來越大規模的開發框架。發展到 2020 年,我們可以看到國內外越來越多的科技巨頭、創業公司都在研發、使用自家的深度學習框架,如國內的也有百度飛槳、華為 MindSpore、曠視天元。但不得不說,當前最為火熱的開源框架,依然是谷歌的 TensorFlow 與 Facebook 手中的 PyTorch。兩者之間的競爭,也是社區內津津樂道的話題。在機器之心往期文章中,我們曾報導,雖然 2018 年 TensorFlow 依然碾壓 PyTorch,但自 2019 年以來 PyTorch 的發展可謂是火力全開,特別是在學界,幾乎是獨領風騷。這兩年,我們從各類自然語言處理(NLP)、計算機視覺(CV)國際學術頂會接收論文中使用 PyTorch 和 TensorFlow 的佔比情況,就可以發現這種趨勢 。最近,隨著 ICLR 2020 和 CVPR 2020 會議的相繼結束,前 PyTorch 實習生、一直致力於研究機器學習領域深度學習框架發展趨勢的學者 Horace He 更新了 ICLR 2020 和 CVPR 2020 接收論文中 PyTorch 和 TensorFlow 的使用及相關佔比,結果顯示:在 ICLR 2020 和 CVPR 2020 會議中,使用 PyTorch 的論文數遠超 TensorFlow,研究人員對 PyTorch 的偏愛程度進一步加深。

在最新的圖表數據中,Horace He 依然以 ICLR 2020 和 CVPR 2020 接收論文中 PyTorch 使用量在 TensorFlow/PyTorch 使用總數中的佔比情況,以及 PyTorch/TensorFlow 具體使用數及佔接收論文總數的比例為評估指標。圖表的交互版本參見:http://horace.io/pytorch-vs-tensorflow/ICLR 2020 論文 PyTorch/TensorFlow 使用分析首先看下 ICLR 2020 接收論文中,PyTorch 使用數在 TensorFlow/PyTorch 使用總數的佔比情況:佔比超過 50% 則意味著該頂會接收論文中使用 PyTorch 的多於 TensorFlow。從下圖可以看到,在 ICLR 2020 接收論文中,PyTorch 的這一比例達到了 69.80%,相較於 ICLR 2018 的 28.05%、ICLR 2019 的 55.91%,這說明了 ICLR 2020 接收論文中 PyTorch 使用數大大超過了 TensorFlow。

下圖更直觀地展示了 ICLR 2020 接收論文中,PyTorch 和 TensorFlow 的具體使用數。可以看到,PyTorch 使用了 141 次,而 TensorFlow 使用了 61 次,PyTorch 使用數是 TensorFlow 的兩倍還多。並且,PyTorch 使用數多於 TensorFlow 的情況出現在了 2019 年,而在之前 TensorFlow 使用數多於 PyTorch。

PyTorch 和 TensorFlow 各自使用數佔接收論文總數的比例如下圖所示。可以看到 PyTorch 佔比 20.52%,相較於 ICLR 2018 的 6.82%、ICLR 2019 的 14.14% 出現了持續上升;與此同時,TensorFlow 佔比僅為 8.88%,相較於 ICLR 2018 的 17.51%、ICLR 2019 的 11.16% 出現了持續下降。由此可見自 2019 年以來,PyTorch 和 TensorFlow 的使用情況發生了根本性變化。

CVPR 2020 論文 PyTorch 和 TensorFlow 使用分析首先如下圖所示,在 CVPR 2020 接收論文中,PyTorch 使用數在 TensorFlow/PyTorch 使用總數的佔比為 79.88%,佔比變化情況與 ICLR 2020 會議相似,都呈現出了增長的趨勢。

PyTorch 和 TensorFlow 在 CVPR 2020 會議接收論文中出現的具體使用數如下圖所示,可以看到 PyTorch 使用了 405 次,TensorFlow 使用了 102 次,PyTorch 使用數是 TensorFlow 的近 4 倍。並且,PyTorch 使用數多於 TensorFlow 的情況同樣出現在 2019 年,而在之前 PyTorch 使用數少於 TensorFlow。

下圖展示了 CVPR 2020 接收論文中,PyTorch 與 TensorFlow 使用數佔接收論文總數的比例,可以看到 PyTorch 佔比 27.61%,TensorFlow 佔比 6.95%,兩者的佔比情況變化與具體使用數變化趨勢相同,都是在 2019 年出現了轉折。

由此可見,在 ICLR 和 CVPR 會議中,PyTorch 與 TensorFlow 的使用數及佔比情況在 2019 年發生了根本性變化,自此 PyTorch 的使用數超過了 TensorFlow,佔比也不斷地增加。今年 4 月份,PyTorch 1.5 宣布上線,對 C++ 前端進行重大更新,並推出了全新的高級自動梯度 API,使用戶更方便地執行 jacobian、hessian、jvp 和 vjp 等函數。而谷歌自 2019 年 10 月推出 TensorFlow 2.0 正式版以來,卻被用戶吐槽太難用,這不僅表現在缺乏官方指南、詳細的說明文檔以及來自官方開發團隊的答疑,而且本身存在的一些問題,如與 Keras 的整合等。所有這些都迫使一些用戶偏向了 PyTorch。那麼,就框架本身來說,為何越來越多的研究者選擇在論文中使用 PyTorch 呢?大概可以總結為以下三個原因:

簡單。與 numpy 類似,PyTorch 可以很容易地與 Python 生態系統融合。例如,向 PyTorch 模型的任意位置放入一個 pdb 斷點,它都可以正常工作。而在 TensorFlow 中,調試模型需要一個激活的會話,最後會變得非常棘手;

優秀的 API。相較於 TensorFlow,多數研究者更喜歡 PyTorch 的 API。部分原因在於 PyTorch 的設計更加合理,還有一部分原因在於:TensorFlow 在將 API 轉換多次之後已經自損元氣;

性能。儘管 PyTorch 的動態圖留給優化的機會非常之少,但有不少非正式報告稱 PyTorch 與 TensorFlow 一樣快。目前還不清楚這是不是真的,但至少,TensorFlow 在這方面還沒有取得決定性優勢。

PyTorch 的這些優勢或許就是越來越多的學者選擇它的理由吧!http://horace.io/pytorch-vs-tensorflow/https://thegradient.pub/state-of-ml-frameworks-2019-pytorch-dominates-research-tensorflow-dominates-industry/這是我的私人微信,還有少量坑位,可與相關學者研究人員交流學習 目前開設有人工智慧、機器學習、計算機視覺、自動駕駛(含SLAM)、Python、求職面經、綜合交流群掃描添加CV聯盟微信拉你進群,備註:CV聯盟

博士筆記 | 周志華《機器學習》手推筆記第一章思維導圖

博士筆記 | 周志華《機器學習》手推筆記第九章

點個在看支持一下吧

相關焦點

  • GitHub趨勢榜第一:TensorFlow+PyTorch深度學習資源大匯總
    deeplearning-models/blob/master/pytorch_ipynb/basic-ml/perceptron.ipynb邏輯回歸TensorFlow 1:https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/
  • 9步教你安裝完成tensorflow與pytorch
    ▍第二步:創建你的專屬開發環境複製完畢後,我們需要創建⼀個新的環境,使⽤命令⾏conda create -n tensorflow▍第四步:tensorflow的安裝使⽤conda install tensorflow=1.14進⾏tensorflow cpu版本的安裝,
  • 2021 年了,TensorFlow 和 PyTorch 兩個深度學習框架地位又有什麼變化嗎?
    思想火龍果回答:pytorch統治學術圈。現在各大頂會開原始碼沒有一絲絲的tensorflow2.x,就連谷歌家自己的論文也是只有torch和jax。零零星星一些tf1的開原始碼。tensorflow2.x難用嗎?真不難用的,基本就是在用keras,tf.data pipeline 和 tf.distribute 用起來真的省心又快。
  • TensorFlow+PyTorch深度學習大寶庫
    rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/basic-ml/logistic-regression.ipynbPyTorch:https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/basic-ml
  • GPU部署,深度學習必備 (pytorch+tensorflow)
    注意:一般來講,先確定代碼環境,根據代碼環境下載cuda、cudnn,以及tensorflow或者pytorch版本2. tensorflow版2.1 查看CUDA對應的cudnn、tensorflow和python版本tensorflow的要求比較高需要以下版本一一對應。
  • RTX 3090的深度學習環境配置指南:Pytorch、TensorFlow、Keras
    -7.2.1.4-cp36-none-linux_x86_64.whl tensorflow_estimator-1.15.1-py2.py3-none-any.whl nvidia_tensorboard-1.15.0+nv20.10-py3-none-any.whlnvidia_tensorflow-1.15.4+nv20.10-cp36-cp36m-linux_x86_64.whl -i http
  • PyTorch 能追上 TensorFlow 嗎?
    來源:https://chillee.github.io/pytorch-vs-tensorflow/對於該會議1_dCf91WMBzCkCW7_KNMVSTQ來源:https://chillee.github.io/pytorch-vs-tensorflow/
  • TensorFlow 與 PyTorch 之爭
    谷歌的 Tensorflow 與 Facebook 的 PyTorch 一直是頗受社區歡迎的兩種深度學習框架。那麼究竟哪種框架最適宜自己手邊的深度學習項目呢?本文作者從這兩種框架各自的功能效果、優缺點以及安裝、版本更新等諸多方面給出了自己的建議。如果你在讀這篇文章,那麼你可能已經開始了自己的深度學習之旅。
  • Windows 10安裝TensorFlow+Pytorch(CPU版本)
    去TensorFlow 找自己的python版本,CPU版https://www.tensorflow.org/install/pip文檔在此>https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow_cpu-2.6.0-cp36-cp36m-win_amd64.whlwhl文件地址在此    pip install tensorflow_cpu
  • 深度學習環境配置指南:Pytorch、TensorFlow、Keras
    導讀本文介紹了作者使用RTX3090進行深度學習環境配置pytorch、tensorflow、keras等的詳細過程及代碼。筆者中山大學研究生,醫學生+計科學生的集合體,機器學習愛好者。-7.2.1.4-cp36-none-linux_x86_64.whl tensorflow_estimator-1.15.1-py2.py3-none-any.whl nvidia_tensorboard-1.15.0+nv20.10-py3-none-any.whlnvidia_tensorflow-1.15.4+nv20.10-cp36-cp36m-linux_x86_64.whl -i http
  • RTX 3090 的深度學習環境配置指南:Pytorch、TensorFlow、Keras
    導讀本文介紹了作者使用RTX3090進行深度學習環境配置pytorch、tensorflow、keras等的詳細過程及代碼。筆者中山大學研究生,醫學生+計科學生的集合體,機器學習愛好者。-7.2.1.4-cp36-none-linux_x86_64.whl tensorflow_estimator-1.15.1-py2.py3-none-any.whl nvidia_tensorboard-1.15.0+nv20.10-py3-none-any.whlnvidia_tensorflow-1.15.4+nv20.10-cp36-cp36m-linux_x86_64.whl -i http
  • 結合PyTorch和TensorFlow2 匯總理解損失函數
    還有一些其他的損失函數,後續也會都加進來。[10] https://www.tensorflow.org/api_docs/python/tf/keras/losses/KLD[11] https://www.tensorflow.org/api_docs/python/tf/keras/losses/KLDivergence[12] https://pytorch.org/docs/stable/
  • 手把手教你由TensorFlow上手PyTorch(附代碼)
    所以你需要不時查看原始碼:http://pytorch.org/tutorials/。 當然,目前網絡上已有了一些 PyTorch 論壇,你可以在其中詢問相關的問題,並很快得到回覆:https://discuss.pytorch.org/。
  • Win10系統下Pytorch1.7 + tensorflow2.x +CUDA10.1 安裝與配置
    跟pytorch都重新安裝了,發現我以前安裝的CUDA10.0的版本無法跟tensorflow2.x適配了,於是我又重新卸載安裝了CUDA10.1 +cuDNN8.0.x的版本,然後發現我的Win10上又跟以前一樣可以運行tensorflow或者pytorch了。
  • 跨越重重「障礙」,我從 PyTorch 轉換為了 TensorFlow Lite
    請注意,你必須將torch.tensor示例轉換為它們的等效np.array,才能通過 ONNX 模型運行它。現在,我有了 ONNX 模型,為了轉換成 TensorFlow,我使用了 ONNX-TensorFlow(v1.6.0)庫。我並沒有使用 TensorFlow 的經驗,所以我知道這是事情變得有挑戰性的地方。
  • 基於Pytorch、Keras、Tensorflow的圖片數據生成器搭建
    那麼會出現一個很大的問題 - Out of memory! 你可能會覺得是硬體的問題,實際上還是我們太菜了,所以這篇文章我想簡單的說一下三種深度學習框架如何搭建數據生成器。2.Pytorch下的圖片數據生成器首先還是介紹下當下最火熱的Pytorch深度學習框架,本來堅持Keras+Tensorflow的我,還是逃不過「真香」警告呀。
  • 深度學習100+經典模型TensorFlow與Pytorch代碼實現大集合
    傳統機器學習感知器 Perceptron   [TensorFlow 1: GitHub | Nbviewer]https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1
  • 教程 | 如何從TensorFlow轉入PyTorch
    所以你需要不時查看原始碼:http://pytorch.org/tutorials/。當然,目前網絡上已有了一些 PyTorch 論壇,你可以在其中詢問相關的問題,並很快得到回覆:https://discuss.pytorch.org/。
  • Seq2seq強化學習實戰 (Pytorch, Tensorflow, Theano)
    Practical_RL: Reinforcement learning for seq2seq (pytorch, tensorflow, theano)在過去的幾十年裡,機器學習方法發展迅速。▌關於本課程: 例如我們發現,在人們說話、學習、玩新的遊戲、在城市環境中導航、設計登陸頁面、騎自行車、甚至建立強化學習代理時,你不止是簡單地教科書式地記住那些最優方案的例子。這些問題的共同之處在於,他們都可以通過反覆實驗的方法來解決:堅持讓那些不好的方面影響較小。
  • TensorFlow與PyTorch之爭,哪個框架最適合深度學習
    論文地址:http://download.tensorflow.org/paper/whitepaper2015.pdfTensorFlow 現已被公司、企業與創業公司廣泛用於自動化工作任務和開發新系統,其在分布式訓練支持、可擴展的生產和部署選項、多種設備(比如安卓)支持方面備受好評。