Lightgbm超参数优化的并行集群处理不起作用

时间:2019-07-28 23:11:42

标签: r linux parallel-processing virtual-machine lightgbm

我已经使用差异演化优化软件包(DEoptim)对lightgbm模型进行了超参数优化。当我在本地(win10,8核12G RAM)计算机上运行并行群集处理时,它工作正常。但是,当我在Google VM(Ubuntu 18.04 32核120G RAM)上部署代码时,代码似乎永远运行,而不是输出。

任何建议都值得赞赏!

library(lightgbm)
library(data.table)
library(dplyr)
library(DEoptim)
library(parallel)


train = fread('train.csv', header=T, sep=',')
dtrain = lgb.Dataset(as.matrix(train %>% select(-c(target, ID_code))),
                     label=train$target)
f_lgb = function(x){                
  params = list(objective="binary", 
                metric="AUC",
                num_boost_round=200,
                bagging_freq=5,
                bagging_fraction=0.4,
                boost_from_average=F,
                feature_fraction=x[1],                      
                learning_rate=x[2],
                max_depth=x[3],
                min_sum_hessian_in_leaf=x[4],      
                num_leaves=x[5],                   
                boost_from_average=F
                )
  model = lgb.cv(params, 
                  dtrain,
                  nfold=5, 
                  verbose=-1,                 
                  early_stopping_rounds=100,
                  showsd = F,
                  num_threads = 8,
                  stratified=T)
  return(-model$best_score)
}

cl = makeCluster(4)
clusterEvalQ(cl, library(lightgbm))
clusterExport(cl, 'dtrain')

out = DEoptim(f_lgb, 
              lower = c(0.05, 0.001, 2, 3, 10),
              upper = c(0.3, 0.02, 6, 20, 50),
              fnMap = function(x) c(x[1], 
                                    x[2],
                                    round(x[3]),
                                    round(x[4]),
                                    round(x[5])),
              control = DEoptim.control(itermax=10,
                                        NP = 50,
                                        CR = 0.9,
                                        storepopfrom = 1,
                                        cluster=cl
                                        ))

0 个答案:

没有答案