0

雷鋒網(wǎng) AI科技評論按:日前,英偉達(dá)深度學(xué)習(xí)項(xiàng)目實(shí)習(xí)生Dominic Monn在medium上發(fā)文總結(jié)了他使用PyTorch和TensorFlow的一些體會(huì),在文章中,他從安裝、使用、文件、社群等方面簡單對比了這兩種框架。
他曾是TensorFlow用戶,加入英偉達(dá)后開始使用PyTorch,下面是的他的一些使用體驗(yàn):
安裝
PyTorch安裝起來很容易,也很直接,大家可以通過PIP來安裝,也可以直接選擇源碼安裝。PyTorch也提供Docker圖,大家可以在項(xiàng)目中把Docker圖用作base image。
PyTorch并不像TensorFlow一樣已經(jīng)指定好CPU和GPU,雖然它的這一特征可以讓安裝更加簡單,但如果在項(xiàng)目中想要同時(shí)支持GPU和CPU,將會(huì)產(chǎn)生更多代碼。
使用
PyTorch提供非常Python化的API接口,這與TensorFlow有很大差別,TensorFlow需要先定義所有的張量和圖,然后再執(zhí)行相應(yīng)的會(huì)話操作。雖然PyTorch的這一特性使得代碼變多了,但會(huì)更加清晰。
PyTorch圖必須定義在從PyTorch nn.Module類繼承過來的類中,運(yùn)行圖的時(shí)候會(huì)調(diào)用forward()函數(shù),通過這種“約定優(yōu)于配置”(convention over configuration)的方式,圖的位置一直處于可知狀態(tài),也不會(huì)在余下的代碼中定義變量。
你可能會(huì)需要一段時(shí)間來適應(yīng)PyTorch中的這種“新”方法,不過如果你以前在深度學(xué)習(xí)的研究之外用過Python,這種方法對你來說會(huì)很直觀。
也有一些人這樣評價(jià)——與TensorFlow相比,PyTorch在許多模型上都有更加優(yōu)秀的表現(xiàn)。
文件
PyTorch的大部分文檔都是完整的,我每次都能成功找到函數(shù)或模塊的定義。TensorFlow所有的函數(shù)都在一個(gè)頁面,而PyTorch不同于TensorFlow,每個(gè)模塊只用一個(gè)頁面。如果你要用Google找一個(gè)函數(shù),這會(huì)有點(diǎn)困難。
社群
很明顯,PyTorch社群不像TensorFlow那么龐大,但很多人都喜歡在業(yè)余時(shí)間用PyTorch,即使他們工作時(shí)使用的是TensorFlow。我認(rèn)為,一旦PyTorch發(fā)布正式版,PyTorch社群會(huì)變得更大。在目前,仍然很難找到非常精通PyTorch的人。
不過它的社群也足夠大了,如果在官方論壇上提出問題,通常很快就能得到解答。許多優(yōu)秀神經(jīng)網(wǎng)絡(luò)模型也有PyTorch的操作樣例了。
工具和輔助功能
雖然PyTorch能提供相當(dāng)多的工具,但仍然缺少一些非常有用的部分。例如它沒有類似于TensorBoard這種非常有用的工具,這會(huì)導(dǎo)致很難進(jìn)行可視化。
此外它也缺失一些常用的輔助功能,比起TensorFlow來說需要我們自己寫更多的代碼。
總結(jié)
PyTorch是TensorFlow之外一個(gè)非常好的選擇,雖然 PyTorch仍在測試階段,我希望在可用性、文件和性能方面它能有更多的改變和進(jìn)步。PyTorch非常Python化,用起來很容易。它的社群活躍,文件齊全,據(jù)稱它比TensorFlow更快。然而,它的社群比起TensorFlow來說,仍然只是九牛一毛,并且缺失了諸如 TensorBoard等一些非常有用的工具。
雷鋒網(wǎng) AI科技評論注,除了Dominic Monn近日對這兩種框架的對比, 斯坦福大學(xué)計(jì)算機(jī)科學(xué)博士生Awni Hannun也曾發(fā)文撰寫了這兩個(gè)框架之間的主要差異,詳情可以參見用PyTorch還是TensorFlow?斯坦福大學(xué)CS博士生帶來全面解答。
雷鋒網(wǎng) AI科技評論編譯整理。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。