5

我正在通过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)

这些错误不容易重现(即它们有时会发生,但并非始终如一),并且只会在运行结束时发生。集群上的标准输出显示所有正在运行和完成的任务,所以我有点困惑。

有没有人遇到过这些错误?如果是这样,了解原因并更好地解决?

4

1 回答 1

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

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

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

希望有帮助。

干杯,埃里克

于 2015-01-28T06:28:03.207 回答