我们能否通过利用foreach包、nnet和插入包来并行地使用多核来训练神经网络模型?
我只看到了并行的随机森林实现。神经网络是可能的。
我特别感兴趣的是插入符号的训练函数,它可以进行网格搜索,寻找最优的隐藏层和衰减大小。这需要很长时间才能在单个核上运行。
任何帮助都是非常感谢的。
发布于 2013-09-09 19:52:11
正在寻找实现算法还是您的重采样并行?如果您正在寻找后面的内容,那么只需注册您希望通过registerDoMC()使用的核心数量,它将并行运行这些内核。例如:
> library(caret)
> library(doMC)
>
> registerDoMC(4)
> tc <- trainControl(method="boot",number=25)
> train(Species~.,data=iris,method="nnet",trControl=tc)
# weights: 43
initial value 596.751921
iter 10 value 61.068365
iter 20 value 16.320051
iter 30 value 9.581306
iter 40 value 8.639828
iter 50 value 8.492001
iter 60 value 8.364661
iter 70 value 8.264618
iter 80 value 8.082598
iter 90 value 5.911050
iter 100 value 1.179339
final value 1.179339
stopped after 100 iterations
450 samples
4 predictors
3 classes: 'setosa', 'versicolor', 'virginica'
No pre-processing
Resampling: Bootstrap (25 reps)
Summary of sample sizes: 450, 450, 450, 450, 450, 450, ...
Resampling results across tuning parameters:
size decay Accuracy Kappa Accuracy SD Kappa SD
1 0 0.755 0.64 0.251 0.366
1 1e-04 0.834 0.758 0.275 0.401
1 0.1 0.964 0.946 0.0142 0.0214
3 0 0.961 0.941 0.0902 0.135
3 1e-04 0.972 0.958 0.0714 0.104
3 0.1 0.977 0.966 0.0108 0.0163
5 0 0.973 0.96 0.0579 0.0888
5 1e-04 0.987 0.98 0.00856 0.0129
5 0.1 0.978 0.966 0.0112 0.0168
Accuracy was used to select the optimal model using the largest value.
The final values used for the model were size = 5 and decay = 1e-04.4个核心运行的屏幕截图:

发布于 2015-06-19 04:45:01
doMC不支持R3.2。您可以使用doParallel
library(doParallel);
cl <- makeCluster(detectCores())
registerDoParallel(cl)
tc <- trainControl(method="boot",number=25)
train(Species~.,data=iris,method="nnet",trControl=tc)
stopCluster(cl)https://stackoverflow.com/questions/18705159
复制相似问题