多くのランダム フォレスト モデルを実行する必要があるため、8 コアのサーバーで doParallel を使用してプロセスを高速化したいと考えています。
ただし、一部のモデルは他のモデルよりもはるかに長い時間が必要であり、エラーをスローすることさえあります。8 つのモデルを並行して実行したいのですが、モデルがエラーをスローしたりスキップされたりした場合、ワーカーは続行する必要があります。各モデルの結果はハードドライブに保存されるので、後でアクセスして組み合わせることができます。
TryCatch
また
.errorhandling="remove"
問題を解決しませんでした。私は得る
Error in unserialize(socklist[[n]]) : error reading from connection
コード例: %do% で試してみたところ、モデル 2-7 が正常に実行されました。それでも %dopar% に表示されたエラーが表示されます
foreach(model=1:8, .errorhandling="remove") %dopar% {
tryCatch({
outl <- rf_perform(...)
saveRDS(outl,file=getwd() %+% "/temp/result_" %+% model %+% ".rds")
}, error = function(e) {print(e)}, finally = {})
}