如何在集群上使用doRedis和插入符号?
我一直在玩R中的包,尝试在集群上运行一些代码。我有一台Windows机器和一台运行Ubuntu的机器(安装redis的地方) 我可以很高兴地运行doRedis文档中的示例,但我的目标是能够将doRedis与一些机器学习应用程序结合使用。据我所知,caret允许并行化,似乎其他人也能做到这一点,但就我的一生而言,我无法找出我的错误所在 我发现并稍微修改了它,如下所示:如何在集群上使用doRedis和插入符号?,r,parallel-processing,xgboost,r-caret,r-doredis,R,Parallel Processing,Xgboost,R Caret,R Doredis,我一直在玩R中的包,尝试在集群上运行一些代码。我有一台Windows机器和一台运行Ubuntu的机器(安装redis的地方) 我可以很高兴地运行doRedis文档中的示例,但我的目标是能够将doRedis与一些机器学习应用程序结合使用。据我所知,caret允许并行化,似乎其他人也能做到这一点,但就我的一生而言,我无法找出我的错误所在 我发现并稍微修改了它,如下所示: library(caret) library(doRedis) dat = iris registerDoRedis(&quo
library(caret)
library(doRedis)
dat = iris
registerDoRedis("jobs",
host = "xyz")
xgb.grid = expand.grid(nrounds = c(10, 200),
max_depth = c(6),
eta = c(0.05),
gamma = c(0.01),
colsample_bytree = 1,
min_child_weight = 1,
subsample = 1)
ctrl = trainControl(method = 'cv',
number = 10,
verboseIter = F,
allowParallel = T)
set.seed(13)
xgb1 <- train(Species ~ .,
data = dat,
method = "xgbTree",
trControl = ctrl,
verbose = F,
tuneGrid = xgb.grid)
removeQueue("jobs")
库(插入符号)
图书馆(doRedis)
dat=虹膜
registerDoRedis(“作业”,
host=“xyz”)
xgb.grid=expand.grid(nrounds=c(10200),
最大深度=c(6),
eta=c(0.05),
伽马=c(0.01),
colsample_bytree=1,
最小儿童重量=1,
子样本=1)
ctrl=列车控制(方法='cv',
数字=10,
verbositer=F,
allowParallel=T)
种子(13)
xgb1请退房
相关报价:
train
、rfe
、sbf
、bag
和avNNet
在
它们各自的控制文件称为allowParallel
,默认为
对。如果为TRUE,则如果并行
后端(如doMC)已注册
帮助您调试的一个建议是,首先尝试在本地使用redis,如果可以的话,请指定其他服务器。谢谢您的建议。我已将allowParallel
设置为TRUE,但没有成功。我想我不明白为什么在本地使用redis会有任何帮助——这不就是在我的CPU内核上并行运行redis吗?是的,它会,但你会看到问题是否出在主机分辨率上。如果它在本地工作,您知道问题不在于代码,而在于设置。我认为设置没有任何问题。我可以使用foreach
运行上述问题的解决方法,效果很好,我更喜欢使用caret
的内置并行化。Yupp明白你的意思。从医生的角度看,你似乎做的每件事都是正确的。请也退房。在那里,allowParallel被传递给train
方法。