谷歌大腦前員工:PyTorch真香,我已經把TensorFlow代碼搬過去了

郭一璞 發自 凹非寺

量子位 報道 | 公眾號 QbitAI

TensorFlow還是PyTorch?


谷歌大腦前員工:PyTorch真香,我已經把TensorFlow代碼搬過去了


這個問題幾乎是機器學習界的“什麼是最好的語言”,總有人爭論不休。

Google的TensorFlow出生的更早,用的人更多;Facebook的PyTorch用戶增長更快。兩家再框架之爭上安營紮寨,正面對壘,都說自己的框架才是最好的語言。

不過最近,有人“反水”了:

曾經在Google Brain工作一年的前員工Denny Britz在自己的推特上正式宣佈:

PyTorch真香!我要把我的TensorFlow代碼都搬遷過去。


谷歌大腦前員工:PyTorch真香,我已經把TensorFlow代碼搬過去了


要知道,Denny Britz四個月前還認為TensorFlow和PyTorch大部分時候差別不大,除了個別情況,選哪個都行。


谷歌大腦前員工:PyTorch真香,我已經把TensorFlow代碼搬過去了


究竟是什麼,讓一個Google Brain前員工都放棄TensorFlow?Denny列出了TensorFlow的好處。

Denny特別強調,自己的判斷是針對研究角度的,也就是實現非標準模型和低級層,如果不是研究者,只需要一個庫在一個數據集上跑出結果的話,TensorFlow和PyTorch都很好,不用刻意選擇。

他覺得相比TensorFlow,PyTorch有以下幾點不同:

統一性。與TensorFlow相比,PyTorch非常乾淨、統一,文檔化非常好,也沒有大量重複的函數,代碼裡沒有deprecation warning,完成一件事情用一種方法就好了,不需要10種不同的方法互相競爭,這樣生產力很高。

性能相差不大。在性能上,PyTorch和TensorFlow幾乎沒什麼差別,在Denny的測試中,PyTorch的速度要稍微快一丟丟,不過他覺得這影響不大。

簡潔性。PyTorch代碼更簡潔易讀,PyTorch實現平均短得多,而且對於不熟悉圖形編程的人來說看起來更直觀。

不過,他也覺得PyTorch還有一些缺陷。

一個缺陷就是可視化,有幾個開源項目來實現可視化,但是沒有一個好用的,我是真的想在多個自定義層級上實現可視化圖形,在TensorFlow裡這很簡單,只要用名字作用域+Tensorboard就搞定了。

這讓Denny很不解:“我是真心覺得可視化這事不難,直接允許用戶用作用域標記模塊,然後創建d3js圖形就好了。”

JIT編譯也是一大缺陷。有一些操作不支持,追蹤也僅適用於簡單模型的一小部分,因為長得太像TensorFlow,TorchScript編寫過程也很痛苦,所以Denny還沒法去JIT編譯自己的所有模型。

眾說紛紜的框架們

TensorFlow和PyTorch哪家強,這是一個經久不衰的話題。


谷歌大腦前員工:PyTorch真香,我已經把TensorFlow代碼搬過去了


有人認為,PyTorch上手快,如果已經學會了Numpy和Python,非常容易上手,而TensorFlow對新手卻非常不友好,要學很多很多額外的概念,要很久才能上手。

也有人覺得,TensorFlow更全面,高級功能更多,總能解決一些PyTorch不支持的問題,尤其是沿維翻轉張量、檢查無窮與非數值張量、快速傅里葉變換。

還有TensorFlow用戶自己吐槽,TensorFlow調試起來過於困難,不像PyTorch那樣可以很方便的修改出問題的那行代碼。

也有人認為,TensorFlow裡至少打包了了keras、tflearn、tflayers,它們三個糅雜在一起,並不完全配合,一方面不好找,另一方面用起來也不完整。

還有不少人覺得,TensorFlow過於吃GPU,彷彿全世界都和Google一樣擁有大量GPU。

所以,你“真香”了嗎?

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話界面,回覆“招聘”兩個字。

量子位 QbitAI · 頭條號簽約作者

վ'ᴗ' ի 追蹤AI技術和產品新動態


分享到:


相關文章: