【问题标题】:caret train not outputting progress插入符号火车没有输出进度
【发布时间】:2016-04-24 12:57:58
【问题描述】:

我想在caret查看训练进度。我已经设置了以下

fitControl <- trainControl(
  method = "repeatedcv",
  number = t.folds,
  repeats = t.repeats,
  seeds = seeds,
  returnData = FALSE,
  verboseIter = TRUE
  )

caret.trainmodel <- function(method, workers=2, ...) {
  # prepare parallel processing
  cl <- makeCluster(workers)
  registerDoParallel(cl)

  # start training
  set.seed(825)
  cat(paste("\n",method, "Training start \n"))
  pt <- proc.time()
  trained.model <- train(count.bins ~ ., data = training,
                   method = method,
                   trControl = fitControl,
                   verbose = TRUE,
                   ...
                   )
  cat(paste("Done", proc.time()-pt, "\n"))

  # release worker
  stopCluster(cl)

  return(trained.model)  
}

我称上面为例如caret.trainmodel("rpart") 并期待看到进展,例如它现在在哪个折叠/重复上。但是尽管verboseIter=TRUE 在控件中,verbose=TRUEtrain 调用中,但屏幕上没有显示任何内容。还有什么需要设置的吗?

【问题讨论】:

  • 据我所知,train 函数中的verbose = TRUE 没有做任何事情,因为这不是train 的显式参数,也不是rpart 函数的显式参数。不并行运行时是否得到预期的打印材料?
  • 是的,它在不并行时打印。

标签: r r-caret


【解决方案1】:

除了我上面的评论,尝试在makeCluster 函数中指定参数outfile

    makeCluster(workers,outfile = "")

详情请见?makeCluster

【讨论】:

  • 我只是按照您在评论部分的建议尝试了没有并行的方法,它确实输出了进度。但是为makeCluster 指定上面的参数并没有解决问题。
  • 您正在使用什么操作系统?以上在Ubuntu上为我解决了。
  • 其他可能有用的信息,parallel:::getClusterOption("type")的结果是什么
  • 以上返回"PSOCK"。我在 Windows 7 上运行。
猜你喜欢
  • 2015-12-04
  • 2016-01-28
  • 1970-01-01
  • 1970-01-01
  • 2015-01-18
  • 2011-09-26
  • 2016-01-15
  • 2013-07-18
  • 2020-07-25
相关资源
最近更新 更多