[英]Caret in R: Set number of cores for allowParallel?
我正在使用R的插入符号包,并且在训练函数(训练)中我使用了allowParallel参数,它可以工作。 但是,它使用了所有核心,并且由于培训在我的本地PC上运行,我宁愿为自己留下一个核心,以便能够在训练模型时工作。 有没有办法做到这一点?
根据我的收集,似乎不同的模型类型可能使用不同的并行化包。 我在windows上工作,所以我猜它不是在使用doMC(我知道如何设置内核的数量......)
经过更多的研究,我找到了一种方法来使用我想要的核心数量:train可以选择直接指定num.threads = 7
使用的核心数(8个核心中的7个)
rf_model<-train(Target~., data = df_tree_train, method = "ranger",
trControl = trainControl(method = "oob"
, verboseIter = TRUE
, allowParallel = TRUE
, classProbs = TRUE
)
, verbose = T
, tuneGrid = tuneGrid
, num.trees = 50
, num.threads = 7 # <- This one
)
我很惊讶:
library("doParallel")
registerParallel(parallel::detectCores() - 1)
不这样做。 也许有递归并行性不承认上述内容。 您可以尝试使用doFuture包:
library("doFuture")
registerDoFuture()
plan(multiprocess, workers = availableCores() - 1)
应该保护免受不必要的嵌套并行性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.