Ich führe die train
Funktion in caret auf einem Cluster über doRedis. Zum größten Teil, es funktioniert, aber jeder so oft bekomme ich Fehler ganz am Ende dieser Art:Fehler beim Ausführen von Caret auf einem Cluster
error calling combine function:
<simpleError: obj$state$numResults <= obj$state$numValues is not TRUE>
und
Error in names(resamples) <- gsub("^\\.", "", names(resamples)) :
attempt to set an attribute on NULL
wenn ich traceback()
laufen erhalte ich:
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)
Diese Fehler sind nicht leicht reproduzierbar (dh sie passieren manchmal, aber nicht konsistent) und treten nur am Ende des Laufs auf. Das stdout auf dem Cluster zeigt alle laufenden und abgeschlossenen Aufgaben an, also bin ich ein wenig verwirrt.
Hat jemand diese Fehler festgestellt? und wenn ja, verstehen Sie die Ursache und noch besser eine Lösung?
Verbindungen in Zukunft verschwinden. Bitte bearbeiten Sie Ihre Antwort, um die Lösung zu reflektieren, die der Link bietet. Sie riskieren die Löschung der Antwort für nur eine Link-only-Antwort, wenn Sie dies nicht tun. –
Leider bekomme ich immer noch die Fehlermeldung, auch nachdem ich die oben erwähnte Fehlerbehebung durchgeführt habe, obwohl jetzt viel seltener. Ich habe festgestellt, dass dieser Fehler auftritt, wenn die Mitarbeiter mein LAN/Wifi-Heimnetzwerk ausschöpfen. Ich war in der Lage, das Auftreten dieses Problems noch mehr zu reduzieren, indem ich weniger Arbeiter einsetzte. Außerdem kann ich erfolgreich Jobs ausführen, die fehlschlagen, wenn ich es ändere, so dass alle Mitarbeiter lokal für die Sitzung sind, die den Job initiiert hat. Ich habe das noch nicht versucht, aber ich glaube auch, dass es gut funktionieren würde, wenn die Arbeiter auf dem Redis-Server laufen würden. –