PyTorch和TensorFlow比較 - thegradient

banq發表於2019-10-11

在2019年,機器學習框架之戰還有兩個主要競爭者:PyTorch和TensorFlow。我的分析表明,研究人員正在放棄TensorFlow並大量湧向PyTorch。

為什麼研究人員喜歡PyTorch?

  • 簡單。它類似於numpy,非常具有python風格,並且可以輕鬆地與Python生態系統的其餘部分整合。
  • 很棒的API。與TensorFlow的API相比,大多數研究人員更喜歡PyTorch的API。部分原因是因為PyTorch的設計更好,部分原因是TensorFlow透過多次切換API(例如“圖層”->“ slim”->“估算器”->“ tf.keras”)而變得殘障。
  • 效能。儘管事實上PyTorch的動態圖提供的最佳化機會很少,但有許多傳聞稱PyTorch的速度甚至於TensorFlow。目前尚不清楚這是否真的成立,但至少,TensorFlow在這一領域還沒有獲得決定性的優勢。

PyTorch和TensorFlow用於生產
儘管PyTorch現在在研究中處於主導地位,但工業界表明TensorFlow仍然是主導框架。
研究人員關心他們能夠以多快的速度進行研究,該研究通常是在相對較小的資料集(可以容納在一臺計算機上的資料集)上執行的,並且執行在<8個GPU上。通常,這不是由效能方面的考慮來決定的,而是由他們快速實施新想法的能力來解決的。
另一方面,工業界認為效能是重中之重。儘管將執行時間提高10%對研究人員而言毫無意義,但這可以直接為公司節省數百萬美元的費用。
工業界行業有很多限制/要求。

  • 沒有Python。一些公司將執行伺服器,這些伺服器的Python執行時開銷太大。
  • 移動。您無法在移動二進位制檔案中嵌入Python直譯器。
  • 服務。功能全面,例如無停機更新模型,在模型之間無縫切換,在預測時進行批處理等。

TensorFlow是專門針對這些要求而構建的,併為所有這些問題提供瞭解決方案:圖形格式和執行引擎本來就不需要Python。TensorFlow Lite和TensorFlow Serving服務分別解決了移動和服務兩個事項。
從歷史上看,PyTorch未能滿足這些考慮,因此大多數公司目前在生產中使用TensorFlow。

因此,我們得出了ML框架的當前狀態。PyTorch擁有研究市場,並且正在嘗試將這一成功擴充套件到工業領域。TensorFlow試圖在不犧牲太多生產能力的情況下,在研究界中盡其所能。PyTorch對行業產生有意義的影響肯定需要很長時間-TensorFlow根深蒂固且行業發展緩慢。但是,從TensorFlow 1.0到2.0的過渡將很困難,並且為公司評估PyTorch提供了自然點。

未來?
未來誰獲勝?將取決於誰能最好地回答以下問題。

  • 研究人員的偏好會在多大程度上影響行業?當前博士學位的畢業生開始畢業時,他們將帶來PyTorch。這種偏好是否足夠強大,以至於公司會出於招聘目的選擇PyTorch?畢業生會創辦基於PyTorch的創業公司嗎?
  • TensorFlow的熱切模式能否在可用性上趕上PyTorch?問題跟蹤器和線上社群給我的印象是TensorFlow Eager嚴重遭受效能/記憶體 問題的困擾,而Autograph擁有自己的問題份額。谷歌將花費大量的工程精力,但是TensorFlow受到歷史包bag的困擾。
  • PyTorch可以多快達到生產狀態?PyTorch仍然有許多基本問題尚未解決-沒有好的量化指標,移動性,服務性等。在這些問題解決之前,PyTorch甚至不會成為許多公司的選擇。PyTorch能否為公司提供足夠引人入勝的故事來做出改變?注意:在本文釋出之日,PyTorch宣佈支援量化和移動。兩者都仍處於試驗階段,但代表了PyTorch在這方面的重大進展。
  • Google在行業中的孤立會傷害到它嗎?Google推動TensorFlow的主要原因之一是幫助其迅速發展的雲服務。由於Google試圖擁有整個ML垂直市場,這激勵了Google與之競爭的公司(微軟,亞馬遜,Nvidia)支援唯一的替代機器學習框架。


詳情點選標題進入。

相關文章