2013-05-17 64 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服务器上运行,它会工作正常。 –