作為一名AI工程師,掌握一門深度學習框架是必備的生存技能之一。

自 TensorFlow 從 Google 中脱穎而出以來,它在研究和商業領域成為最受歡迎的開源深度學習框架,緊接着 從 Facebook 誕生的 PyTorch 由於社區推動的易用性改進和越來越廣泛的用例部署,而迅速趕上TensorFlow。

 

兩個框架在當年一度備受爭議,TensorFlow和PyTorch誰更好?

 

從去年校招開始到現在負責部門的面試,從我手上流走的簡歷多多少少也有上百封了。

 

面試了很多候選人,當問他們常用的深度學習框架時,發現他們清一色的選擇了:PyTorch。

 

從各個方面可以看出,經過這些年的發展,PyTorch在學術圈的「壟斷」地位基本已經站穩

 

誠然,比起TensorFlow,大多數研究人員更偏愛PyTorch的API,PyTorch設計更科學,而TensorFlow自推出2.0版本後,與TF 1.x 的API差異實在不小,導致doc的閲讀成本和版本適配成本都相當高。

 

如果是初學者,無腦Pytorch就對了。社區資源多、開源代碼多、上手也很簡單,各大廠商對Pytorch的支持也多(TensorRT、ONNX)。

 

其實框架的作用就是我們無需造輪子可以直接使用,並且節省工作量,對於Pytorch來説對研究友好、對訓練友好、對白嫖大佬的開源代碼也友好,對模型部署也友好,可以節省大把時間去做其他有意義的事情,沒有理由不使用Pytorch。

 

如果是工作了,就看公司在用什麼吧,因為公司是面向需求的

 

在業界,無論算法性能有多好,總歸還是要上線的,選擇框架的時候便會考慮以下這些問題,是否方便部署到線上,支持多語言,並且有較好的系統穩定性以及有非常多線上應用實例。

 

TF 1.x系列面世較早,在學術界、工業界都有很深的積澱,工業界由於項目更重,牽一髮而動全身,因此目前很多項目仍然停留在TF 1.x(1.1x)上面。

 

像業界大多數支撐搜廣推場景的模型,還是用Tensorflow,TensorFlow適合大規模部署,特別是需要跨平台和嵌入式部署時。

 

至於延伸到選擇哪個的問題:

 

顯而易見,小孩子才做選擇,而我們都要學,基本都要會用,這樣才能自己選擇工具,而不是工具挑選你。

然而,我們通過調研發現,80%的0-3歲互聯網人沒有系統的學習過Tensorflow、PyTorch方向,缺乏項目實戰,處於比較淺層面的對比。

網上解讀Tensorflow、PyTorch文章非常多但知識點零散,學習起來抓不住重點。