首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mlr3正确设置并行化

mlr3正确设置并行化
EN

Stack Overflow用户
提问于 2022-11-28 12:44:39
回答 1查看 16关注 0票数 0

假设我有一台有32个核心的机器,并且希望尽可能高效地执行一个嵌套的5外折叠和3内折叠的CV。

在外折上,我对两个或多个学习者进行基准测试,在内部折叠上,我为其中一个或n-k的学习者调谐超参数。

如何设置batch_size和未来::plan()?

term_eval如何依赖批处理大小?

这样做明智吗?我的预感是更好地并行运行内环。但我对term_evals和batch_size并不确定。

代码语言:javascript
复制
lrn1 <- auto_tuner(
  method = "random_search",
  learner = lrn1,
  resampling = rsmp("cv", folds = 3),
  measure = msr("classif.auc"),
  term_evals = 100,
  batch_size = 10,
  store_models = TRUE
)

design = benchmark_grid(task = task, learner = c(lrn1, lrn2), resampling = rsmp("cv", folds = 5))

# Runs the inner loop in parallel and the outer loop sequentially
future::plan(list("sequential", "multisession"))

bmr = benchmark(design, store_models = TRUE)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-28 13:18:44

如果使用rsmp("cv", folds = 3)和set batch_size = 10,一次使用30个核心(3倍x 10次配置)。

term_eval是如何依赖于批处理大小的?

term_eval不依赖于batch_sizebatch_size指定在检查终止符之前计算多少个配置。在您的示例中,在10个配置之后检查终止符。但是你还有90种配置,所以调优还在继续。终止符在10个配置之后再次检查,以此类推。当计算100个配置时,终止符将停止调优。batch_size还确定并行计算多少个配置。

我的预感是更好地并行运行内部循环。

是的,并行运行内循环,即保持future::plan(list("sequential", "multisession"))

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74600792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档