一千萬個為什麽

搜索

Python分布式機器學習

我偶爾會為我的研究訓練神經網絡,它們通常需要很長時間才能運行(特別是當我在筆記本電腦上工作時)。

我正在尋找一種方法在任何計算機上構建模型並將其發送到服務器進行培訓並讓它返回圖形/精度/重量等。我知道有付費解決方案,但我正在尋找一個分布式解決方案我可以自己運行

我在家裏安裝了一臺服務器,即將進行CPU和GPU升級。我希望能夠設置它,以便當我在局域網上工作,或者當我在筆記本電腦上遠程工作時,我可以將代碼發送到服務器並讓它訓練模型並返回給我結果(如果關閉發件人機器,則保存結果)

有沒有現成的解決方案來完成這樣的事情?我不依賴於任何特定的庫,但如果可能的話,我更願意堅持使用Python

最佳答案

這應該不是非常復雜。

大圖

假設您的服務器上有Linux:通過工作筆記本電腦連接到服務器,訓練網絡,接收結果(經過培訓的網絡)。

詳情

訓練網絡

如果你想堅持使用Python,我熟悉兩個基本選項。

第一個是 PyBrain ,一個專門用於訓練神經網絡的庫。語法相當簡單。數據集結構有點不尋常(特別是如果你習慣於在 scikit-learn 中使用numpy數組),但除此之外,它運行得相當好。但是,它不支持GPU AFAIK,我不知道它是如何優化/快速的。

第二個是Google的 Tensor Flow 。如果你只想運行vanilla神經網絡,那麽有點重量級,但語法也很容易解決(雖然與 PyBrain 非常不同)。它也可能比你在Python中找到的任何東西都快。它還支持GPU培訓。

獲取結果

這取決於您選擇的庫(或者它可能取決於您編寫自己的實現)。但是上面提到的兩個庫都會讓你返回訓練過的權重,你可以將它們保存為csv文件並在訓練時下載。或者你可以腌制它們並以這種方式回來。此外,Tensor Flow具有此Tensor Board功能,可讓您可視化培訓和網絡結構,但我還沒有嘗試過,所以在這方面無法提供幫助。

轉載註明原文: Python分布式機器學習