PyTorch稱霸頂會:CVPR論文占比是TensorFlow 4 倍
在開源框架領(lǐng)域,PyTorch 與 TensorFlow 之爭一直存在,研究人員在寫論文時也會有不同的偏向。但近年來,得益于 PyTorch 本身的一些優(yōu)勢,越來越多的學(xué)者偏向于選擇 PyTorch,TensorFlow 的使用比例也因此逐漸下降。
自 2009 年深度學(xué)習(xí)再度成為焦點(diǎn)以來,很多機(jī)器學(xué)習(xí)框架成為研究者和業(yè)界開發(fā)者的新寵。從早期的學(xué)術(shù)框架 Caffe、Theano 到如今 Pytorch、TensorFlow 這樣越來越大規(guī)模的開發(fā)框架。
發(fā)展到 2020 年,我們可以看到國內(nèi)外越來越多的科技巨頭、創(chuàng)業(yè)公司都在研發(fā)、使用自家的深度學(xué)習(xí)框架,如國內(nèi)的也有百度飛槳、華為 MindSpore、曠視天元。
但不得不說,當(dāng)前最為火熱的開源框架,依然是谷歌的 TensorFlow 與 Facebook 手中的 PyTorch。兩者之間的競爭,也是社區(qū)內(nèi)津津樂道的話題。
在機(jī)器之心往期文章中,我們曾報(bào)道,雖然 2018 年 TensorFlow 依然碾壓 PyTorch,但自 2019 年以來 PyTorch 的發(fā)展可謂是火力全開,特別是在學(xué)界,幾乎是獨(dú)領(lǐng)風(fēng)騷。
這兩年,我們從各類自然語言處理(NLP)、計(jì)算機(jī)視覺(CV)國際學(xué)術(shù)頂會接收論文中使用 PyTorch 和 TensorFlow 的占比情況,就可以發(fā)現(xiàn)這種趨勢 。
最近,隨著 ICLR 2020 和 CVPR 2020 會議的相繼結(jié)束,前 PyTorch 實(shí)習(xí)生、一直致力于研究機(jī)器學(xué)習(xí)領(lǐng)域深度學(xué)習(xí)框架發(fā)展趨勢的學(xué)者 Horace He 更新了 ICLR 2020 和 CVPR 2020 接收論文中 PyTorch 和 TensorFlow 的使用及相關(guān)占比,結(jié)果顯示:在 ICLR 2020 和 CVPR 2020 會議中,使用 PyTorch 的論文數(shù)遠(yuǎn)超 TensorFlow,研究人員對 PyTorch 的偏愛程度進(jìn)一步加深。
PyTorch 繼續(xù)稱霸學(xué)界
在最新的圖表數(shù)據(jù)中,Horace He 依然以 ICLR 2020 和 CVPR 2020 接收論文中 PyTorch 使用量在 TensorFlow/PyTorch 使用總數(shù)中的占比情況,以及 PyTorch/TensorFlow 具體使用數(shù)及占接收論文總數(shù)的比例為評估指標(biāo)。
圖表的交互版本參見:http://horace.io/pytorch-vs-tensorflow/
ICLR 2020 論文 PyTorch/TensorFlow 使用分析
首先看下 ICLR 2020 接收論文中,PyTorch 使用數(shù)在 TensorFlow/PyTorch 使用總數(shù)的占比情況:占比超過 50% 則意味著該頂會接收論文中使用 PyTorch 的多于 TensorFlow。
從下圖可以看到,在 ICLR 2020 接收論文中,PyTorch 的這一比例達(dá)到了 69.80%,相較于 ICLR 2018 的 28.05%、ICLR 2019 的 55.91%,這說明了 ICLR 2020 接收論文中 PyTorch 使用數(shù)大大超過了 TensorFlow。
下圖更直觀地展示了 ICLR 2020 接收論文中,PyTorch 和 TensorFlow 的具體使用數(shù)。可以看到,PyTorch 使用了 141 次,而 TensorFlow 使用了 61 次,PyTorch 使用數(shù)是 TensorFlow 的兩倍還多。并且,PyTorch 使用數(shù)多于 TensorFlow 的情況出現(xiàn)在了 2019 年,而在之前 TensorFlow 使用數(shù)多于 PyTorch。
PyTorch 和 TensorFlow 各自使用數(shù)占接收論文總數(shù)的比例如下圖所示??梢钥吹?PyTorch 占比 20.52%,相較于 ICLR 2018 的 6.82%、ICLR 2019 的 14.14% 出現(xiàn)了持續(xù)上升;
與此同時,TensorFlow 占比僅為 8.88%,相較于 ICLR 2018 的 17.51%、ICLR 2019 的 11.16% 出現(xiàn)了持續(xù)下降。由此可見自 2019 年以來,PyTorch 和 TensorFlow 的使用情況發(fā)生了根本性變化。
CVPR 2020 論文 PyTorch 和 TensorFlow 使用分析
首先如下圖所示,在 CVPR 2020 接收論文中,PyTorch 使用數(shù)在 TensorFlow/PyTorch 使用總數(shù)的占比為 79.88%,占比變化情況與 ICLR 2020 會議相似,都呈現(xiàn)出了增長的趨勢。
PyTorch 和 TensorFlow 在 CVPR 2020 會議接收論文中出現(xiàn)的具體使用數(shù)如下圖所示,可以看到 PyTorch 使用了 405 次,TensorFlow 使用了 102 次,PyTorch 使用數(shù)是 TensorFlow 的近 4 倍。并且,PyTorch 使用數(shù)多于 TensorFlow 的情況同樣出現(xiàn)在 2019 年,而在之前 PyTorch 使用數(shù)少于 TensorFlow。
下圖展示了 CVPR 2020 接收論文中,PyTorch 與 TensorFlow 使用數(shù)占接收論文總數(shù)的比例,可以看到 PyTorch 占比 27.61%,TensorFlow 占比 6.95%,兩者的占比情況變化與具體使用數(shù)變化趨勢相同,都是在 2019 年出現(xiàn)了轉(zhuǎn)折。
由此可見,在 ICLR 和 CVPR 會議中,PyTorch 與 TensorFlow 的使用數(shù)及占比情況在 2019 年發(fā)生了根本性變化,自此 PyTorch 的使用數(shù)超過了 TensorFlow,占比也不斷地增加。
為什么研究者們那么偏愛 PyTorch
今年 4 月份,PyTorch 1.5 宣布上線,對 C++ 前端進(jìn)行重大更新,并推出了全新的高級自動梯度 API,使用戶更方便地執(zhí)行 jacobian、hessian、jvp 和 vjp 等函數(shù)。
而谷歌自 2019 年 10 月推出 TensorFlow 2.0 正式版以來,卻被用戶吐槽太難用,這不僅表現(xiàn)在缺乏官方指南、詳細(xì)的說明文檔以及來自官方開發(fā)團(tuán)隊(duì)的答疑,而且本身存在的一些問題,如與 Keras 的整合等。所有這些都迫使一些用戶偏向了 PyTorch。
那么,就框架本身來說,為何越來越多的研究者選擇在論文中使用 PyTorch 呢?大概可以總結(jié)為以下三個原因:
簡單。與 numpy 類似,PyTorch 可以很容易地與 Python 生態(tài)系統(tǒng)融合。例如,向 PyTorch 模型的任意位置放入一個 pdb 斷點(diǎn),它都可以正常工作。而在 TensorFlow 中,調(diào)試模型需要一個激活的會話,最后會變得非常棘手;
優(yōu)秀的 API。相較于 TensorFlow,多數(shù)研究者更喜歡 PyTorch 的 API。部分原因在于 PyTorch 的設(shè)計(jì)更加合理,還有一部分原因在于:TensorFlow 在將 API 轉(zhuǎn)換多次之后已經(jīng)自損元?dú)猓?/p>
性能。盡管 PyTorch 的動態(tài)圖留給優(yōu)化的機(jī)會非常之少,但有不少非正式報(bào)告稱 PyTorch 與 TensorFlow 一樣快。目前還不清楚這是不是真的,但至少,TensorFlow 在這方面還沒有取得決定性優(yōu)勢。
PyTorch 的這些優(yōu)勢或許就是越來越多的學(xué)者選擇它的理由吧!