【发布时间】:2017-07-27 20:25:19
【问题描述】:
起初我以为这是一个随机问题,但重新运行脚本又发生了。
Error in .h2o.doSafeREST(h2oRestApiVersion = h2oRestApiVersion, urlSuffix = urlSuffix, :
Unexpected CURL error: Recv failure: Connection reset by peer
我正在使用 Gradient Boosting Machine 模型对中等大小的数据集(大约 40000 x 30)进行网格搜索。网格中最大的树是 1000。这通常发生在运行几个小时后。我将max_mem_size 设置为 30Gb。
for ( k in 1:nrow(par.grid)) {
hg = h2o.gbm(training_frame = Xtr.hf,
validation_frame = Xt.hf,
distribution="huber",
huber_alpha = HuberAlpha,
x=2:ncol(Xtr.hf),
y=1,
ntrees = par.grid[k,"ntree"],
max_depth = depth,
learn_rate = par.grid[k,"shrink"],
min_rows = par.grid[k,"min_leaf"],
sample_rate = samp_rate,
col_sample_rate = c_samp_rate,
nfolds = 5,
model_id = p(iname, "_gbm_CV")
)
cv_result[k,1] = h2o.mse(hg, train=TRUE)
cv_result[k,2] = h2o.mse(hg, valid=TRUE)
}
【问题讨论】:
-
您是否尝试过为 H2O 提供更多内存?它可能在 H2O 集群上内存不足。我不知道您要训练多少个模型(技术上将有
(5+1)*nrow(par.grid)个模型,因为您有nfolds = 5),但 GBM 模型可能很大并且会占用您的 RAM... -
@ErinLeDell 我可以确认它是 RAM。这实际上是另一个循环中的一个内循环,因此内存需求更大。你的问题是为什么它保留所有 (5+1)*N 模型?运行完成后,应该覆盖以前的模型,对吧?