Ошибка в каретке при работе в кластере
Я бегу train
функция в карете на кластере через doRedis. По большей части это работает, но время от времени я получаю ошибки в самом конце этой природы:
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 ответ
Я полагаю, что вы уже решили эту проблему, но я столкнулся с той же проблемой на моем кластере, состоящем из систем 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
По сути, я установил огромное приложение, используя:
sudo apt-get install hugeadm
Затем отключил прозрачные страницы, используя:
hugeadm --thp-never
Обратите внимание, что это изменение будет отменено при перезагрузке компьютера.
Когда я перезапустил тренировочный процесс, он прошел без ошибок.
Надеюсь, это поможет.
Ура, Эрик