mlr-org / mlr3

mlr3: Machine Learning in R - next generation
https://mlr3.mlr-org.com
GNU Lesser General Public License v3.0
927 stars 86 forks source link

Assertion on '.timeout' failed #894

Closed lucasxteixeira closed 1 year ago

lucasxteixeira commented 1 year ago

Hi, I'm getting an error when using the evaluate/callr for encapsulation. Here is reproducible example:

library(magrittr)
library(mlr3verse)

learner <- mlr3::lrn("classif.ranger", predict_type = "prob", predict_sets = c("train", "test"))
learner$encapsulate <- c(train = "evaluate", predict = "evaluate")
learner$timeout <- 300
learner$fallback <- mlr3::lrn("classif.featureless", predict_type = "prob", predict_sets = c("train", "test"))

learner <- mlr3tuning::auto_tuner(
  method = mlr3tuning::tnr("random_search", batch_size = 5),
  learner = learner,
  resampling = mlr3::rsmp("cv", folds = 3),
  measure = mlr3::msr("classif.ce"),
  search_space = mlr3tuningspaces::lts("classif.ranger.default"),
  term_evals = 50
)

gr <- mlr3pipelines::po("scale") %>>% 
  mlr3pipelines::po("imputemean") %>>% learner

cv <- mlr3::rsmp("holdout")

bmr_grid <- mlr3::benchmark_grid(
  tasks = mlr3::tsk("breast_cancer"),
  learners = gr,
  resamplings = cv
)

bmr <- mlr3::benchmark(bmr_grid)
be-marc commented 1 year ago

Hey, sorry for the late reply. The timeout must be set individually for train and predict.

learner$timeout <- c(train = 300, predict = 300)