2013-05-17 99 views
5

上運行我通過doRedis集羣上運行的train功能caret當插入符號出現。在大多數情況下,它的工作原理,但每隔一段時間我在這種性質的盡頭出現錯誤:錯誤集羣

error calling combine function: 
<simpleError: obj$state$numResults <= obj$state$numValues is not TRUE> 

Error in names(resamples) <- gsub("^\\.", "", names(resamples)) : 
    attempt to set an attribute on NULL 

當我運行traceback(),我得到:

5: nominalTrainWorkflow(dat = trainData, info = trainInfo, method = method, 
     ppOpts = preProcess, ctrl = trControl, lev = classLevels, 
     ...) 
4: train.default(x, y, weights = w, ...) 
3: train(x, y, weights = w, ...) 
2: train.formula(couple ~ ., training.balanced, method = "nnet", 
     preProcess = "range", tuneGrid = nnetGrid, MaxNWts = 2200) 
1: caret::train(couple ~ ., training.balanced, method = "nnet", 
     preProcess = "range", tuneGrid = nnetGrid, MaxNWts = 2200) 

這些錯誤不容易重現(即它們有時發生,但不一致),只發生在運行結束時。集羣上的標準輸出顯示所有正在運行和完成的任務,所以我有點慌張。

有沒有人遇到這些錯誤?如果是這樣理解原因,甚至更好地解決?

回答

2

我想你已經解決了這個問題,但我遇到了同樣的問題,包括Linux和Windows系統的我的羣集上。我在ubuntu 14.04上運行服務器,並注意到啓動服務器服務時出現了關於在Linux內核中啓用「透明大頁面」的警告。我忽略了這一信息,並開始進行訓練練習,其中大部分機器都與工人一起工作。我在運行結束時收到了同樣的錯誤:

error calling combine function: 
<simpleError: obj$state$numResults <= obj$state$numValues is not TRUE> 

很多撓頭和無用的修修補補之後,我決定在這裏按照說明解決警告:http://ubuntuforums.org/showthread.php?t=2255151

從本質上講,我裝hugeadm使用:

sudo apt-get install hugeadm 

然後,使用禁用了透明的網頁:

hugeadm --thp-never 

請注意,重新啓動計算機後,此更改將被撤消。

當我重新運行我的訓練過程中它運行沒有任何錯誤。

希望有所幫助。

乾杯, 埃裏克

+0

鏈接可能在未來消失。請編輯您的答案以反映該鏈接提供的解決方案。如果你不這樣做,你可能會刪除僅僅是鏈接回答的答案。 –

+1

不幸的是,即使在我上面提到的修復之後,我仍然收到了錯誤消息,儘管現在不太經常。我注意到,這個錯誤似乎發生在工作人員正在將我的LAN/Wifi家庭網絡最大化時發生。我已經能夠通過使用更少的工人甚至更多地減少這個問題的發生。另外,我可以成功運行失敗的作業,因爲所有工作人員都是啓動作業的rsession的本地人員。我還沒有嘗試過,但我也相信,如果工作人員在Redis服務器上運行,它會工作正常。 –