Wednesday, December 13, 2017

PyTorch(二):PyTorch vs. TensorFlow

PyTorch(二):PyTorch vs. TensorFlow

2017/11/30

前言:

選擇 PyTorch 作為實現深度學習的框架之前,你可能要問,為什麼我們選擇 PyTorch,而不是 TensorFlow 或是 Caffe?

-----


Fig. 1. [6].

-----

Summary:

之前在 survey Caffe 時,已經進行過一些框架的諸元比較 [1]。本次摘錄了一些網路文章,包括李飛飛教授 [2]、Awni Hannun [3], [4]、Dominic Monn [5], [6]、Hieu Pham [7] 等人對框架的比較。

這一篇也有很明確的比較:PyTorch 定義清楚,好上手。TensorFlow 沒那麼明確,但搞定後,適合發佈到不同的平台。一般說來,TensorFlow 是比較煩的 [7]。

-----

李飛飛:[2]

PyTorch 和 Torch 更適用於學術研究(research);TensorFlow,Caffe,Caffe2 則更適用於工業界的生產環境部署(industrial production)。 Caffe 適用於處理靜態圖像(static graph);Torch 和 PyTorch 更適用於動態圖像(dynamic graph);而 TensorFlow 在兩種情況下都很實用。 Tensorflow 和 Caffe2 可在移動端使用 [2]。

-----

Awni Hannun: [3], [4]

PyTorch 更有利於研究人員,愛好者,小規模項目等快速搞出原型。而 TensorFlow 更適合大規模部署,特別是需要跨平台和嵌入式部署時。

TensorFlow 有一些額外的概念需要學習,例如會話,圖,變量作用域(variable scoping),佔位符等。另外還需要更多的樣板代碼才能讓一個基本的模型運行。所以 TensorFlow 的上手時間,肯定要比 PyTorch 長。

對於移動端和嵌入式部署,TensorFlow 更好。不只是比 PyTorch 好,比大多數深度學習框架都要要。使用 TensorFlow,部署在 Android 或 iOS 的平台時只需要很小的工作量,至少不必用的 Java 或者 C ++ 重寫模型的推斷部分。

PyTorch 沒有對的 Windows 的官方支持,而 TensorFlow 有。很多場合(通常是金融和保險行業)使用的 Windows 進行開發和原型設計,用的 Linux 進行生產部署,所以你需要一個能對兩者都支持的框架。

-----

Dominic Monn:[5], [6]

很明顯,PyTorch 社群不像 TensorFlow 那麼龐大,但很多人都喜歡在業餘時間用 PyTorch,即使他們工作時使用的是 TensorFlow。我認為,一旦 PyTorch 發佈正式版,PyTorch 社群會變得更大。在目前,仍然很難找到非常精通 PyTorch 的人。 不過它的社群也足夠大了,如果在官方論壇上提出問題,通常很快就能得到解答。許多優秀神經網絡模型也有 PyTorch 的操作樣例了。

-----

補充:

「PyTorch 比較吸引我的特性有以下幾點: 1. 支持 Python。 2. 支持 autograd。 3. 更容易 debug。 4. 支持動態圖的創建。 5. 和 LuaJIT 相比降低了大概30%-50%的內存使用率。 其他一些我會考慮的點: 1. 遷移成本。 2. 社區支持。」[8]

-----

結論:

假定你是學生的話,可以先用 PyTorch 熟悉深度學習。但在畢業準備上班前,就要下點功夫在 TensorFlow 上,未來才方便找工作。

總之,入門還是以 PyTorch 好 [7]!

-----

References

[1] 新-AI從頭學(二):Popular Deep Learning Software Tools
http://hemingwang.blogspot.tw/2017/10/aipopular-deep-learning-software-tools.html

[2] 史丹佛CS231n 2017最新課程:李飛飛詳解深度學習的框架實現與對比 - EasyAI關注AI科技
http://ai.easyapi.com/blog/view/1138

[3] PyTorch还是TensorFlow?这有一份新手指南_搜狐科技_搜狐网
http://www.sohu.com/a/165984443_610300

[4] PyTorch or TensorFlow  – Awni Hannun – Writing About Machine Learning
https://awni.github.io/pytorch-tensorflow/

[5] PyTorch vs. TensorFlow月度使用體驗總結 _ 香港矽谷
https://www.hksilicon.com/articles/1452175

[6] PyTorch vs. TensorFlow  1 month summary – Towards Data Science
https://towardsdatascience.com/pytorch-vs-tensorflow-1-month-summary-35d138590f9

[7] Hieu Pham's answer to What are your reviews between PyTorch and TensorFlow  - Quora
https://www.quora.com/What-are-your-reviews-between-PyTorch-and-TensorFlow/answer/Hieu-Pham-20 

[8] 為什麼 PyTorch 這麼火?一線開發者這樣說 _ 香港矽谷
https://www.hksilicon.com/articles/1332093   

[9] 教程 _ 如何從TensorFlow轉入PyTorch - 掃文資訊
https://tw.saowen.com/a/75a9ce8f81eabb13a7e2410765d6ebf1ead2c2e1f14d3c12fc636065bcd28089

No comments: