2016-01-31 41 views
0

我正在迭代地運行交叉驗證深度學習訓練(nfolds = 4),以通過R在H2O上進行特徵選擇。目前,我只有2層(即不深)以及每層有8到50個神經元。只有323個輸入和12個輸出類。H2O是否應該如此緩慢?

在我的英特爾4770K(32 GB RAM)上訓練一個模型平均需要大約40秒。在培訓期間,H2o能夠最大化所有cpu內核。

現在,爲了加快培訓速度,我在亞馬遜雲中建立了一個EC2實例。我嘗試過最大的計算單元(c4.8xlarge),但加速很小。用相同的設置訓練一個模型需要大約24秒。因此,我懷疑有些事情我忽略了。 我開始這樣的訓練:

localH2O <- h2o.init(ip = 'localhost', port = 54321, max_mem_size = '24G', nthreads=-1) 

只是爲了比較的處理器,在4770K得到了10163的CPU基準,而英特爾至強E5-2666 V3拿到24804(vCPU的是36)。

這個加速是非常令人失望的,至少可以說,並不值得在亞馬遜雲中安裝和設置所有東西,同時支付超過2美元/小時的額外工作。

除了設置nthreads = -1之外,是否還有其他需要完成的工作來使所有內核工作?

我是否需要開始製作多個集羣以縮短培訓時間,還是應該從一個支持GPU的新型深度學習庫開始?

+0

Downvoters,請解釋你爲什麼downvote。 – user979899

+0

這裏沒有足夠的元素可以回答。問題太廣泛了。 – YCR

+0

我的博客[post](http://www.parallelr.com/r-dnn-parallel-acceleration/)用於DNN的並行加速,與H2O相比。 – Patric

回答

0

要直接回答你的問題,不,H2O不應該慢。 :-)看起來你有一臺體面的PC和亞馬遜實例(儘管有更多的vCPU)沒有使用最好的處理器(就像你在遊戲PC中發現的那樣)。 PC處理器的基本/最大增頻頻率爲3.5GHz/3.9GHz,而c4.8xlarge僅爲2.9GHz/3.5GHz

我不知道,這是必要的,但由於c4.8xlarge實例具有的RAM 60GB,您可以增加max_mem_size'24G'至少'32G',因爲這就是你的電腦有,甚至更大的東西。 (雖然不確定會做什麼,因爲內存通常不是限制因素,但可能值得一試)。此外,如果您擔心EC2價格,也許會考慮現貨實例。如果你需要額外的真實加速,你應該考慮使用multiple nodes in your EC2 H2O cluster,而不是單個節點。