2021,TensorFlow和PyTorch新變化

深度學習發展至今,深度學習的框架也出現了百花齊放的局面,16年出世風靡世界的TensorFlow和稍晚一年卻隱隱有蓋住其風頭的Pytorch,現在兩個的地位有什麼變化嗎

2021 年了,TensorFlow 和 PyTorch 兩個深度學習框架地位又有什麼變化嗎?

# 回答一

作者:思想火龍果

pytorch統治學術圈。現在各大頂會開原始碼沒有一絲絲的tensorflow2。x,就連谷歌家自己的論文也是隻有torch和jax。零零星星一些tf1的開原始碼。

tensorflow2。x難用嗎?真不難用的,基本就是在用keras,tf。data pipeline 和 tf。distribute 用起來真的省心又快。問題就是現在tf2沒人用啊,也不是不好用,就是你有的pytorch也有,pytorch用得已經好好的了為啥還要換呢?然後你又再搞一個新庫,jax,而且還是用tensorflow寫的,而且還不是像keras,sonet一樣能跟tf混著用的 ,然後google research開原始碼要不是pytorch就是jax,連自家都不用別人會用麼。

谷歌真的挺迷惑的,把keras合併了不去好好搞keras推廣keras,可能再過兩年 import tensorflow as tf 直接報warning “tensorflow is deprecated, please use pytorch instead”

# 回答二

作者:夕風Twilighty

全球範圍看,經過16-19年這三年的發展,PyTorch在學術圈的「壟斷」地位基本已經站穩。這一方面得益於PyTorch一開始主打的動態建圖,便於實驗室的學生們快速迭代模型,試驗想法是否work;另一方面也來自於PyTorch吸收了TF 1。x版本中的某些優點,doc做的也不錯,便於初次接觸機器學習和深度學習的新人上手,這一點的重要性往往容易被忽視。

TensorFlow在國內目前處在一個相對尷尬的境地,TF 1。x系列面世較早,2015年以及之前就深耕深度學習的程式設計師和在校同學,大部分用框架時都會從TF(與TF的雛形,即更早的theano)入手。因此在學術界、工業界都有很深的積澱,工業界由於專案更「重」,牽一髮而動全身(或者應該說屎山太多),因此目前很多專案仍然停留在TF 1。x(1。1x)上面。因此要說TF快涼了,也不客觀。但TF目前面臨一個比較尷尬的問題,Google強推TF 2。0版本,但TF 1。x和2。0版本之間的API差異實在不小,導致doc的閱讀成本和版本適配成本都相當高。

至於學術界,PyTorch在國內學校也廣受歡迎,TF 2。0我知道有一小部分實驗室在用。但總的來說 TF 2。0在這方面相對於PyTorch確實沒有優勢,實驗室刷metric的場景下,大家也基本沒有太多機會發揮出TF在分散式上的一些buff。而與此同時,PyTorch的生態建構肉眼可見地漸入佳境,TorchVision和TorchText兩個庫都做的相當漂亮,整體Pipeline的舒適度誰用誰知道。TensorFlow顯然也明白自己要補齊什麼短板,Keras可以認為就是這樣的嘗試吧,但Keras的封裝做的讓人感覺總差點味道。至於MXNet、PaddlePaddle之流,在國內的「市場」確實很小。PyTorch目前的確在蠶食TF的天地,如果在模型部署方面有更穩健的突破(包括對底層C++的某些開放和最佳化),那麼TF確實要做出一些大的改變來應對了。

如果你還有好的idea,歡迎評論區討論,同時,希望大家能關注下,謝謝