如何對比 PyTorch 和 Gluon 的煉丹體驗?
近來,和周圍同時使用gluon,pytorch的選手交流,(包括部分內部contributor),有的人說gluon會漲點,有的又說不會。有的又說pytorch更省內存。在此,希望有經驗的丹友們,能講講自己的兩者使用體驗?包括但不限於:易用性,大小坑,內存使用,不同task下performance對比等等。
看到了這個
https://zh.mxnet.io/blog/learn-mxnet-for-pytorch-users?from=timelineisappinstalled=0
但是這裡面說的東西也不是最新的了,master上,pytorch已經不需要variable了,並且用了torch.no_gard來做inference(而gluon用record來做訓練),然後scalar得用.item()而不是.data[0]了,類似於gluon的asscalar
(master上這些個feature其實有一會了已經)btw,大家不要學習這個tutorial裡面的寫法哦:
total_loss += loss.mean()
這樣是會爆內存的,(∩_∩)
複製一個以前我吐槽各方文檔的
PyTorch : Supervised Learning
TensorFlow : Unsupervised Learning
MXNet : Understanding deep learning requires rethinking generalization
對比兩者的社區 / 文檔 / 開源項目,真心覺得直接無腦 PyTorch 就好了。(部署產品 / 多機多卡除外)
附一份 CVPR 2018 開源代碼的框架使用統計
{PyTorch: 22, tensorflow: 22, mxnet: 0, theano: 0, keras: 4, matlab: 16, torch(lua): 5}
研究者們的投票已經很明顯咯
對於新手來說,當然pytorch是首選。
1,從代碼的角度來說,純python代碼風格,不在需要去關注你沒有遇到過的有關編程相關的問題
2,調試方面,pytorch使用動態圖,想斷哪裡就斷哪裡,而煉丹是需要關注經過步驟後你的Tensor的shape/size的變化,對於需要從頭開始寫網路的同學來說,這很重要
3,最近pytorch確實在學術界用的越來越多,圖像分割,行人重識別, 強化學習都有對應的repo放出了,即使GAN這樣的大火的研究方向,一般tensorflow出來後,就有同學推出了pytorch版本,gluon相對還太小眾。
4,數據讀取dataset, dataloder方面太友好,相對統一的數據讀取方法,閱讀別人的代碼不需要太費力。模型開發你有80%都在處理你的數據集,寫各種transform真的太方便(曾經就是因為tensorflow在數據集上每個人有每個人的寫法,讀別人的代碼真的很奔潰,很久沒用tf, 不知道這方面有沒有改進)
當然,pytroch也存在一些問題,比如
1,在物體檢測方向涉及到的各種ROI pooling(Faster-RCNN), ROIAlign(Mask-RCNN) , Position-Sensitive ROI pooling(R-FCN)等pytorch本身沒有給出,是依賴與第三方給出的CUDA實現,不過聽說pytorch 0.4會推出了~~~,比較期待
2,產品部署,這點確實不是pytorch擅長的,但是不是說pytorch不能用於產品部署,如pytorch開發小組所說,當前階段這些feature不是最緊急的,同志們pytorch現在才到0.3呀,而tf都到1.7了,所以以後該有都會有的
最後,李沐老師的深度學習課程確實很用心,也希望gluon越來越流行
更新:
caffe2已經宣布要併入pytorch了,那麼以後模型部署就不在是pytorch的短板了~~~
謝邀……請摺疊我……
我覺得 Gluon 都像素級參考 PyTorch 了,還能有什麼差異呢……
但是 PyTorch 有 FAIR 呀 &>_&<…… 總會有源源不斷新 paper/lib 用 PyTorch 的……
salesforce/awd-lstm-lm
OpenNMT/OpenNMT-py
allenai/allennlp
建議Gluon團隊多點搬運PyTorch上沒有的codebase,譬如說巨難寫的、也幾乎無法並行的tree structure。。。
不過,總的來說,Gluon好像比PyTorch好用一點,可惜以後只能用PyTorch了……
看起來還是Pytorch更流行一些,畢竟好多模型都可以找到Pytorch版本的實現。
也不要忽略TensorFlow,雖然是靜態圖結構,但現有的模型基本都有開源實現。
作為一名合格的煉丹師,怎麼可能只有一個煉丹爐!推薦閱讀:
※PyTorch為何如此高效好用?來探尋深度學習框架的內部架構
※2017 年 8 月 6 日發布的 pytorch 0.2.0 哪個特性最吸引你?
※PyTorch源碼淺析(一)
※PyTorch源碼淺析(目錄)
TAG:深度學習DeepLearning | MXNet | PyTorch |