(轉)知乎高贊回答解讀:Pytorch和Tensorflow,誰會笑到最後

比較贊同這篇博客中,最後的一句話,話糙理不糙:

框架是死的,人是活的。兩個框架各有千秋,只是Pytorch更有前景。

選擇最有前景的,纔是最理智的,不要49年入國軍。

 

來源 | https://zhuanlan.zhihu.com/p/90534875

作者 | 土豆變成泥 (中國科學院自動化研究所算法工程師 )

提醒 | 本文已獲得作者授權發佈,如需轉載請與作者聯繫。

導讀:

本文是知乎上問題“TensorFlow 真的要被 PyTorch 比下去了嗎?”的回答內容,作者是中國科學院自動化研究所算法工程師,該回答在知乎上達到628贊,引起大家討論,得到不少人的認同和支持。

以下爲該回答的全部內容:

作爲谷歌tensorflow某項目的Contributor,已經迅速棄坑轉向Pytorch。目前Tensorflow還沒有被Pytorch比下去,但之後極大概率被比下去。

01 在學術界Pytorch已經超越Tensorflow

Pytorch因其簡單易上手,目前已經被廣大Researcher所使用。

 

深度學習論文Pytorch框架使用比例

從2018年的10%左右,飆升到今年的80%,只要不一頓操作猛如虎,Pytorch在學術界稱霸已成定局。

道理很簡單,Research的目的是快速實現、驗證自己的想法,而不太注重兼容、部署等問題,因此多數人奉行“怎麼快怎麼來”的策略;同樣,只有能夠快速驗證自己idea的Researcher才能不被實現而耽誤太多時間,更有機會發好的論文。

因此,學術界Pytorch未來會一枝獨秀。

 

02 在工業界Tensorflow依舊無可取代

工業界更注重部署,而Tensorflow的生態更有利於快速部署。

以Nvidia支持的TensorRT爲例子,與Pytorch相比,英偉達官方不僅是是支持了Tensorflow,而且給出了多種模型的基於TensorRT的多版本模型,除此之外,還給出了不同模型在最常用的嵌入式板子TX2上的算法測試時間。

所以,如果作爲一個工程人員,爲了更快速給出方案、更快速跑通流程、更快速完成任務,最好的方式就是在現有的生態基礎上,進行算法組合和調優,以滿足特定任務。

而如果採用部署生態尚不成熟的Pytorch,可能遇到目前TensorRT不支持某些操作、TensorRT的優化沒達到Tensorflow的水平,甚至出了一些莫名其妙的Bug然後花了好幾天才解出來甚至解不出來。

所以,目前的部署生態,Tensorflow要比Pytorch老練很多。

 

03 未來,Tensorflow無法打入學術界

從Pytorch2018年的10%飆升到80%這一趨勢來看,Tensorfow未來是無法打入學術界的,並且後續佔據的份額會更少。一個失了人心的框架,想力挽狂瀾的再找回人心,比重新開始還要艱難。

除此之外,Tensorflow 2.0更值得令人批判,如果圖它的Eager模式,我爲何不使用Pytorch?圖它的歷史包袱嗎?都是動態圖,Pytorch清晰明瞭簡潔,也沒有那麼多老舊歷史需要繞道。而使用Tensorflow時候,總是一不小心就發現還是繞回了原來的舊版本上。

 

04 未來,Tensorflow可能也會失掉工業界

Tensorflow在工業界的地位,也沒有那麼牢固,因爲生態總歸是人構建的。

當學術界瘋狂撲入Pytorch,對新模型的適配等工作,自然會傾向於Pytorch了。

有些項目做了Pytorch轉Tensorflow的工具,到時候難道Tensorflow,就只用來部署了?

 

05 Tensorflow的劣勢

Tensorflow靜態圖雖說上手難了點,但這並非1.x版本不好用的主要原因。Tensorflow 1.x不好用的主要原因在於API混亂。

tf.nn中算是基本操作,可tf.layer、tf.keras、還有tf.contrib裏面一坨東西tf.contrib.layer、slim等等,這麼多冗餘的Module,其實都只是基本的神經網絡層,contrib裏面額外有一些特殊的。

可是這種冗餘極大降低了Tensorflow的生態質量。有的人習慣用tf.layer,有的喜歡nn,官方還一直用slim,不少人也用tf.contrib裏面的很多東西。這種混亂使得Tensorflow的生態用起來並沒有那麼容易。

記得剛用tensorflow不久時候,對contrib裏面的東西瞭解也不多。突然看代碼遇到slim這東西,感覺簡直了。谷歌官方的代碼裏,明明就一個MobileNet,就不能不用contrib裏面的東西麼?我就不知道有什麼騷操作需要用到這裏的東西,說好的contrib裏面的東西不穩定呢?不穩定還總是用。

到了Tensorflow 2.0後,情況並沒有好轉。

爲了兼容1.x,谷歌也是想方設法的搞。可是,2.x的生態其實連Pytorch的車尾燈都看不到。圖個啥?圖時不時發覺還是1.x的生態好?

還不如堅守靜態圖,然後好好梳理一下自己的API!

 

06 總結

Pytorch依舊上升,而tensorflow的混亂會使得tensorflow會優勢漸失,倒向動態圖的tensorflow,只會加速自己的消亡。

所以,對於要入坑神經網絡的小白,直接撲向Pytorch不要回頭;

對於已經在使用Pytorch的,不要心心念念想着Tensorflow,這不是一個香餑餑;

對於已經在Tensorflow淺坑裏的,建議馬上轉向Pytorch,因爲你會Tensorflow再學會Pytorch,一週就夠了;

對於已經在Tensorflow坑底的,那一定是很大很大的大佬了,框架對你來說已經不是束縛了。

框架是死的,人是活的。兩個框架各有千秋,只是Pytorch更有前景。

選擇最有前景的,纔是最理智的,不要49年入國軍。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章