在群集上运行时在插入符中发生错误

时间:2013-05-17 18:17:58

标签: r machine-learning cluster-computing r-caret r-doredis

我通过caret在群集doRedis上运行train功能。在大多数情况下,它是有效的,但我经常在这种性质的最后得到错误:

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)

这些错误不易重现(即它们有时发生,但不一致),并且仅在运行结束时发生。集群上的标准输出显示所有正在运行和完成的任务,所以我有点不知所措。

有没有人遇到过这些错误?如果是这样理解原因,甚至更好地解决问题?

1 个答案:

答案 0 :(得分: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

请注意,重新启动计算机时将撤消此更改。

当我重新训练我的训练过程时,它没有任何错误。

希望有所帮助。

干杯, 埃里克