開發者如何選擇深度學習框架?

留德華叫獸


如果我們想開始編碼一個深度神經網絡,最好我們有一個想法,不同的框架如Theano,TensorFlow,Keras,PyTorch等是如何工作的。

Theano是一個python庫,它提供了一套用於構建在我們的機器上快速培訓的深層網絡的功能。

Theano由加拿大蒙特利爾大學在Yoshua Bengio領導下發展成為一位深度網絡先鋒。

Theano讓我們定義和評估數學表達式,其中矩陣是矩形數組。

從技術上講,神經網絡和輸入數據都可以表示為矩陣,所有標準網絡操作都可以重新定義為矩陣運算。這很重要,因為電腦可以非常快速地執行矩陣操作。

我們可以並行處理多個矩陣值,如果我們用這個底層結構構建一個神經網絡,我們可以使用一臺帶有GPU的機器在合理的時間窗口內訓練巨大的網絡。

但是,如果我們使用Theano,我們必須從頭開始建立深層網絡。該庫不提供用於創建特定類型的深層網絡的完整功能。

相反,我們必須編碼深層網絡的每個方面,如模型,圖層,激活,訓練方法和任何特殊的方法來停止過度擬合。

然而,好消息是Theano允許我們在矢量化函數的頂層實現構建,為我們提供高度優化的解決方案。

還有許多其他庫擴展了Theano的功能。TensorFlow和Keras可以與Theano一起用作後端。

用TensorFlow深入學習

谷歌TensorFlow是一個Python庫。這個庫是構建商業級深度學習應用程序的絕佳選擇。

TensorFlow從另一個圖書館DistBelief V2誕生,它是Google Brain Project的一部分。該庫旨在擴展機器學習的可移植性,使研究模型可以應用於商業級應用。

與Theano庫非常相似,TensorFlow基於計算圖,其中節點表示持久數據或數學運算,邊表示節點之間的數據流,即多維數組或張量; 因此得名TensorFlow

一個操作或一組操作的輸出作為輸入被饋送到下一個。

儘管TensorFlow是為神經網絡設計的,但對於可以將計算模型化為數據流圖的其他網絡來說,它非常適用。

TensorFlow還使用了Theano的幾個特性,如常見和子表達式消除,自動分化,共享和符號變量。

可以使用TensorFlow(卷積網,自動編碼器,RNTN,RNN,RBM,DBM / MLP等)構建不同類型的深網。

但是,在TensorFlow中不支持超參數配置。對於此功能,我們可以使用Keras。

與凱拉斯深度學習

Keras是一個功能強大且易於使用的Python庫,用於開發和評估深度學習模型。

它具有簡約的設計,可以讓我們逐層建立網絡; 訓練它,並運行它。

它包裝了高效的數值計算庫Theano和TensorFlow,並允許我們用幾行簡短的代碼定義和訓練神經網絡模型。

它是一個高級神經網絡API,有助於廣泛使用深度學習和人工智能。它運行在包括TensorFlow,Theano等許多底層庫上面。Keras碼是便攜式的; 我們可以在Keras中使用Theano或TensorFlow作為後端而不需要對代碼進行任何更改來實現神經網絡。

  • Python深度學習應用程序

原文:http://codingdict.com/article/8355


分享到:


相關文章: