TensorFlow與PyTorch: 哪一種框架更適合深度學習模型?

因爲人工智能正在幾乎全部自動化領域獲得滲透。 深度學習是用於開發和最大化類人計算機效率的最棘手的架構之一。 爲了幫助產品開發人員,Google,Facebook和其餘大型科技公司已經發布了各類Python環境框架,能夠學習,構建和培訓多樣化的神經網絡。程序員

TensorFlow與PyTorch:哪一種框架更適合深度學習模型?

 

谷歌的TensorFlow是深度學習的開源框架,多年來受到歡迎。 使用新框架,PyTorch因其易於編寫的代碼而受到初學者的關注。 PyTorch是基於Python,C ++和CUDA後端開發的,可用於Linux,macOS和Windows。算法

這兩個普遍使用的框架之間存在一些差別,多是由於它們實現代碼,可視化技術以及靜態和動態編程的方式。編程

TensorFlow與PyTorch:哪一種框架更適合深度學習模型?

 

咱們來看看差別:後端

部署代碼瀏覽器

初始化時,在PyTorch上分配和構建圖形遵循動態計算圖形方法。 熟悉Python中的數學庫的用戶會發現它很容易,由於人們沒必要爲了構建圖形而頭腦發熱。 您能夠按照本身的方式直接編寫輸入和輸出功能,而無需擔憂尺寸張量。 經過CUDA支持,這使生活變得更加容易。網絡

在TensorFlow中,人們必須努力構建張量(圖形)的維度以及爲變量分配佔位符。 完成此操做後,必須運行會話才能計算出全部計算結果。 這樣的痛苦,不是嗎?架構

例如,tf.Session()用於構建會話,tf.Variable()用於將權重分配給變量,依此類推。 初始化後,能夠構建一個神經網絡,用於TensorFlow中的訓練。框架

文檔工具

PyTorch和TensorFlow的文檔普遍可用,考慮到二者都在開發中,而PyTorch是最近發佈的,與TensorFlow相比。 人們能夠在兩個框架上找到大量文檔,其中實現獲得了很好的描述。性能

這兩個框架都提供了大量的教程,這有助於人們專一於經過用例學習和實現它們。

設備適配

PyTorch和TensorFlow都有GPU擴展可用。這兩個框架之間的主要區別在於,當考慮GPU進行TensorFlow計算時,它會消耗全部可用GPU的整個內存。經過爲特定進程分配正確的GPU設備能夠避免這種狀況。 tf.device()爲您提供選擇首選GPU的選項。因爲TensorFlow是一種靜態計算圖形方法,所以能夠輕鬆優化此框架上的代碼。

在PyTorch上,變量能夠與權重一塊兒分配並同時運行,其中框架構建計算所需的圖形。這方面的GPU使用已經經過CUDA安裝啓用,即便在嘗試在CPU上運行時,PyTorch也老是試圖找到要計算的GPU。所以,必須提供X.cpu()擴展才能在CPU上運行它。

在TensorFlow tf.device(/ cpu:0):參數用於在CPU上運行它。也能夠選擇使用tf.device(/ gpu:0)的GPU來選擇第一個GPU或tf.device(/ gpu:1)來選擇第二個GPU。

模型可視化

可視化是理解模型性能和工做的關鍵。 TensorFlow具備圖形和模型TensorBoard的實時表示功能,很是方便。 在這裏,人們不只可以得到神經網絡的圖形表示,還可以得到實時的損失和準確度圖,其描繪了模型在特定迭代中的精確度。

TensorFlow與PyTorch:哪一種框架更適合深度學習模型?

 

這是一個實時分析,與PyTorch相比,TensorFlow更擅長此項,而PyTorch徹底缺少此功能。 您還能夠可視化神經網絡的流程圖,包括音頻文件(若是您的數據中存在),這很是棒。

結論

在將來,PyTorch可能會像TensorBoard同樣添加可視化功能。 PyTorch因其動態的計算方法和簡單性而愈來愈受歡迎。 建議初學者在繼續使用TensorFlow以前在PyTorch上工做,這有助於他們專一於模型而不是花時間構建圖形。

鑑於TensorFlow目前這麼流行,想要學習和實踐的程序員們也能夠了解下谷歌最近的AI開源項目——AIY Projects。AIY 全稱是 Artificial Intelligence Yourself,顧名思義就是利用 AI 來進行的 DIY 功能套件。藉助 AIY 項目,創客能夠利用人工智能來實現更像人與人交流的人機交互。谷歌目前爲 AIY Projects 推出了兩款硬件產品--AIY Voice Kit 和 AIY Vision Kit。

TensorFlow與PyTorch:哪一種框架更適合深度學習模型?

 

Vision Kit 由Raspberry Pi和Intel movidius提供動力。它能夠運行具備低耗處理能力的深度學習算法。Raspberry Pi Zero WH 包括視覺處理單元芯片,能夠高效地運行Tensor Flow圖像處理。

並且谷歌爲此還發布了一個TensorFlow.js的工具,有了這項工具,即便不是機器視覺領域的專家,你們也能夠實現不少應用場景,好比在瀏覽器中訓練本身的寵物臉辨識系統,在自家的監視系統中使用等等。

相關文章
相關標籤/搜索