gpt4 book ai didi

r - 多次运行 h2o 深度学习得到一致的结果

转载 作者:行者123 更新时间:2023-11-30 09:29:20 25 4
gpt4 key购买 nike

对于 h2o 深度学习函数中的特定参数组合,每次运行都会得到不同的结果。

args <- list(list(hidden = c(200,200,200), 
loss = "CrossEntropy",
hidden_dropout_ratio = c(0.1, 0.1,0.1),
activation = "RectifierWithDropout",
epochs = EPOCHS))

run <- function(extra_params) {
model <- do.call(h2o.deeplearning,
modifyList(list(x = columns, y = c("Response"),
validation_frame = validation, distribution = "multinomial",
l1 = 1e-5,balance_classes = TRUE,
training_frame = training), extra_params))
}

model <- lapply(args, run)

为了在每次运行时获得一致的模型结果,我需要做什么?

最佳答案

如果 H2O 深度学习在多个单核上运行,则该深度学习将无法重现。结果和性能指标可能与您每次训练深度学习模型时看到的结果和性能指标略有不同。 H2O 中的实现使用了一种称为“Hogwild!”的技术。这提高了训练速度,但代价是多核上的可重复性。

因此,如果您想要可重现的结果,则需要限制 H2O 在单个核心上运行,并确保在 h2o.deeplearning 调用中使用种子

根据达伦·库克的评论进行编辑:我忘记包含 reproducible = TRUE 参数,该参数需要与 seed 结合设置,以使其真正可重现。请注意,这会使运行速度变慢。不建议对大型数据集执行此操作。

有关 "Hogwild!" 的更多信息

关于r - 多次运行 h2o 深度学习得到一致的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40827940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com