1. 程式人生 > >深度學習筆記4-tensorflow和pytorch

深度學習筆記4-tensorflow和pytorch

深度學習筆記4-tensorflow和pytorch

TensorFlow由谷歌大腦開發,並且在谷歌公司中廣泛地應用於研究和生產需求。PyTorch是Torch框架的表親,Torch是基於lua開發的,在Facebook公司裡被廣泛使用。

(1) TensorFlow被許多研究人員和行業專業人士使用。該框架的文件很齊全,社群活躍,碰到問題基本上都可以在社群中得到解決。Pytorch近幾年才被提出,使用度比Tensorflow小,社群要小點,但增長趨勢很猛。

(2) TensorFlow需要在模型能夠執行之前靜態地定義圖。與外部世界的所有通訊都通過tf.Session物件和tf.Placeholder來執行,這兩個張量在執行時會被外部資料替代。在PyTorch中,圖的定義則更為動態化:你可以隨時定義、隨時更改、隨時執行節點,並且沒有特殊的會話介面或佔位符。總體而言,該框架與Python語言整合地更為緊密,並且在大多數時候用起來感覺更加本地化。而在用TensorFlow開發的時候,你會覺得模型是在一堵牆的後面,僅能通過牆上的幾個小洞與之通訊。

(3) Tensorflow包含Tensorboard,視覺化做的非常好。Pytorch一般是用matplotlib和seaborn來進行視覺化。

(4) TensorFlow 支援移動和嵌入式部署,而Pytorch沒有這個能力。此外,TensorFlow Serving支援高效能的伺服器端部署。

(5) PyTorch像一個框架,可用nn.Module建立複雜的深度學習架構。而純TensorFlow看起來更像是一個庫,而不是框架:所有的操作都在低層次進行,因此你不得不編寫大量的樣板程式碼(偏差和權重定義等等)。但現在TensorFlow高層次包裝的整個生態環境開始出現,在選擇適合任務的框架上有著很大的自由度。

——————————
PyTorch 更適用於研究、愛好者和小規模專案的快速原型開發。TensorFlow 更適合大規模部署,尤其是涉及跨平臺和嵌入式部署時。

但就個人而言,我更推薦Pytorch。PyTorch更為清晰,更為python化,讓開發者有更好的開發和除錯體驗。它的nn.Module讓你能夠以面向物件的方式來定義可重用的模組,這種方法非常靈活非常強大。然後,你可以使用nn.Sequential來組成各種模組。此外,你還可以以函式的形式使用所有的內建模組,這非常方便。總的來說,API的各個方面用起來都很順手。

參考:
PyTorch vs TensorFlow,哪個更適合你


PyTorch和TensorFlow哪家強:九項對比讀懂各自長項短板