<p>带有 doMC 包的进度条?</p>

创建于 2016-04-18  ·  3评论  ·  资料来源: r-lib/progress

进度包是否也适用于 doMC 包?

最有用的评论

还是水货包? 如果没有,请为此功能 +1。

所有3条评论

还是水货包? 如果没有,请为此功能 +1。

老实说,我不确定实现这一点需要什么。 例如,对于并行,人们需要并行来回传已经完成了多少工作。 这甚至可能吗?

@gaborcsardi我做了一些搜索,以下是我发现的:

library("foreach")
library("doParallel")
library("progress")

registerDoParallel(parallel::makeCluster(7, outfile = ""))

pb <- progress_bar$new(
            format = " [:bar] :percent in :elapsed",
            total = 30, clear = FALSE, width = 80, force = T)
a <- foreach (i  = 1:30) %dopar% {
    pb$tick()
    Sys.sleep(0.5)
}


pb <- txtProgressBar(title = "Iterative training", min = 0, max = 30, style = 3)

foreach (i  = 1:30) %dopar% {
    setTxtProgressBar(pb, i)
    Sys.sleep(0.5)
}

stopCluster(cl)

txtProgressBar仅在 stype 为 2 或 3 时有效。根据函数手册:

style = 1 和 style = 2 只显示一行字符。 它们的不同之处在于 style = 2 每次重新绘制线条,这在其他代码可能正在写入 R 控制台时很有用。 style = 3 通过 | 标记范围的结束并在条形右侧给出一个百分比。

我认为txtProgressBar工作的原因是因为outfile = ""在创建集群时存在。

我认为模仿txtProgressBar为样式 2 所做的会解决这个问题。

此页面是否有帮助?
0 / 5 - 0 等级